gpt4 book ai didi

java - 国际象棋游戏中的棋子移动 - Java

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:24 25 4
gpt4 key购买 nike

我正在创建的国际象棋应用程序的运动存在问题。以下是检查移动是否有效的方法:

public boolean isMove(int row, int col, Pawn[][] board){
Pawn p = board[row][col];
int direction = 1;
if (this.color=='w') {
direction = -1;
}
if (p == null && this.col == col && ((this.row + direction) == row) || (this.row + 2 * direction) == row && ! this.hasMoved) { //can move
return true;
}
else if (p != null && p.color != this.color && row == (this.row + direction) && (col == (this.col - 1) || col == (this.col + 1))) { // can capture
return true;
}
return false;
}

以下是我得到的一些输出:

enter image description here

此移动不应有效,但它允许移动到该方 block 。我认为我上面发布的方法有问题。

最佳答案

我认为您的 &&|| 在优先级/顺序上存在冲突。

也许:

if (p == null && this.col == col && (this.row + direction) == row || this.row + 2 * direction == row && ! this.hasMoved)

应该是:

if (p == null && this.col == col && ((this.row + direction) == row || this.row + 2 * direction == row) && ! this.hasMoved)

我没有游戏,所以无法尝试,但是...

关于java - 国际象棋游戏中的棋子移动 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com