首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For loop和if语句行为奇怪

问For loop和if语句行为奇怪
EN

Stack Overflow用户
提问于 2016-09-07 18:10:40
回答 1查看 61关注 0票数 0

我正在做一个国际象棋游戏,到目前为止一切都很好,现在我正在写每个棋子的规则。问题是for循环的行为很奇怪。这是为了主教,所以x往下走,y往上走。在这一点上,每当我试图将点添加到可能的移动中时,它的行为都很奇怪。

代码语言:javascript
复制
for (int i = 0; i < 8; i++) {
   Point newLoc = new Point(x-i, y+i);              

  if(team.equals("white")) {
    if(containsPiece(newLoc)) {
            if(ChessBoard.black.containsKey(newLoc)) {
                possibilities.put(newLoc, rating);
                break;
            }
            else {
                break;
            }
        } else 
            possibilities.put(newLoc, rating);
    }

containsPiece()运行得很好,possibilities是我存储可能移动的HashMap。

在我看来,它应该是完美的,因为如果newLoc的磁贴是白色的,它不应该将它添加到可能的移动中,并停止在该方向上的任何移动。有人明白为什么它似乎放弃了之前添加到possibilities中的所有可能的移动吗

​

​

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-07 18:15:26

i应该从1开始,而不是从0开始,因为当i==0时,newLoc是主教((x-0,y+0))的位置,所以您从循环中中断,因为主教是一个白色的磁贴。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39367020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档