如何检查二维棋盘游戏中10x10区域是否结束

问题描述 投票:0回答:1

当前网格,一个10x10的字段,最初所有单元格都是假的(即无墙)。

private var field: Array[Array[Boolean]] = Array.ofDim[Boolean](10, 10)

这是该字段的代码,如果我想检查板上的玩家是否到达板/字段的末尾,我想知道如何编写代码。例如-玩家位置是(9,5)9是该区域的终点,向右移动一格将超出该区域。因此,如何检查是否要求玩家向右移动1个位置,因为该字段已结束却没有任何作用?

scala field 2d-games
1个回答
1
投票

您只需要检查下一个位置是否在董事会中。如前所述,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。作为参数,您需要传递下一个位置,例如,如果要检查是否可以向右移动,请调用canMove(players_pos_x + 1, players_pos_y)

仅一个提示:考虑将网格的大小设置为常数-如果以后需要更改板的大小,则可以只更改常数。您将不必遍历整个代码,也不必寻找板子尺寸的每种用法。如果遵循此建议,请用“ board_size”常量替换函数中的“ 10”。

© www.soinside.com 2019 - 2024. All rights reserved.