Java垄断游戏

时间:2015-04-09 18:45:41

标签: java loops

我制作了一块电路板,然后将电路板的布局设置为空。所以我通过逐个像素地移动它们来定位我的令牌。但是当转弯时我遇到了麻烦。在前10个位置令牌可以转弯并继续下一个10位置。但我的令牌不可能转2.转 任何人都可以建议我更好的代码来解决这个问题。我认为我让事情变得更复杂。

            if(g.getPosx() <= 650 && g.getPosx() >= 50 && g.getPosy()==650) {
            if(g.getPosx()-unitChange*d.getDice() <= 50) {
                temp = unitChange*d.getDice() - (g.getPosx() - 50);
                g.setPosx(50);
                g.setPosy(g.getPosy()-temp);
            }
            else {
                g.setPosx(g.getPosx()-unitChange*d.getDice());  
                temp = 0;
            }
        }
        else if(g.getPosy() <= 650 && g.getPosy() >= 50 && g.getPosx()==650) {
            if(g.getPosy()-unitChange*d.getDice() <= 50) {
                temp = unitChange*d.getDice() - (g.getPosy() - 50);
                g.setPosy(50);
                g.setPosx(g.getPosx()-temp);
            }
            else {
                g.setPosy(g.getPosy()-unitChange*d.getDice());  
                temp = 0;
            }
        }
        else if(g.getPosx() <= 650 && g.getPosx() >= 50 && g.getPosy()==50) {
            if(g.getPosx()-unitChange*d.getDice() <= 50) {
                temp = unitChange*d.getDice() - (g.getPosx() - 50);
                g.setPosx(50);
                g.setPosy(g.getPosy()-temp);
            }
            else {
                g.setPosx(g.getPosx()-unitChange*d.getDice());      
                temp = 0;
            }
        }
        else if(g.getPosy() <= 650 && g.getPosy() >= 50 && g.getPosx()==50) {
            if(g.getPosy()-unitChange*d.getDice() <= 50) {
                temp = unitChange*d.getDice() - (g.getPosy() - 50);
                g.setPosy(50);
                g.setPosx(g.getPosx()-temp);
            }
            else {
                g.setPosy(g.getPosy()-unitChange*d.getDice());  
                temp = 0;   
            }
        }

1 个答案:

答案 0 :(得分:1)

不是使用当前的X和Y位置来跟踪作品停在哪个位置,而是尝试跟踪作品已落在哪个属性上。因此,物业1将是GO在第39位的木板路上的第一站。然后你可以拥有像

这样的功能
movePlayerToLocation(Player player, int location){

    // calculate your x and y based on the property locatoin

    if(locatoin < 11){
      // on first edge
    } else if (location < 21) {
      // on second edge
    } else if (location < 31) 
      // on third edge
    } else {
      // on fourth edge of the board
    }

  // do your g.setPos-ing
}