我不太确定这是否是一件值得担心的重要事情,但我想在我仍在学习编程的同时开发良好的实践,如果可能的话,减少怀疑。我想,在我学习的时候,也学习一点理论。
**目前正在学习 Java,特别是 Classes,虽然这部分代码侧重于客户端。
所以,目前正在研究机会游戏。基本上,两个人从一定的积分预算开始。他们每人掷一个骰子,较高的掷骰获胜。赢家获得预算的差额,输家获得从预算中扣除的差额。游戏继续进行,直到一名玩家的预算不再有任何积分。
这让我想到了这一点,代码。这是我提出的解决方案的两种变体,并且很难确定哪个可以说是“更好”。
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;
}
对我来说,第二段代码将是一个更合理的选择似乎更实际,因为它很简单,而且以另一种方式去做似乎毫无意义——考虑到我所做的只是否定一个值。不过,这就是我开始感到困惑的地方。