Я создаю симулятор настольной игры, похожий на монополию, где фигуры движутся по доске.Моя черепаха действует как часть игры пользователя и перемещается по всему миру.Граница устанавливается чередующимися цветами.У меня есть кнопка, которая генерирует количество шагов, которые перемещает черепаха.Эти шаги хранятся в виде dice-num, глобальной переменной.Однако, когда черепаха приземляется на участки перед участком (16-16) (нижний правый угол доски), и количество шагов, которое ей необходимо сделать, превышает 1, я не могу повернуть направление черепахи наполовину, чтобыдвигаться вверх по доске.В результате он возвращается только к началу доски.
Я пытался рассматривать каждый случай отдельно:
;if the turtle lands on the patch before the corner
ask turtle 0 [if pycor = min-pycor and pxcor = max-pxcor - 1
[setxy max-pxcor min-pycor
set dice-num dice-num - 1
show dice-num
]
]
; число кубов относится к числу шагов, которые черепахаходы
Вот мой код:
to setup
board
end
to go
dice-roll
end
to board
ask patches [if pxcor = max-pxcor or pycor = max-pycor or pxcor = min-
pxcor or pycor = min-pycor
[set pcolor blue]]
ask patches [if pycor = max-pycor or pycor = min-pycor
[if pxcor mod 2 = 0
[set pcolor orange]]]
ask patches [if pxcor = max-pxcor or pxcor = min-pxcor
[if pycor mod 2 = 0
[set pcolor orange]]]
ask patch min-pxcor min-pycor [set pcolor green]
end
to dice-roll
set dice [1 2 3 4 5 6]
set dice-num one-of dice
user-message (word "You rolled: " dice-num)
ask turtle 0 [
fd dice-num
]
;allows the turtle to turn if it lands on a corner
ask turtle 0 [if ycor = min-pycor and xcor = max-pxcor [set heading 0]
if xcor = max-pxcor and ycor = max-pycor [set heading 270]
if xcor = min-pxcor and ycor = max-pycor [set heading 180]
;add a statement to end game once player rereaches the green patch
]
;if the turtle lands on the patch before the corner
ask turtle 0 [if pycor = min-pycor and pxcor = max-pxcor - 1
[setxy max-pxcor min-pycor
set dice-num dice-num - 1
show dice-num
]
]
end
Я ожидаю, что на выходе будет черепаха, которая начнет двигаться вверх по правой стороне доски, как только она упадет на патч (15 -16) и получает число кубиков больше 1. Однако, когда черепаха приземляется на пятно (15 -16), а число кубиков больше 1, она просто возвращается к началу доски.