Scala 如何检查10x10场是否在2d棋盘游戏中结束

Scala 如何检查10x10场是否在2d棋盘游戏中结束,scala,field,2d-games,Scala,Field,2d Games,当前网格为10x10字段,最初所有单元格均为假,即无墙 private var field: Array[Array[Boolean]] = Array.ofDim[Boolean](10, 10) 这是场上的代码,如果我想检查棋盘上的玩家是否到达了棋盘/场的末端,我想知道如何编写代码。 示例-球员的位置是9,5 9是场地的终点,向右移动一步将离开场地。那么,我如何检查,如果要求玩家向右移动一个位置,那么当场地结束时,它不会执行任何操作?您只需要检查下一个位置是否在棋盘上。正如您所提到的,x和

当前网格为10x10字段,最初所有单元格均为假,即无墙

private var field: Array[Array[Boolean]] = Array.ofDim[Boolean](10, 10)
这是场上的代码,如果我想检查棋盘上的玩家是否到达了棋盘/场的末端,我想知道如何编写代码。
示例-球员的位置是9,5 9是场地的终点,向右移动一步将离开场地。那么,我如何检查,如果要求玩家向右移动一个位置,那么当场地结束时,它不会执行任何操作?

您只需要检查下一个位置是否在棋盘上。正如您所提到的,x和y的有效位置是0-9

def canMove(x : Int, y : Int) : Boolean = {
      x >= 0 && x < 10 && y >= 0 && y < 10
}
如果x>=0&&x<10&&y>=0&&y<10为true,则此函数返回true,否则返回false。作为参数,您需要传递下一个位置,例如调用canMoveplayers\u pos\u x+1,players\u pos\u y以检查是否可以向右移动


只是一个提示:考虑将网格的大小设置为常数-如果你需要稍后改变板的大小,你可以改变常量。您不必通读整个代码并查找电路板大小的每个用法。如果您遵循此建议,请将函数中的10替换为board_size常量。

您能告诉我们到目前为止您得到了什么,以及问题出在哪里吗?似乎你想要的不仅仅是newX<0 | | newX>9 | | newY<0 | | newY>9……谢谢你的帮助,我确实尝试了你上面提到的方法,但似乎不起作用。iffieldplayerX-1playerY==false&&。。。。{playerX=playerX-1 checkBounty;}在&&操作符之后,我需要一些东西来检查字段是否结束。我已经尝试过简单的命令,比如x>=0&&x<10&&y>=0&&y<10,但似乎都不起作用。我已经这样做了,但仍然不起作用,如果fieldplayerx-1playerY==false&&canMoveplayerX-1,playerY==true{playerX=playerX-1 checkBounty;}}尝试切换条件:`ifcanMoveplayerX-1,playerY==true&&fieldplayerX-1playerY==false{playerX=playerX-1 checkBounty;}}`编写时,您首先访问了越界索引,猜测它引发了一个异常,然后尝试检查索引是否有效,太晚了,我试过了,但仍然不起作用,如果ieldplayerx-1playerY==false&&playerX-1>0{playerX=playerX-1 checkBounty;}}我试过类似的方法,但仍然不起作用,我问我的讲师,他说上面的代码几乎是正确的,只是有一个字段大小的东西,他说如果你考虑PrReRX - 1>0,那么> 0是正确的吗?