Gate

From Esolang
Jump to navigation Jump to search

Gate is a simple automaton with gates. Here is all the syntax, created by User:Yayimhere:

The results for the < operator
Symbols
Symbol Description
# Send a 1 through wire
_ send a 0 through wire
! send a not through wire
& send a nand gate through wire
X send a xnor gate through wire
+ takes one input from any direction and checks. If its a 1 it keeps going down, if its 0 it goes up agian and if its a gate it copies itself and goes to the left and right. if its anything else it turns 90º
^ Takes a left(A) wire, a right(B) wire and a gate from the bottom. Then performs: A GATE B and send it upwards
< takes a upper(A) wire and a lower(B) wire And performs A(B)(look at table) then sends the result Right. if a multi digit binary value is put in it will split it into the two half of it
— and | wire. Anything can pass through. If to things collide at a wire the wire will output them. first wire is a flat wire can go left and right and the other is a upwards can go up and down
( end of wire. will output it as a ascii char(UTF-8)
> split. will copy the thing in the wire to the wires above and below the >. if the thing put in is multi
º turn the wire put in 90 degrees
Ø turn the wire put in -90 degrees
± wire intersection
letter will take wire coming into it and label it letter. this can be used for later in any wire. if a number is sent into it AFTER it has been defined it will be redefined but if there is now value coming in then it will send out what its set too
§ integrate one wire into another(see osciliator)

Notes

the origin of a value(e.g #) can have multiple wires since they spread

examples

not(A)

 !
 |
–<
 |
 A

A NAND B

  |
  | 
A-^-B
  |
  &

A OR B

    |
º–––^–––Ø
|   |   |
|   &   |
|       |
| º–!–Ø |
| |   | |
º–< Ø–< |
  | | | |
  | | | |
  | Ø–±–Ø
  |   |
  º–––±–––Ø
      |   |
      º–––±–Ø
          | |
          A B

using NOR it can be made shorter by using NOT(NOR):

  !    !
  |  | |
º–±–ºº–<  !
| | |  |  |
º–< º––^–—<
  |    |  |
  |    &  |
  A       B

A AND B

   !
   |
  –<
   |
º––^–—Ø
|  |  |
|  &  |
A     B

A NOR B

  !    
º–±–Ø     !
| | |     |
º–< º––^–—<
  |    |  |
  |    &  |
  A       B

XOR

  !    !
  |  | |
º–±–غ–<
| | |  |
º–< º––^–—Ø
  |    |  |
  |    &  |
  A       B

A > B

      !
      |
     –<
      |
   º––^–Ø
   |    |
º––^––Ø |
|  |  | |
|  |  | |
B  &  A–Ø

A < B

      !
      |
     –<
      |
   º––^–Ø !
   |    | |
º––^––Ø | |
|  |  | º–<
|  |  |   |
B  &  A–––Ø

OSC

    #
    |
  Ø-<
  | | 
  | Ø--Ø   
#-§ _  |
  | |  |
  Ø-±-º|
    | ||
  Ø-< ||
  | | ||
  | º-º|
  Ø----Ø

this will generate the sequence:

1010101010101010101010...