Activities/Turtle in a Pond: Difference between revisions
Tonyforster (talk | contribs) |
|||
| Line 23: | Line 23: | ||
=== Strategy === | === Strategy === | ||
In this strategy, the turtle moves down, regardless of whether the dot is open. | |||
<pre> | |||
def _turtle_strategy(self, turtle): | |||
turtle[1] +=1 | |||
return turtle | |||
</pre> | |||
In this strategy, the turtle moves down until it is blocked. | |||
<pre> | |||
def _turtle_strategy(self, turtle): | |||
if not self._dots[self._grid_to_dot((turtle[0], turtle[1]+1))].type: | |||
turtle[1] +=1 | |||
return turtle | |||
</pre> | |||
In this strategy, the turtle searches for an open dot, looking clockwise. | |||
<pre> | <pre> | ||
def _turtle_strategy(self, turtle): | def _turtle_strategy(self, turtle): | ||
c = turtle[1] % 2 | c = turtle[1] % 2 | ||
for i in range(6): | for i in range(6): | ||
col = turtle[0] + CIRCLE[c][ | col = turtle[0] + CIRCLE[c][i][0] | ||
row = turtle[1] + CIRCLE[c][ | row = turtle[1] + CIRCLE[c][i][1] | ||
if not self._dots[self._grid_to_dot((col, row))].type: | if not self._dots[self._grid_to_dot((col, row))].type: | ||
return [col, row] | return [col, row] | ||
| Line 37: | Line 51: | ||
</pre> | </pre> | ||
In | In the '''default strategy''', the turtle choose a random direction and goes there if the dot is open. | ||
<pre> | <pre> | ||
def _turtle_strategy(self, turtle): | def _turtle_strategy(self, turtle): | ||
turtle[1] +=1 | c = turtle[1] % 2 | ||
n = int(uniform(0, 6)) | |||
for i in range(6): | |||
col = turtle[0] + CIRCLE[c][(i + n) % 6][0] | |||
row = turtle[1] + CIRCLE[c][(i + n) % 6][1] | |||
if not self._dots[self._grid_to_dot((col, row))].type: | |||
return [col, row] | |||
return turtle | return turtle | ||
</pre> | </pre> | ||
In this | In this strategy, the turtle will go off the edge if it can. | ||
<pre> | <pre> | ||
def _turtle_strategy(self, turtle): | def _turtle_strategy(self, turtle): | ||