-1

I have made this code and everything works fine but I would like the user to press enter to continue rolling until they either win or lose. Any suggestions would be great.

import hsa.Console;
import java.util.Scanner;  // Needed for the Scanner class
import java.util.Random;

public class Craps_Final1
{
     static Console c;
     public static void main(String [] args)   
     {
          c = new Console ();

          int point; // Dices Rolled 
          int sum; // Sum of the Dices 
          char input; // Menu Selector
          char menu; // return menu
          String player;// Name of player
          int bank;// money holder for the player
          int bet; // bet per per round
          String player2;// Name of player
          int bank2;// money holder for the player
          int bet2; // bet per per round
          int game; // input for 1 player or 2 player
          int loop=1; // loop for game



          while(true)
          {

               input = menu(); 
               if(input == 'M' || input == 'm')
               {

                    while(true)
                    {
                         menu = returnMenu(); 
                         if(menu == 'Q' || menu == 'q')
                         {
                              c.close();
                              break;
                         }

                         if(menu == 'P' || menu == 'p')
                         {
                              c.clear();

                    while(true)
                    {

                         Random randomNumbers = new Random();

                         Scanner keyboard = new Scanner(System.in);
                         c.println ("would you like to play 1 player or 2 player");
                         game=c.readInt();
                         c.clear();

                         if(game==1)
                         {

                         //PLAYER 1
                         c.println("Please enter your name");
                         player=c.readString();
                         c.clear();
                         c.println("Please enter how much you would like to gamble with today?");
                         bank=c.readInt();
                         c.clear();
                         c.println("\n");
                         c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + bank);
                         c.println("How much would you like to Bet?");
                         bet=c.readInt();
                         c.clear();
                         c.println("\n");
                         c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                         c.println("Bet:" + bet);
                         c.println("Available:" + (bank));                       

                         c.println("First roll.\n");
                         sum = roleDice(randomNumbers);
                         c.println("Sum:\t" + sum + "\n");

                         switch (sum) 
                         {

                              case 7: case 11:
                                   c.println(player + " " + "wins.");
                                   bank=(bet*2)+bank;
                                   c.println("Your Win has been added to your available balance");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(23,4);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                                   break;

                              case 2: case 3: case 12:
                                   c.println(player + " " + "loses.");
                                   c.println("Your Loss has been deducted from your available balance");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   bank=bank-bet;
                                   c.setCursor(23,4);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                                   break;

                              case 4: case 5: case 6:  case 8: case 9: case 10:
                                   c.println(player + " " + "Your Bet Stays and your available balance has not changed");
                                   c.setCursor(25,4);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                                   break;                              
                         }                              
                         }
                         else
                         {
                               //PLAYER 1 and PLAYER 2
                         c.println("Player 1 enter your name");
                         player=c.readString();
                         c.clear();
                         c.println("Player 2 enter your name");
                         player2=c.readString();
                         c.clear();
                         c.println("Player 1 how much you would like to gamble with today ?");
                         bank=c.readInt();
                         c.clear();
                         c.println("Player 2 how much you would like to gamble with today ?");
                         bank2=c.readInt();
                         c.clear();
                         c.println("\n");
                         c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + bank);
                         c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + bank2);
                         c.println("Player 1 how much would you like to Bet ?");
                         bet=c.readInt();
                         c.println("Player 2 how much would you like to Bet ?");
                         bet2=c.readInt();
                         c.clear();
                         c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                         c.println("Bet:" + bet);
                         c.println("Available:" + (bank));
                         c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                         c.println("Bet:" + bet2);
                         c.println("Available:" + (bank2));
                         c.clear();
                         c.println("First roll.\n");
                         sum = roleDice(randomNumbers);
                         c.println("Sum:\t" + sum + "\n");

                         switch (sum) 
                         {

                              case 7: case 11:
                                   c.println("All players wins.");
                                   bank=(bet*2)+bank;
                                   bank2=(bet2*2)+bank2;
                                   c.println("Your Win has been added to your available balance");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(21,1);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + (bank));
                                   c.setCursor(22,1);
                                   c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                                   break;

                              case 2: case 3: case 12:
                                   c.println("All players lose.");
                                   bank=bank-bet;
                                   bank2=bank2-bet2;
                                   c.println("Your Loss has been deducted from your available balance");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(21,1);
                                   c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + (bank));
                                   c.setCursor(22,1);
                                   c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                                   break;

                              case 4: case 5: case 6:  case 8: case 9: case 10:
                                   c.println("All Bets Stays and your available balances have not changed");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(21,1);
                                   c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + (bank));
                                   c.setCursor(22,1);
                                   c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                                   break;       

                         }
                         }
                        break;
                    }                       
                              break;  
                         }

                    }    
                    break;
               }
               else if (input == 'P' || input == 'p')
               {
                    c.clear();
                    while(true)
                    {

                         Random randomNumbers = new Random();

                         Scanner keyboard = new Scanner(System.in);
                         c.println ("would you like to play 1 player or 2 player");
                         game=c.readInt();
                         c.clear();

                         if(game==1)
                         {
                         //PLAYER 1
                         c.println("Please enter your name");
                         player=c.readString();
                         c.clear();
                         c.println("Please enter how much you would like to gamble with today?");
                         bank=c.readInt();
                         c.clear();
                         c.println("\n");
                         c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + bank);
                         c.println("How much would you like to Bet?");
                         bet=c.readInt();
                         c.clear();
                         c.println("\n");
                         c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                         c.println("Bet:" + bet);
                         c.println("Available:" + (bank));                       

                         c.println("First roll.\n");
                         sum = roleDice(randomNumbers);
                         c.println("Sum:\t" + sum + "\n");

                         switch (sum) 
                         {

                              case 7: case 11:
                                   c.println(player + " " + "wins.");
                                   bank=(bet*2)+bank;
                                   c.println("Your Win has been added to your available balance");
                                   c.setCursor(25,4);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                                   break;

                              case 2: case 3: case 12:
                                   c.println(player + " " + "loses.");
                                   c.println("Your Loss has been deducted from your available balance");
                                   bank=bank-bet;
                                   c.setCursor(25,4);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                                   break;

                              case 4: case 5: case 6:  case 8: case 9: case 10:
                                   c.println(player + " " + "Your Bet Stays and your available balance has not changed");
                                   c.setCursor(25,4);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                                   break;                              
                         }      
                         }
                         else
                         {
                               //PLAYER 1 and PLAYER 2
                         c.println("Player 1 enter your name");
                         player=c.readString();
                         c.clear();
                         c.println("Player 2 enter your name");
                         player2=c.readString();
                         c.clear();
                         c.println("Player 1 how much you would like to gamble with today ?");
                         bank=c.readInt();
                         c.clear();
                         c.println("Player 2 how much you would like to gamble with today ?");
                         bank2=c.readInt();
                         c.clear();
                         c.println("\n");
                         c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + bank);
                         c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + bank2);
                         c.println("Player 1 how much would you like to Bet ?");
                         bet=c.readInt();
                         c.println("Player 2 how much would you like to Bet ?");
                         bet2=c.readInt();
                         c.clear();
                         c.println("\t\t\t" + "Player:" + player + "\t" + "Available:" + (bank));
                         c.println("Bet:" + bet);
                         c.println("Available:" + (bank));
                         c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                         c.println("Bet:" + bet2);
                         c.println("Available:" + (bank2));
                         c.clear();
                         c.println("First roll.\n");
                         sum = roleDice(randomNumbers);
                         c.println("Sum:\t" + sum + "\n");

                         switch (sum) 
                         {

                              case 7: case 11:
                                   c.println("All players wins.");
                                   bank=(bet*2)+bank;
                                   bank2=(bet2*2)+bank2;
                                   c.println("Your Win has been added to your available balance");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(21,1);
                                   c.println("\n");
                                   c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + (bank));
                                   c.setCursor(22,1);
                                   c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                                   break;

                              case 2: case 3: case 12:
                                   c.println("All players lose.");
                                   bank=bank-bet;
                                   bank2=bank2-bet2;
                                   c.println("Your Loss has been deducted from your available balance");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(21,1);
                                   c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + (bank));
                                   c.setCursor(22,1);
                                   c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                                   break;

                              case 4: case 5: case 6:  case 8: case 9: case 10:
                                   c.println("All Bets Stays and your available balances have not changed");
                                   c.println ("New Balances shown at the bottom of the Screen");
                                   c.setCursor(21,1);
                                   c.println("\t\t\t" + "Player1:" + player + "\t" + "Available:" + (bank));
                                   c.setCursor(22,1);
                                   c.println("\t\t\t" + "Player2:" + player2 + "\t" + "Available:" + (bank2));
                                   break;       

                         }
                         }
                        break;
                    }
                    break;
               }

               else if(input == 'Q' || input == 'q')
               {
                    c.close();
                    break;
               }   
          }

     }
     // Sub Methods 

     // Random Number Generater 
     public static int roleDice(Random randomNumbers) 
     {
          int dice1, dice2;

          dice1 = 1+randomNumbers.nextInt(5);
          dice2 = 1+randomNumbers.nextInt(5);

          c.println("Dice 1:\t" + ++dice1);
          c.println("Dice 2:\t" + ++dice2);

          return dice1 + dice2;

     }

     // Menu Slector 
     public static char menu ()
     {
          char letter;
          c.clear();
          c.println("\t\t" + "        " + "*-----------------------------*");
          c.println ("\t\t" + "    " + "**********" + "Game Slection Menu" +"***********" );
          c.println("\t\t" + "        " +"*-----------------------------*");
          c.println ("\n\n");
          c.println("\t\t" +"M - For User Manual ");
          c.println("\t\t" +"P - Play Game");
          c.println("\t\t" +"Q - To Quit");
          letter = c.readChar();
          c.readChar();

          return letter;
     }

     // Return Menu
     public static char returnMenu ()
     {
          char letter2;
          c.clear();
          c.println ("\t\t\t" + "*******" + "User Manual:" + "*******" );
          c.println ("\n");
          c.println("        **********************************************************************");
          c.println("        *                                                                    *");
          c.println ("\t"+ "* This game is simple to play.                                       *");
          c.println ("\t"+ "* 2 Dices will be rolled and the numbers will be added together      *");
          c.println ("\t"+ "* If the sum of numbers rolled is equal to 7 or 11 its a Win         *");
          c.println ("\t"+ "* If the sum of numbers rolled is equal to 2,3 or 12 its a Loss      *");
          c.println ("\t"+ "* If the sum of numbers rolled is equal to 4,5,6,8,9,10   Bet remains*");
          c.println("        *                                                                    *");
          c.println("        **********************************************************************");

          c.println("\t\t" +"P - To Play Game");
          c.println("\t\t" +"Q - To Quit");
          letter2 = c.readChar();
          return letter2;
     }


}
Burkhard
  • 14,112
  • 22
  • 84
  • 106

2 Answers2

2

In java, you should use the Scanner. You can see how to use it here How can I read input from the console using the Scanner class in Java?

Community
  • 1
  • 1
Daniel Kaplan
  • 54,448
  • 39
  • 189
  • 282
0

I'd say rather than having the code embeded in main have the in a different method, at the end of that method you ask user if they wanna play again then if yes then the method calls itself again recursively if not the program terminates,so you then invoke it in main for instance

    public static void play()
    {
      //place code here

     S.o.p("play again?");
    //if yes call itself to startover
     play();
    //if no, program terminates
    }

Then in main you only have a method call

    public static void main(String...args)
    {
      play();
    }

That's my suggestion.

Edit: to avoid stackover flow I provide an alternative

    public static void play()
    {
      //place code here
    }

    public boolean playAgain(int choice)
    {
      if(!choice==1)
       return false;

     Return true;
    }

    public staic void main(String...args)
    {
     int repeat =0;
      do
       {
         play();
        S.o.p("play again?\n enter 1 for yes,0 for no");
        //assign repeat the number choice
       }while(playAgain(repeat));
    }

NOTE: code assumes correct input from user.

Sello
  • 187
  • 8
  • With this suggestion, if the user continues playing often enough, you'll get a stack overflow... – beny23 Jun 09 '13 at 09:49
  • Yeah maybe but often has to be about a thousands times, alternatively to avoid that he could use a while loop in main: – Sello Jun 09 '13 at 09:56