Langton's ant: Difference between revisions

Content added Content deleted
m (output in smaller font)
m (100x100, inverted directions)
Line 4,030: Line 4,030:


=={{header|Phix}}==
=={{header|Phix}}==
<lang Phix>sequence grid = repeat(repeat(' ',53),80) -- smaller grid to trim the output
<lang Phix>sequence grid = repeat(repeat(' ',100),100)
integer aX = 48, aY = 25, -- (size/start found by trial/err)
integer aX = 50, aY = 50,
gXY, angle = 0 -- ' '/'#'; 0,1,2,3 = NESW
gXY, angle = 1 -- ' '/'#'; 0,1,2,3 = NESW
constant dX = {0,1,0,-1} -- (dY = reverse(dX))
constant dX = {0,-1,0,1} -- (dY = reverse(dX))
while aX>=1 and aX<=80
while aX>=1 and aX<=100
and aY>=1 and aY<=53 do
and aY>=1 and aY<=100 do
gXY = grid[aX][aY]
gXY = grid[aX][aY]
grid[aX][aY] = 67-gXY -- ' '<=>'#', aka 32<->35
grid[aX][aY] = 67-gXY -- ' '<=>'#', aka 32<->35
angle = mod(angle+2*gXY+1,4) -- +/-1, ie 0,1,2,3 -> 1,2,3,0 or 3,0,1,2
angle = mod(angle+2*gXY+3,4) -- +/-1, ie 0,1,2,3 -> 1,2,3,0 or 3,0,1,2
aX += dX[angle+1]
aX += dX[angle+1]
aY += dX[4-angle]
aY += dX[4-angle]
end while
end while

puts(1,join(grid,"\n"))
puts(1,join(grid,"\n"))</lang>
</lang>
{{out}}
{{out}}
<pre style="font-size: 2px">
<pre style="font-size: 2px">
"started"
# # ##
## ### #
## ############ ##
# # ####
# #### # ##
## # #####
### ## ## #
# ## ## #
# # # # # #
## # ###
## ## # # ### #
# ## ## #
### # # # # ## ## ###
## # ###
# # ### ## #### ## # # # ## ##
# ## ## #
# ### ## # ## ### # # ### ###
## # ###
# # ##### # # #### # ### # # #
# ## ## #
### ## # #### ## ## ###### # ### # #
## # ###
# ### # ## # # ## ## ## # ##### ### ##
# ## ## #
# # # ## ### # # # #### # ##
## # ###
# # ## ## # ## ## # ##
# ## ## #
### # # ## ### # ## # ### ## ## #
## # ###
# ### ## ## ## ### # # ## #### #
# ## ## #
### # # # # # #### ## # ## ### # #
## # ###
# ### # ## # # ### # ### ## # # ##
# ## ## #
### # # ## # ## ## ##### #### #### ## #
## # ###
# ### # # # # ### # # ## ## # # # # #
# ## ## #
### # ## ### ## # ## #### #### # #
## # ###
# ### # # # ## ########### # #### # # #
# ## ## #
### # ## # #### ## ######### # ## # ##
## # ###
# ### # # ## # ## ## ## ### ### # # ## #### #
# ## ## #
### # ## # # ###### ## # ## # # ### ### ## #
## # ###
# ### # # # ##### # ##### # # ## # ## #
# ## ## #
### # ## # # ## ##### ## # # # # ## # # #
## # ###
# ### # # # # #### # ##### ## ########## ##
## # ## ## #
### # ## # ## ## # # #### # ## #### ##
## ## # ###
# ### # # ##### # ## ## # # # # # # # #
# ## ## ## #
### # ## ## ## # # # ## ## # # ## # ## ##
### # # ### ####
# ### # # # # # ######## # # ## #### #
# #### ## # # #
### # ## # # # ## ## # # ## #
# ## # # # # ###
# ### # # # # # # ## ## ## ####
## # ## # ## # ###
### # ## ## # ## ## # # ###
## # # ## # #
# ### # # # ## #### #### ### ####
# # ##### # # #
### # ## ## #### ## # ## # # #
###### ## ##### #
# ### # # ## ## ## ### ## #####
## # ## # # # ## # ## ###
### # ## # ## # ####
# ## ### # # ####### # ##
# ### # # ## ## ##
# # ## # # ## ###### # #
### # ## ##
# ####### ###### # ## # # #
# ### # # # ## #### #
# ## # ## ## #### # ## #### #
### # ## # # ### ###
### ## ###### # # #### #
# ### # # # ## # # #
### ## ## # ### # ## # #
### # ## ## ##
# # ## ## # #######
## # # ##
# # ## ## ## #### ## ## ####
## # ##
# # # #
# #### # ### ## ### # # #
#### ##
# # # ##### # # ### ###
# ## #
# ## ### ## # ## #### ### # #
####
# # # # #### #### ## ##
##
# ### ### ### ## # #
# ## ### # #### ### ## ##
# ## ### ## # # # #### # ##
# ### # # # # #### ## ## ####
# # # # # # ## # # ### ## #
## ### # # ## ## # # #
# # # # # ##### # # ##
### ### # ## ## # # ## #
# ## ## ### # # # # # #
## # ####### ### ###### ##### # ###
##### ##### ## ##### # # #
### ### ## # # # ## #
# # ######### ##### ####
### ### # # # ### # # ##
## ## ### ## ### ## #### # #
### ## # # # ##### # ## # ###
# # # # ## ## # # ##### #
## # # ## # # ## #### ######
### # #### ## ### # ##
# # # ## # # ##### # #
## # # ####### ### ##
# ## # ## ## # #
# ## ### #### # #
## ## ### ## #
##
##
</pre>
</pre>