Skip to content

A two-dimensional evolution simulator based on Tierra and Befunge

License

Notifications You must be signed in to change notification settings

mxpoliakov/fungera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fungera: A two-dimensional evolution simulator

Organism structure

  • Main memory block
  • Child memory block (optional)
  • Instruction pointer
  • Delta (direction)
  • 4 general purpose registers
  • A stack of 8 values

Instruction set

Symbol Max ops Description Type
. 0 Template constructor Template
: 0 Template constructor Template
a 0 Register modifier Register
b 0 Register modifier Register
c 0 Register modifier Register
d 0 Register modifier Register
^ 0 Direction modifier (up) Direction
v 0 Direction modifier (down) Direction
> 0 Direction modifier (right) Direction
< 0 Direction modifier (left) Direction
x 0 Operation modifier Operation
y 0 Operation modifier Operation
& 2+ Find template, put its address in register Matching
? 4 If not zero Conditional
0 1 Put [0, 0] vector into the register Arithmetic
1 1 Put [1, 1] vector into the register Arithmetic
- 2 Decrement value in register Arithmetic
+ 2 Increment value in register Arithmetic
~ 3 Subtract registers and store result in register Arithmetic
W 2 Write instruction from register to address Replication
L 2 Load instruction from address to register Replication
@ 2 Allocate child memory of size Replication
$ 0 Split child organism Replication
S 1 Push value from register into the stack Stack
P 1 Pop value of register into the stack Stack

Running Fungera

Python 3.7 is required to run Fungera. Once it is installed, running Fungera is simple.

python -m pip install -r requirements.txt
python fungera.py --name "Simulation 1"

TUI controls

Key Action
space Start/pause simulation
c Advance 1 cycle (only if paused)
Move memory view up
Move memory view down
Move memory view left
Move memory view right
d Select next organism
a Select previous organism
p Save simulation
l Load last saved simulation
m Toogle minimal mode

About

A two-dimensional evolution simulator based on Tierra and Befunge

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages