I have been working on this program for about a week now and I think I have it down pack. The issue I am having when I ask the user at the beginning of the game (human vs computer) everytime I run the program it asks me what my name is again. Here is what I have thus far:

 import java.util.Scanner;  

 public class Assignment  
 {  
     Scanner usersName;  
     Boolean humanTurn = true;  
     Boolean computerTurn = true;  
     int dice;  
     int humanTurnPoints, computerTurnPoints;  
     int humanTotalPoints = 0;
     int computerTotalPoints = 0;
     private Scanner keyboard;
     private Scanner key;   

     //System.out.print("Please enter your name: ");
     //usersName = new Scanner(System.in);  
     //setStart(usersName.nextLine());

     public void roll()  
         {  
         dice = (int)(Math.random()*6) + 1;                   
         }      

     public int humanTurnScore()  
         {  
             {  
                 humanTurnPoints = dice + humanTurnPoints;  
                 System.out.println("You threw: " + dice);
                 System.out.println("You have scored: " + humanTurnPoints + " in your turn.");  
             } return humanTurnPoints;  
         } 
     public void humanTurnZero()
     {
        humanTurnPoints = 0;
     } 

     public int computerTurnScore()  
         {  
             {  
                 computerTurnPoints = dice + computerTurnPoints;  
                 System.out.println("Computer has scored: " + computerTurnPoints + " in its turn.");  
             } return computerTurnPoints;  
         }     
      public void computerTurnZero()
         {
            computerTurnPoints = 0;
         } 

     public Assignment()  
     {  
         humanGame();  
         if(!humanTurn)  
         {  
             computerTurn();  
         }  
     }  
     public int humanGame()
        { 

         System.out.println("To start the game please press 'r'.");  
         key = new Scanner(System.in);  
         String start = key.nextLine();  
         if(!start.equalsIgnoreCase("R")) 
         {
                System.out.println("Make sure you are pressing 'r'.");
                humanGame();
         }

         if(start.equalsIgnoreCase("R"))
            {                          
                         System.out.println("You pressed 'r'.");  
                         System.out.println("Lets start.");           


             do{  
                 roll();    


                 if(dice == 1)  
                 {  
                     System.out.println("You got 1 and you lost your turn.");
                     System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                     humanTurnZero();            
                     computerTurn();  

                 }  
                 else if(dice != 1) 
                 {

                     humanTotalPoints += dice;  
                        if(humanTotalPoints >= 100)    
                        {  
                            System.out.println("You threw: " + dice);
                            System.out.println("Your GRAND TOTAL score is: " + humanTotalPoints);
                            System.out.println("Congratulations, you win!");  
                            System.exit(0);  
                        } 
                     humanTurnScore();  
                     System.out.println("Your GRAND TOTAL score is: " + humanTotalPoints);  
                     System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                     System.out.println("You can hold or roll again.");  
                     System.out.println("To roll again press 'r' or 'h' to hold.");  
                     keyboard = new Scanner(System.in);  
                     String choice = keyboard.nextLine();  

                     if(choice.equalsIgnoreCase("R"))                                  
                         {  
                           System.out.println("You pressed 'r'.");  
                           System.out.println("Lets roll again.");   
                           roll();           

                                 if(!choice.equalsIgnoreCase("R"))
                                    {
                                        System.out.println("You didn't press 'r'. To make sure the program is running correctly please press 'r' to roll or 'h' to hold.");
                                        humanGame();
                                    }
                        }

                     if(choice.equalsIgnoreCase("h"))  
                         {                         
                         System.out.println("You pressed 'h' and loose your turn.");
                         System.out.println("Your Grand total is: " + humanTotalPoints);
                         humanTurnZero();  
                         computerTurn();  
                         }     

                    }  

            }while(humanTurn);     

         }return dice;  
     }  
 public int computerTurn()  
 {  
     System.out.println("Now it's computer turn.");  

     do {  
         roll();  

         if(dice != 1)  
         {  
             computerTotalPoints += dice; 
                if(computerTotalPoints >=100)  
                    {  
                        System.out.println("Computer threw: " + dice);
                        System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                        System.out.println("Game Over! the computer wins");  
                        System.exit(0);  
                    }   
             System.out.println("Computer threw: " + dice);
             System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
             System.out.println("Your Grand total is: " + humanTotalPoints);
             computerTurnScore();  
             roll();  
         }  

         if(dice == 1)   
         {  
             System.out.println("Computer thrown 1 therefore it's your turn now.");  
             computerTurnZero();  
             humanGame();  
         }  

         if(computerTurnPoints >= 20)  
         {  
             System.out.println("Computer scored already " + computerTurnPoints + " you'd better start to focus.");  
             System.out.println("Please play again");  
             humanGame();  
         }   

     }while (computerTurn);  
     return dice;  

 }     


 public static void main(String[] args)  
 {  
     new Assignment();  
 }  
 }  

I commented out (up close to the top of the program) where I am asking the user at the beginning of the program what their name is. I actually need in all the System.out.println where it says 'You' I need it to say the usersName.

Would someone please help me with this program. I know someone is kind enough to help me out here.

Thank you in advance.

Recommended Answers

All 4 Replies

You need that the program ask the name and latter replace 'You' for this name? (Sorry for my english)

Yes, that is correct.

Somethin like that?:

import java.util.Scanner;

public class Assignment
{
    //Scanner usersName;
    String usersName="";
    Boolean humanTurn = true;
    Boolean computerTurn = true;
    int dice;
    int humanTurnPoints, computerTurnPoints;
    int humanTotalPoints = 0;
    int computerTotalPoints = 0;
    private Scanner keyboard;
    private Scanner key;

    // System.out.print("Please enter your name: ");
    // usersName = new Scanner(System.in);
    // setStart(usersName.nextLine());
    public void roll()
    {
        dice = (int) (Math.random() * 6) + 1;
    }

    public int humanTurnScore()
    {
        {
            humanTurnPoints = dice + humanTurnPoints;
            System.out.println(usersName + "threw: " + dice);
            System.out.println(usersName + "have scored: " + humanTurnPoints + " in your turn.");
        }
        return humanTurnPoints;
    }

    public void humanTurnZero()
    {
        humanTurnPoints = 0;
    }

    public int computerTurnScore()
    {
        {
            computerTurnPoints = dice + computerTurnPoints;
            System.out.println("Computer has scored: " + computerTurnPoints + " in its turn.");
        }
        return computerTurnPoints;
    }

    public void computerTurnZero()
    {
        computerTurnPoints = 0;
    }

    public Assignment(String xUsersName)
    {
        usersName=xUsersName;
        humanGame();
        if (!humanTurn)
        {
            computerTurn();
        }
    }

    public int humanGame()
    {
        System.out.println("To start the game please press 'r'.");
        key = new Scanner(System.in);
        String start = key.nextLine();
        if (!start.equalsIgnoreCase("R"))
        {
            System.out.println("Make sure you are pressing 'r'.");
            humanGame();
        }
        if (start.equalsIgnoreCase("R"))
        {
            System.out.println(usersName + "pressed +  'r'.");
            System.out.println("Lets start.");
            do
            {
                roll();
                if (dice == 1)
                {
                    System.out.println(usersName + " got 1 and you lost your turn.");
                    System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                    humanTurnZero();
                    computerTurn();
                }
                else if (dice != 1)
                {
                    humanTotalPoints += dice;
                    if (humanTotalPoints >= 100)
                    {
                        System.out.println(usersName + " threw: " + dice);
                        System.out.println(usersName +" r GRAND TOTAL score is: " + humanTotalPoints);
                        System.out.println("Congratulations, you win!");
                        System.exit(0);
                    }
                    humanTurnScore();
                    System.out.println(usersName +" r GRAND TOTAL score is: " + humanTotalPoints);
                    System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                    System.out.println(usersName + " can hold or roll again.");
                    System.out.println("To roll again press 'r' or 'h' to hold.");
                    keyboard = new Scanner(System.in);
                    String choice = keyboard.nextLine();
                    if (choice.equalsIgnoreCase("R"))
                    {
                        System.out.println(usersName + " pressed 'r'.");
                        System.out.println("Lets roll again.");
                        roll();
                        if (!choice.equalsIgnoreCase("R"))
                        {
                            System.out.println(usersName + " didn't press 'r'. To make sure the program is running correctly please press 'r' to roll or 'h' to hold.");
                            humanGame();
                        }
                    }
                    if (choice.equalsIgnoreCase("h"))
                    {
                        System.out.println(usersName + " pressed 'h' and loose your turn.");
                        System.out.println(usersName +" r Grand total is: " + humanTotalPoints);
                        humanTurnZero();
                        computerTurn();
                    }
                }
            } while (humanTurn);
        }
        return dice;
    }

    public int computerTurn()
    {
        System.out.println("Now it's computer turn.");
        do
        {
            roll();
            if (dice != 1)
            {
                computerTotalPoints += dice;
                if (computerTotalPoints >= 100)
                {
                    System.out.println("Computer threw: " + dice);
                    System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                    System.out.println("Game Over! the computer wins");
                    System.exit(0);
                }
                System.out.println("Computer threw: " + dice);
                System.out.println("Computer's GRAND TOTAL score is: " + computerTotalPoints);
                System.out.println(usersName + "r Grand total is: " + humanTotalPoints);
                computerTurnScore();
                roll();
            }
            if (dice == 1)
            {
                System.out.println("Computer thrown 1 therefore it's your turn now.");
                computerTurnZero();
                humanGame();
            }
            if (computerTurnPoints >= 20)
            {
                System.out.println("Computer scored already " + computerTurnPoints + " you'd better start to focus.");
                System.out.println("Please play again");
                humanGame();
            }
        } while (computerTurn);
        return dice;
    }

    public static void main(String[] args)
    {
        System.out.println("Please enter your name:");
        Scanner vScanner = new Scanner(System.in);
        String vUserName=vScanner.nextLine();
        new Assignment(vUserName);
        vScanner.close();
    }
}

Actually, I think I just saw my solution (or the error any way).

I need to put this in

public Assignment(String xUsersName)
      {
      usersName=xUsersName;
      humanGame(); 

And fix some spacing errors. Thank you for everyone's help. It is nice to be able to have a third eye in programming. I am still a beginner but I am determined to work this out. I am sure I will be back. Thanks again.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.