1

我不太确定这是否是一件值得担心的重要事情,但我想在我仍在学习编程的同时开发良好的实践,如果可能的话,减少怀疑。我想,在我学习的时候,也学习一点理论。

**目前正在学习 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;
        }

对我来说,第二段代码将是一个更合理的选择似乎更实际,因为它很简单,而且以另一种方式去做似乎毫无意义——考虑到我所做的只是否定一个值。不过,这就是我开始感到困惑的地方。

4

0 回答 0