02-09-2004 18:49
Version 1.10
by Rhysling Greenacre
Rose 199, 140
Last update: December 11


The mouse hole creates a mouse with a random program every minute. It also creates a mouse whenever it is touched. It also supports two commands. Type "maxpop,5" to set the maximum mouse population to five. The population can go over the limit if the mouse reproduce. The maxpop function only causes the mouse hole not to make any more mice. Type "count" to recount the mice.


Initially the mice that come out of the mouse hole are very stupid. In order to live they are going to need hand feeding or just a lot of cheese. To accomplish this build a 10 meter ring and put a mouse hole and a couple of cheese launchers inside.


A mouse loses 1 health point every three seconds. When health reaches 0, the mouse dies.


When a mouse eats cheese it gains health. To encourage a mouse to eat rub a hunk of cheese against its nose. A mouse must be stationary to eat.

Mice can be fed automaticly by means of a cheese launcher. The launcher fires cheese in a small radius around it once a minute. The cheese has a lifetime of ten minutes.


Mice reproduce asexually when the following conditions are met:
- The mouse has 100 or more health
- The mouse is more than two minutes old
- The mouse has not reproduced in two minutes

The mouse loses 50 health during reproduction. Its offspring starts with 50 health instead of 100.


In case of emergency type "poof" to derez the mice.


To turn on the mouse diagnostics type 'verbose'. To turn off the diagnostics type 'quiet'.

Health: 100
Generation: 1
a: 0, b: 5, c:0, d:-20
col: 0, cmp: 1
foward, a : 0

The first line indicates how much health the organism has.

The second line indicates the value of the organisms memory. Each organism has 4 variables, a, b, c, and d. The values of these are used by the instructions.

The third line is the collision flag, which is set when the organism collides with something. The comparison flag is set as a result of the cmp instruction.

The fourth line is the current link message being acted on.


Click on a mouse and type "email//<myname@domain.com>


Ever wonder what your mouse is trying to do?


Each mouse has four registers (memory) called a, b, c, and d. Each register can store a value between -128 and 127.


foward, <register>

Apply an impulse of <register> meters per second along the x-axis.

backward, <register>

Apply an impulse of negative <register> meters per second along the x-axis.

left, <register>

Apply an impulse of <register> meters per second around the z-axis.

right, <register>

Apply an impulse of negative <register> meters per second around the z-axis.

cmp, <register 1>, <register 2>

Compare register 1 to register 2. If the value is equal set the comparision flag to 0. If register 1 is less than register 2 set set the compare flag to -1. If register -1 is greater than register 2 set the compare flag to 1.

set, <register>, <value>

Sets the register to value.

je, <instruction #>

Jump to the instruction if the compare flag is 0.

jne, <instruction #>

Jump to the instruction if the compare flag is not 0.


Apply brakes to stop moving.


Do nothing.

angleto, <register>

Calculate the angle to the target and place it into the register. Use "right, <register>" to face the target.


Causes the mouse to scan its environment for cheese. The location of the nearest cheese is saved. To find the angle to the cheese, use the "angleto" instruction.