我不确定这是否是一件值得担心的重要事情,但是我想在学习编程的同时发展良好的实践,并尽可能减少怀疑。我想,在学习的同时,还要学一点理论。
**尽管这部分代码专注于客户端,但目前正在学习Java,尤其是类。
因此,目前正在研究机会游戏。 基本上,两个人从一定的点预算开始。他们每个人都掷骰子,更高的骰子获胜。获胜者获得其预算的差额,而失败者获得从其预算中扣除的差额。游戏一直进行到一个玩家的预算不再有任何积分为止。
这就是代码。 这是我想出的一种解决方案的两种变体,很难确定可以说哪个更好。
public static int allocatePoints(int balance, int points){
balance = balance + points;
return balance;
}
-----------------------------------------------------------------------------------------
int points = Math.abs(die1.getFaceValue() - die2.getFaceValue());
if(points == 0){
System.out.println("Draw!\n");
continue;
}
if(die1.getFaceValue()>die2.getFaceValue()){
balance1 = allocatePoints(balance1, points);
balance2 = allocatePoints(balance2, -points);
} else {
balance1 = allocatePoints(balance1, -points);
balance2 = allocatePoints(balance2, points);
}
if(balance1 < 0){
balance1 = 0;
}
if(balance2 < 0){
balance2 = 0;
}
=========================================================================================
=========================================================================================
int difference = Math.abs(die1.getFaceValue() - die2.getFaceValue());
if(die1.getFaceValue()>die2.getFaceValue()){
balance1 = balance1 + difference;
balance2 = balance2 - difference;
} else if(die2.getFaceValue()>die1.getFaceValue()){
balance1 = balance1 - difference;
balance2 = balance2 + difference;
} else {
System.out.println("Draw!");
}
if(balance1 < 0){
balance1 = 0;
}
if(balance2 < 0) {
balance2 = 0;
}
在我看来,第二段代码是一个更合理的选择,因为它很简单,而且以另一种方式似乎毫无意义-考虑到我正在做的事情是否定一个值。不过,那是我开始感到困惑的地方。