Difference between revisions of "Memloc and Memval"

From WikiManual
Jump to: navigation, search
m
m
Line 1: Line 1:
Memval reads the location that was put in memloc on the last cycle.
+
Memval reads the value of a location in another bot using the value that was already in or put into Memloc on the last cycle to define the location. Memloc holds its value until changed.
These allow the bots to readback another bot's memory locations. To do this simply specify the location you'd like to reference in memloc and the bot will receive the information in memval.
+
These allow the bots to readback another bot's memory locations.
 
==[[Sysvar]]s:==
 
==[[Sysvar]]s:==
 
{{Memloc and Memval}}
 
{{Memloc and Memval}}
Line 7: Line 7:
 
Example:
 
Example:
 
  cond
 
  cond
 +
*.robage 0 =
 
  start
 
  start
 
  67 .memloc store
 
  67 .memloc store
 +
101 67 store
 
  stop
 
  stop
 
   
 
   

Revision as of 13:20, 7 August 2006

Memval reads the value of a location in another bot using the value that was already in or put into Memloc on the last cycle to define the location. Memloc holds its value until changed. These allow the bots to readback another bot's memory locations.

Sysvars:

Memloc & Memval:

.memval 473 .tmemval 475
.memloc 474 .tmemloc 476

Syntax:

Example:

cond
*.robage 0 =
start
67 .memloc store
101 67 store
stop

cond
*.eye5 40 >
*.memval *67 !=
start
-1 .shoot store
stop

This will cause the bot to attack bots that don't have the same number as it does in memory location 67.

A slight problem, is that any bot can determine the location being referenced by simply checking in memloc with it's own memloc/memval. This is simply a more complex version of the problems facing bots using In and Out for secure information exhchange.

Example:

def foundmemloc 51
def reqmemval 52

cond
*.eye5 0 >
*.refshoot *.myshoot !=
*.foundmemloc 0 =
start
.memloc .memloc store
*.memval .foundmemloc store
stop

cond
*.eye5 0 >
*.refshoot *.myshoot !=
*.foundmemloc 0 !=
start
*.foundmemloc .memloc store
*.memval .reqmemval store
stop

cond
*.reqmemval 0 !=
*.foundmemloc 0 !=
start
*.reqmemval *.foundmemloc store
stop

These genes will fool memloc/memval based conspec recognition.

A more complex method would be to randomly vary the locations checked per cycle, but most bots simply make do with the refeye/myeye combination.

To use the commands tmemval and tmemloc the procedure is similar, but requires the tie number to be stored in tienum.