Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
81
Task/Langtons-ant/Processing/langtons-ant.processing
Normal file
81
Task/Langtons-ant/Processing/langtons-ant.processing
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
* we use the following conventions:
|
||||
* directions 0: up, 1: left, 2: down: 3: right
|
||||
*
|
||||
* pixel white: true, black: false
|
||||
*
|
||||
* turn right: true, left: false
|
||||
*
|
||||
*/
|
||||
|
||||
// number of iteration steps per frame
|
||||
// set this to 1 to see a slow animation of each
|
||||
// step or to 10 or 100 for a faster animation
|
||||
|
||||
final int STEP=100;
|
||||
|
||||
int x;
|
||||
int y;
|
||||
int direction;
|
||||
|
||||
void setup() {
|
||||
// 100x100 is large enough to show the
|
||||
// corridor after about 10000 cycles
|
||||
size(100, 100, P2D);
|
||||
|
||||
background(#ffffff);
|
||||
|
||||
x=width/2;
|
||||
y=height/2;
|
||||
|
||||
direction=0;
|
||||
}
|
||||
|
||||
int count=0;
|
||||
|
||||
void draw() {
|
||||
for(int i=0;i<STEP;i++) {
|
||||
count++;
|
||||
boolean pix=get(x,y)!=-1; //white =-1
|
||||
setBool(x,y,pix);
|
||||
|
||||
turn(pix);
|
||||
move();
|
||||
|
||||
if(x<0||y<0||x>=width||y>=height) {
|
||||
println("finished");
|
||||
noLoop();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(count%1000==0) {
|
||||
println("iteration "+count);
|
||||
}
|
||||
}
|
||||
|
||||
void move() {
|
||||
switch(direction) {
|
||||
case 0:
|
||||
y--;
|
||||
break;
|
||||
case 1:
|
||||
x--;
|
||||
break;
|
||||
case 2:
|
||||
y++;
|
||||
break;
|
||||
case 3:
|
||||
x++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void turn(boolean rightleft) {
|
||||
direction+=rightleft?1:-1;
|
||||
if(direction==-1) direction=3;
|
||||
if(direction==4) direction=0;
|
||||
}
|
||||
|
||||
void setBool(int x, int y, boolean white) {
|
||||
set(x,y,white?#ffffff:#000000);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue