Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何正确输出游戏_Java_If Statement - Fatal编程技术网

Java 如何正确输出游戏

Java 如何正确输出游戏,java,if-statement,Java,If Statement,我一直在试图修复我的蛇和梯子代码。例如,如果玩家1在游戏板上的位置是98,并且他掷5个骰子,那么玩家1的位置应该是97。所以,(100-98=2,(5-2)=3100-3=97)。我一直试图在我的代码中实现这一点,因为player1或player2的滚动速度可能高于100 我的代码: System.out.println (player1+" Rolled a " + P1Roll ); System.out.println (player2+" Rolled a " + P2Roll)

我一直在试图修复我的蛇和梯子代码。例如,如果玩家1在游戏板上的位置是98,并且他掷5个骰子,那么玩家1的位置应该是97。所以,(100-98=2,(5-2)=3100-3=97)。我一直试图在我的代码中实现这一点,因为player1或player2的滚动速度可能高于100

我的代码:

System.out.println (player1+" Rolled a " + P1Roll ); 
   System.out.println (player2+" Rolled a " + P2Roll); 
   //If player1 position is greater than 100
      if(P1Position+P1Roll>100){
        P1=100-P1Position;
        difference=P1Position-P1Roll;
        P1Position=100-difference;
    }    
    //If palyer2 position is greater than 100
    else if(P2Position+P2Roll>100){
        P2 = 100-P2Position;
        difference=P2Position-P2Roll;
        P2Position=100-difference;
    }    

   System.out.println ("------------------------------------------------------------------------");

   //calculate player positions 
   P1Position = P1Position + P1Roll;      
   P2Position = P2Position + P2Roll;
   //call position methods
   P1Position = Player1(P1Position, P1Roll, snakes, ladder, arrow);           
   P2Position = Player2(P2Position, P2Roll, snakes, ladder, arrow);
  //Print out players current positions
   System.out.println("==========================================================================");                       
   System.out.println (player1+" is currently on square " + P1Position);
   System.out.println (player2+" is currently on square " + P2Position); 
   System.out.println("==========================================================================");     

尝试删除玩家1后的
else
,除非在玩家1掷骰后调用这些方法

(另一种说法是:两个玩家都掷骰子,然后你移动他们吗?如果是,请移除
其他
。如果玩家1掷骰子,然后你更新,则保留
其他
。否则,我看不到任何其他错误)

else
语句将条件视为:“玩家1的位置加掷是否大于100?如果是,则执行此块,即是。如果玩家1的位置加掷不大于100,则尝试下一块”。因此,如果玩家1确实必须使用if块进行“操纵”,那么玩家2可能永远也不会移动


我希望我的答案不要太混乱。

根据你的计算,应该是这样的

difference=P1Roll-P1;
对于玩家2:

difference=P2Roll-P2;
对于所有情况,请尝试以下更简单的方法:

P1Position = 100 - Math.abs(P1Position + P1Roll - 100);

欢迎来到StackOverflow!请编辑您的问题并将相关代码类型(C#、Java、Javascript)添加到标记中。它可以帮助那些想回答您问题的人提前了解您的代码语言。任何帮助都是值得赞赏的。您可以通过以下方式改进您的问题: