2013-10-02 6 views
0

У меня проблема с моим дилерским методом в моей игре в блэкджек.Блэкджек println игра Java-программирование

У меня есть способ создать случайную карту из колоды класса.

Карты присвоили им значения и так далее. однако проблема заключается в коде, где я хочу, чтобы дилер рисовал новую карту и добавлял значение к существующему суммарному ручному значению. код следующий.

// Основы для значений дилеров карт

int dealerHandValue = 0; 
    int tempDealerHandValue = 0; 
    int totalDealerHandValue= 0; 

// Дилеры первой карты

randomGenNum = (int)((range * Math.random()) + 1)*2; 
    dealerHandValue = arrayCardRank[randomGenNum]; 
    CardSuit = arrayCardSuit[randomGenNum]; 


    System.out.println("Dealer First Card Shows : " + (CardSuit)); 

    tempDealerHandValue = dealerHandValue; 

// Код, выполняемый, когда игрок прекращает рисовать и стоит.

  while (totalDealerHandValue < 18 && totalDealerHandValue <21) 
      { 

      randomGenNum = (int)((range * Math.random()) + 1)*2; 
      dealerHandValue = arrayCardRank[randomGenNum]; 
      CardSuit = arrayCardSuit[randomGenNum]; 


      System.out.println("Dealer next Card Shows : " + (CardSuit)); 

      tempDealerHandValue = dealerHandValue; 

      totalDealerHandValue = (tempDealerHandValue) + (dealerHandValue); 

      System.out.println("Dealer total hand value is " + (totalDealerHandValue)); 

     } 



     { 
      System.out.println("Dealer stopped drawing"); 

      if (totalDealerHandValue >= totalUserHandValue) 
      { 

       System.out.println("Dealer wins"); 
       return; 

      } 
      else 

       System.out.println("Congratulations! You Win!"); 
      return; 


     } 

Этот метод просто добавит новое значение карты в себя и снова, пока оператор while не закончится.

Я ослепл проблему, и я знаю, что она легко фиксируется. Может ли кто-нибудь помочь мне в отношении того, что мне не хватает?

+0

чем проблема? Я не понимаю, о чем вы спрашиваете. – tom

+0

Мне нужно, чтобы tempDealerHandValue добавлялся к totalDealerHandValue, каждый раз, когда новая карта нарисована до тех пор, пока контур цикла не закончится – StakkelsMand

+0

см. Ответ ниже – tom

ответ

1

Вы никогда не увеличиваете totalDealerHandValue, просто переписывая значение снова и снова.

Замените эти две строки:

tempDealerHandValue = dealerHandValue; 

totalDealerHandValue = (tempDealerHandValue) + (dealerHandValue); 

с

totalDealerHandValue += dealerHandValue; 
+0

Спасибо! это не работало сначала, я метод, где дилер показывает вторую карту, чтобы это работало. Еще раз спасибо! Действительно помогло – StakkelsMand

+0

круто, рад, что это сработало для вас :) – tom

Смежные вопросы