java如何正确输出游戏
我一直在试图修复我的蛇和梯子代码。例如,如果玩家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 楼答案
尝试删除播放器1后的
else
,除非在播放器1掷骰后调用这些方法(另一种说法是:两个玩家都掷骰子,然后你移动他们吗?如果是,移除
else
。如果玩家1掷骰子,然后你更新,然后保留else
。否则,我看不出还有什么错误){}语句将条件视为:“玩家1的位置加掷是否大于100?如果是,则执行此块,即是。如果玩家1的位置加掷未大于100,则尝试下一块”。因此,如果玩家1确实必须使用if块进行“操纵”,那么玩家2可能永远也不会移动
我希望我的回答不会太混乱
# 2 楼答案
根据你的计算应该是
对于玩家2:
对于所有情况,请尝试以下更简单的方法: