Я пишу змею в TI-Basic, и каждый раз, когда я двигаюсь, мне нужно увидеть, ударила ли голова змеи в любую точку хвоста. Хвост хранится в виде циклической очереди на основе списка, и я могу добавлять начало и конец в постоянное время.Проверьте все значения в списке в TI-Basic
Единственная трудная часть в том, что я должен сделать что-то похожее на это на каждой итерации: (S = Размер списка)
For(I,1,S)
If X=LX(I) and Y=LY(I)
Then
Disp "GAME OVER"
Return
End
End
Это довольно короткий цикл, но она принимает навсегда, даже на список из 10 предметов. Я попробовал путь последовательности:
If sum(seq(X=LX(I) and Y=LY(I),I,1,S))
...
Единственный оптимизации я могу думать о том, чтобы не проверять значения N до N + 2 (так как первая часть вашего хвоста, что можно ударить по крайней N + 3) , но это просто снимает проблему после 4 очков, а игра, неиграбельная с 14 очками, не лучше, чем неиграбельная после 10 очков.
Использование сборки не является вариантом, потому что у меня нет соединительного кабеля (или желания написать сборку).
Просто любопытство .... На какой машине вы работаете? –
@belisarius, я использовал TI-84 –
. Вы можете написать ассемблер Z80 на этом! –