DarwinBotsManual
Abrir la app EnglishEN

inc

Le suma 1 a una celda de memoria: el contador más barato del ADN.

Datos

Palabra
inc
Familia
Escritura en memoria
Pila entera
saca 1, pone 0
Qué hace
Saca una dirección y le suma 1 a esa celda. Pasando 32000 vuelve a 1. Con la dirección 0 no hace nada.
Costo
Store dividido por el divisor de cada uno, solo si escribe
División del costo
÷ 10
Se ejecuta en
en el cuerpo de un gen (start o else) y solo si el tope de la pila booleana es verdadero o está vacía
Marca lazos
no

d inc saca la dirección d y le suma 1 a lo que haya en esa celda. No toma ningún valor de la pila: 50 inc es lo mismo que *50 1 add 50 store, pero en dos palabras y por la décima parte del costo de un store.

PalabraPila después
5050
inc(vacía); la celda 50 vale uno más

El uso típico es contar ciclos en la memoria libre, que no se borra entre un ciclo y otro:

' cuenta los ciclos en la celda 50 y cada 10 gira
start
 50 inc
stop
cond
 *50 10 >=
start
 0 50 store
 100 .aimdx store
stop

La celda 50 va de 1 a 9; en el décimo ciclo llega a 10, el segundo gen la vuelve a 0 y el bot gira 100 con .aimdx. Así, gira una vez cada 10 ciclos.

Dos cosas a tener en cuenta:

Para restar 1 está dec; para sumar otra cantidad, addstore.