我有一个问题。我正在学习Haskell,并尝试构建地牢游戏。
目前,我正在尝试为玩家实现移动功能。在移动到新位置之前,我必须检查玩家的新位置是否会与游戏地图上的对象位置发生碰撞。
我在Java/C中想到的代码非常简单,但我不知道如何将其转换为Haskell。我很确定使用Haskell代码有一种替代方法,但这是一个大致的想法(Java/C):
假设玩家对象具有x和y坐标。
还假设我们在数组中存储了玩家可能与之碰撞的其他对象的列表(我认为这将存储在Haskell的列表中)。另外,让我们假设每个对象都有x和y坐标。
如果发生碰撞,布尔函数返回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;
}
如果有人能帮我弄清楚这个问题,我将非常感激。