Как я знаю, когда прекратить модуляцию моего кода? - PullRequest
1 голос
/ 15 апреля 2020

Я не уверен, стоит ли беспокоиться об этом, но я хочу развить хорошие практики, пока я еще учусь программированию, и, если возможно, ослабить сомнения. И, пожалуй, тоже немного изучу теорию, пока я занимаюсь этим.

** В настоящее время изучаю Java, в частности, классы, хотя эта часть кода ориентирована на клиента.

Итак, сейчас работаю над азартной игрой. По сути, два человека начинают с определенного бюджета очков. Каждый из них бросает объявление ie, и выигрывает более высокий бросок. Победитель получает разницу в своем бюджете, а проигравший получает разницу, вычитаемую из их бюджета. Игра продолжается до тех пор, пока в бюджете одного игрока больше не останется очков.

Что подводит меня к этому пункту, коду. Это два варианта решения, которое я придумал, и пытаюсь определить, какое из них «лучше», так сказать.

    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;
        }

Мне кажется более практичным, что второй кусок кода был бы более разумным выбором, поскольку он прост и кажется бессмысленным делать это иначе - учитывая все, что я делаю, это отрицание значения. Однако именно здесь я начинаю путаться.

...