Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
26
Task/Langtons-ant/D/langtons-ant-1.d
Normal file
26
Task/Langtons-ant/D/langtons-ant-1.d
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
void main() @safe {
|
||||
import std.stdio, std.traits;
|
||||
|
||||
enum width = 75, height = 52;
|
||||
enum maxSteps = 12_000;
|
||||
enum Direction { up, right, down, left }
|
||||
enum Color : char { white = '.', black = '#' }
|
||||
uint x = width / 2, y = height / 2;
|
||||
Color[width][height] M;
|
||||
auto dir = Direction.up;
|
||||
|
||||
with (Color)
|
||||
for (int i = 0; i < maxSteps && x < width && y < height; i++) {
|
||||
immutable turn = M[y][x] == black;
|
||||
dir = [EnumMembers!Direction][(dir + (turn ? 1 : -1)) & 3];
|
||||
M[y][x] = (M[y][x] == black) ? white : black;
|
||||
final switch(dir) with (Direction) {
|
||||
case up: y--; break;
|
||||
case right: x--; break;
|
||||
case down: y++; break;
|
||||
case left: x++; break;
|
||||
}
|
||||
}
|
||||
|
||||
writefln("%(%-(%c%)\n%)", M);
|
||||
}
|
||||
25
Task/Langtons-ant/D/langtons-ant-2.d
Normal file
25
Task/Langtons-ant/D/langtons-ant-2.d
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import std.stdio, std.algorithm, std.traits, grayscale_image;
|
||||
|
||||
void main() {
|
||||
enum width = 100, height = 100;
|
||||
enum nSteps = 12_000;
|
||||
enum Direction { up, right, down, left }
|
||||
auto M = new Image!Gray(width, height);
|
||||
M.clear(Gray.white);
|
||||
uint x = width / 2, y = height / 2;
|
||||
auto dir = Direction.up;
|
||||
|
||||
for (int i = 0; i < nSteps && x < width && y < height; i++) {
|
||||
immutable turn = M[x, y] == Gray.black;
|
||||
dir = [EnumMembers!Direction][(dir + (turn ? 1 : -1)) & 3];
|
||||
M[x, y] = (M[x, y] == Gray.black) ? Gray.white : Gray.black;
|
||||
final switch(dir) with (Direction) {
|
||||
case up: y--; break;
|
||||
case right: x--; break;
|
||||
case down: y++; break;
|
||||
case left: x++; break;
|
||||
}
|
||||
}
|
||||
|
||||
M.savePGM("langton_ant.pgm");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue