У меня проблема. В настоящее время я изучаю Haskell и пытаюсь создать игру в подземелье.Haskell - Как перебирать и сравнивать?
В настоящее время я пытаюсь реализовать функцию движения для плеера. Прежде чем перейти к новой позиции, я должен проверить, будет ли новая позиция игрока сталкиваться с позицией объекта на карте игры.
Код, который у меня есть в голове (на языке Java/C), довольно прост, но я не могу представить, как он перейдет к Haskell. Я уверен, что есть альтернативный подход с использованием кода Haskell, но это грубая идея (Java/C): -
Предположим, что объект игрока имеет координаты x и y. Предположим также, что мы храним список других объектов, с которыми игрок может столкнуться в массиве (это будет храниться в списке для Haskell, я полагаю). Кроме того, предположим, что каждый объект имеет координаты x и y. Функция Boolean возвращает true
, если произойдет столкновение, или false
, если нет.
Boolean detectCollision(Player p, Object[] o)
{
for(int i=0; i < o.length; i++){
if(p.x==o[i].x && p.y==o[i].y){
return true;
}
} return false;
}
Если кто-то может помочь мне понять это, я был бы очень благодарен.
операций, которые будут использовать итерацию в императивном языке, как C/Java чаще всего делается с помощью рекурсии в Haskell, либо в явном виде в функции или использовать существующие возможности, такие как сгиб, карта или уменьшение – Greg