0

If I do not roll a 1, and I would like to "hold" my roll. The code ignores the instructions within the "h" bracket conditional statement, and rolls the dice again. I am confused because if I do roll a 1, the code does work and goes to the computer's turn, setting the flags correctly.

while ((humanScore <= 100) && (computerScore <=100))
    {
        /*loop while human turn is true*/
        while ((humanTurn == true) && (computerTurn == false))
        {
            die = randomGenerator.nextInt(6) + 1;

            if(die == 1)
            {
                System.out.println("Human, you rolled a 1, you lose your points and your turn.");
                humanTurn = false;
                computerTurn = true;
                points = 0;
                System.out.println("Your score is now " + humanScore);
                System.out.println("Computer, it is now your turn.");
            }

            else if(die != 1)
            {
                System.out.println("Human, you currently have " + points + " points to add to score.");
                System.out.println("You have rolled a " + die + " would you like to hold, or roll again?");
                System.out.println("Please enter either r to roll, or h to hold.");
                points = points + die;
                decision = scanner.next();

                if (decision == "r")
                {
                    humanTurn = true;
                }

                if(decision == "h")
                {
                    humanScore = humanScore + points;
                    humanTurn = false;
                    computerTurn = true;
                    points = 0;
                    System.out.println("You hold, your score is now " + humanScore);
                    System.out.println("Computer, it is now your turn.");
                }

            }
        }
the tao
  • 253
  • 2
  • 6
  • 13

1 Answers1

0
if (decision.equals("r"))
{
    humanTurn = true;
}

if(decision.equals("h"))
{
      humanScore = humanScore + points;
      humanTurn = false;
      computerTurn = true;
      points = 0;
      System.out.println("You hold, your score is now " + humanScore);
      System.out.println("Computer, it is now your turn.");
 }
Prabhakaran Ramaswamy
  • 25,706
  • 10
  • 57
  • 64