Skip to content

Thoughts on yafacwes bots

Damien Brossard edited this page Aug 13, 2015 · 1 revision

Preamble

This page is made to centralize several ideas about future bots that will compete in yafacwes' core. Inspired by redcode of course, we will try firstly to implement "imp" and "dwarf".

the Imp

It is supposed to be the simplest self-replicating bot. In redcode it consist of only one instruction : MOV 0,1. With the v0.3 yafacwes core, there is no such MOV instruction, then the simplest form of self-replication can't be done with only one instruction. However, we can use a combination of PUSH and POP to achieve a similar goal. The hypothetical bot will be this one :

// EV initial direction : EAST
PUSH[(0,0),(1,0)] POP[(2,0),(1,0)]

the Dwarf

In redcode, the dwarf is a simple loop that bombs the core regularly. It uses several instructions that v0.3 actually lacks :

  • jumps (conditionnal or not)
  • some form of computation on arguments to bomb different places each time (instead of always bombing the same spot).

Lack of unconditional jump can be circumvented with direction instructions, thus the bot will spend most of it's execution time turning around. But for v0.3 a first attempt (always bombing the same spot) can be proposed :

// EV initial direction : NORTH
RIGHT PUSH(2,0) RIGHT NULL
RIGHT POP(5,5) RIGHT

The position 5,5 given in this sample is fully arbitrary as we have no way to make this element evolve for now

Clone this wiki locally