当前位置: 首页 > 知识库问答 >
问题:

Java Chess:检查棋手是否工作不正常的方法

李兴庆
2023-03-14

下面是我用Java编写的国际象棋游戏的粗略设置。主要有四个对象:

public boolean isInCheck(Player candidatePlayer) {

    String candidateColor = candidatePlayer.getColor();

    //get opposite color of candidatePlayer
    String oppositeColor = candidateColor.equals("w") ? "b" : "w";

    //loop through squares
    for (int i = 0; i < myBoard.length; i++) {
        for (int j = 0; j < myBoard[i].length; j++) {
            //if current square not empty
            if (! myBoard[i][j].isEmpty()) {
                //if piece at current square is opposite color of candidate player
                if (! myBoard[i][j].getPiece().getColor().equals(oppositeColor)) {
                    //if piece's current legal squares moves contains square of candidatePlayer's king
                    if (candidateColor.equals("w")) {
                        if (myBoard[i][j].getPiece().getLegalDestinationSquares(myBoard[i][j]).contains(whiteKingSquare)) {
                                return true;
                        }
                    } else {
                        if (myBoard[i][j].getPiece().getLegalDestinationSquares(myBoard[i][j]).contains(blackKingSquare)) {
                            return true;
                        }
                    }
                }   
            }
        }
    }
    return false;
}

谢谢!

共有1个答案

翟宾实
2023-03-14

我想你放错了!在

//if piece at current square is opposite color of candidate player
if (! myBoard[i][j].getPiece().getColor().equals(oppositeColor)) {

所以你实际上检查了候选人的颜色。将其更改为:

if (myBoard[i][j].getPiece().getColor().equals(oppositeColor)) {
 类似资料:
  • 如果不安装文本编辑程序或集成开发环境,是否有可能测试xdebug是否工作,即它是否可以调试php代码? phpinfo()中出现的唯一部分xdebug如下所示: 解析的其他. ini文件 /etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini,

  • 问题内容: 我有一个SMTP服务器,出于这个问题的目的,我们称之为:smtp.mydomain.com。 如何检查SMTP服务器是否正常工作?我可以从Linux命令行手动发送电子邮件吗? 问题答案: 使用telnet建立原始网络连接的语法是: 所以远程登录到您的SMTP服务器 并复制并粘贴以下内容 注意: 不要忘记“。” 在代表消息结尾的末尾。“退出”行退出将结束会话。

  • 我想检查Quartz作业是否正在运行。我发现它可以使用调度程序。getCurrentlyExecutingJobs()。但是我对此感到困惑,我应该把它放在哪里才能得到结果呢?谢谢

  • 我正在从事一个项目,该项目有一个带有查询的JPA存储库。其中一个查询在同一个查询中有以及,但它不能正常工作。 当我通过时,它返回大约,当我通过例如“MAR”时,它返回,这是没有意义的,因为没有过滤器的查询正在获取所有行。我观察到的是,在处,正在分割查询。他正在列表中寻找,使用

  • 问题内容: 通过使用python,如何检查网站是否正常?从我阅读的内容中,我需要检查“ HTTP HEAD”并看到状态码“ 200 OK”,但是该怎么做呢? 干杯 有关 如何使用Python发送HEAD HTTP请求? 问题答案: 您可以尝试使用要做到这一点从 urllib的 编辑:对于更现代的python,即使用:

  • 我正在为一项任务做一个跳棋游戏。除了一件奇怪的事之外,整个事情都在按它应该的方式运行。这是我的黑板: 我通过给出源行和列,然后是目标行和列来移动。 如果我试图将一个工件移动到无效的位置(不是对角线),我应该打印出一个错误。所以如果我试着从5.2- 对于大多数情况,它都可以工作,但如果我尝试直接向下移动一个空间(例如,2 3- 我卡住了!你知道为什么会这样吗?如果需要,我可以发布更多代码。