Langton's ant: Difference between revisions
Content added Content deleted
Line 1,979: | Line 1,979: | ||
func move(ant) { |
func move(ant) { |
||
ant |
ant.position.x += xInc[ant.direction] |
||
ant |
ant.position.y += yInc[ant.direction] |
||
} |
} |
||
func Array. |
func Array.Step(ant) { |
||
var ptCur = (var x: ant |
var ptCur = (var x: ant.position.x + ant.origin.x, var y: ant.position.y + ant.origin.y) |
||
var leftTurn = this[ptCur |
var leftTurn = this[ptCur.x][ptCur.y] |
||
ant |
ant.direction = |
||
if leftTurn { |
if leftTurn { |
||
leftTurns[ant |
leftTurns[ant.direction] |
||
} else { |
} else { |
||
rightTurns[ant |
rightTurns[ant.direction] |
||
} |
} |
||
this[ptCur |
this[ptCur.x][ptCur.y] = !this[ptCur.x][ptCur.y] |
||
move(ant) |
move(ant) |
||
ptCur = (x: ant |
ptCur = (x: ant.position.x + ant.origin.x, y: ant.position.y + ant.origin.y) |
||
ant |
ant.outOfBounds = |
||
ptCur |
ptCur.x < 0 || |
||
ptCur |
ptCur.x >= ant.width || |
||
ptCur |
ptCur.y < 0 || |
||
ptCur |
ptCur.y >= ant.height |
||
ant |
ant.position |
||
} |
} |
||
Line 2,018: | Line 2,018: | ||
let w = 100 |
let w = 100 |
||
let h = 100 |
let h = 100 |
||
let blacks = Array. |
let blacks = Array.Empty(w, () => Array.Empty(h, false)) |
||
let ant = newAnt(w, h) |
let ant = newAnt(w, h) |
||
while !ant |
while !ant.outOfBounds { |
||
blacks. |
blacks.Step(ant) |
||
} |
} |
||