java please add comments to make the code clearer Write a si
java
please add comments to make the code clearer.
Write a simple press-your-luck dice game. The game works as follows: Player 1 starts with a score of zero and rolls two dice. If the player rolls 7, 2, or 12 their turn is over and they lose. If the player rolls any other sum it is added to their total score. The player can stop rolling at any time - remember if their last roll was a 7, 2 or 12 they lose and Player 2 wins. After Player 1 stops rolling. Player 2 rolls the two dice o Player 2 continues to roll the dice until they roll a 7, 2 or 12 (Player 2 loses) or they have a total higher than Player 1 (Player 2 wins). Your solution should make use of methods with the following headers: public static int rollDie() return a random valid die value between 1 and 6 public static int newScore(int oldScore. int rollValue) detemhne if the current roll should be added to the score. If the player rolled 7, 2 or 12 return -1 to show that the player just lost. Otherwise return the updated score. public static int whoGoesFirst() randomly return 1 if player 1 goes first public static String winner(int playerNumber) print a message indicating who won the game public static char keepRolling() A method that prompts the player to ask if they want to keep rolling. Return y or n as needed. main() this is your main method that coordinates all of the other methods as necessary. Collect all input and produce all output from this method. Your game should be able to play a complete human vs. human game. You should be able to play human vs. computer AND play multiple games without quitting the program AND keep track of how many games each player has won.Solution
Could you please check the result and verify with your requirement.
________________________
PressYouLuckDiceGame.java
import java.util.Random;
import java.util.Scanner;
public class PressYouLuckDiceGame {
public static void main(String[] args) {
//Declaring variables
int number,sum,total_score=0,player = 0, pc_sum,old_score,pc_old_score,player1win=0,player2win=0,flag1=0,flag2=0;
char ch;int pc_total_score =0;
//Scanner class object is sued to read the inputs entered by the user
Scanner sc=new Scanner(System.in);
//This loop continues to execute until user enters character other than \'y\' or \'Y\'
while(true)
{
//Calling the method to decide which player starts the game
player=whoGoesFirst();
//This loop continue to execute until either player#1 wins or player#2 wins
while(true)
{
sum=0;
//Player#1 rolling the dice
if(player==1)
{
//Throwing the dice for 2 times
for(int i=0;i<2;i++)
{
flag1=1;
//Adding the sum
sum+=rollDie();
}
//Displaying dice score when each time player#1 rolled the dice
System.out.println(\"\ Player#1 rolled \"+sum);
//Calling the method to get the total score of player#1
total_score=newScore(total_score,sum);
//Displaying the Player#1 total score
System.out.println(\"Player#1 Total Score :\"+total_score);
//If the total score is -1 the display message that player#2 wins the game
if(total_score==-1)
{
System.out.println(\":: Player#1 Lost the game ::\");
System.out.println(\":: Player#2 Wins the Game ::\");
player2win++;
break;
}
//Prompting whether player#1 want to roll again
ch=keepRolloing();
if(ch==\'y\' ||ch==\'Y\')
{
sum=0;
player=1;
continue;
}
/* Checking whether player#1 total score is greater than player#2 total score or not
* If yes displaying player#1 wins the game
*/
else if (flag2==1 && total_score>pc_total_score)
{
System.out.println(\":: Player 1 wins the game ::\");
player1win++;
break;
}
else
{
player=2;
continue;
}
}
else if(player==2)
{
pc_sum = 0;
//Player #2 rolling the dice for 2 times
for(int i=0;i<2;i++)
{
flag2=1;
pc_sum+=rollDie();
}
//Displaying dice score when each time player#2 rolled the dice
System.out.println(\"\ Player#2 rolled \"+pc_sum);
//Calling the method to
pc_total_score = newScore(pc_total_score,pc_sum);
//Displaying the player#2 total score
System.out.println(\"Player#2 Total Score :\"+pc_total_score);
//If the total score is -1 the display message that player#1 wins the game
if(pc_total_score==-1)
{
System.out.println(\":: player#2 Lost the game ::\");
System.out.println(\":: Player#1 wins the game ::\");
player1win++;
break;
}
/* Checking whether player#2 total score is greater than player#1 total score or not
* If yes displaying player#2 wins the game
*/
else if (flag1==1 && pc_total_score>total_score)
{
System.out.println(\":: Player 2 wins the game ::\");
player2win++;
break;
}
else
//Prompting whether player#2 want to roll again
ch=keepRolloing();
if(ch==\'y\' ||ch==\'Y\')
{
sum=0;
player=2;
continue;
}
else
{
player=1;
continue;
}
}
}
//Displaying no of times player#1 wins the game
System.out.println(\"\ No of times player#1 wins \"+player1win);
//Displaying no of times player#2 wins the game
System.out.println(\"No of times player#2 wins \"+player2win);
//Getting the character from the user \'Y\' or \'y\' or \'N\' or \'n\'
System.out.print(\"\ Do you want to play again (Y/N) ::\");
char ch1 = sc.next(\".\").charAt(0);
if(ch1==\'Y\'||ch1==\'y\')
{
total_score=0;
pc_total_score=0;
flag1=0;
flag2=0;
continue;
}
else
{
System.out.println(\":: Program Exit ::\");
break;
}
}
}
//This method decides which player starts the game
private static int whoGoesFirst() {
//Creating an Random Class Object
Random r = new Random();
//Rolling the first dice
return r.nextInt(2) + 1;
}
//This method adds the dice score to the old score and return
private static int newScore(int old_score, int sum) {
int val=0;
if(sum==2 ||sum==7 ||sum==12)
{
val=-1;
}
else
val=old_score+sum;
return val;
}
//This method prompts user whether he want to continue the game or not
private static char keepRolloing() {
Scanner sc=new Scanner(System.in);
System.out.print(\"Do you want to continue(Y/N) ::\");
char ch = sc.next(\".\").charAt(0);
return ch;
}
//This method rolling the dice and return the dice score
private static int rollDie() {
int dice;
//Creating an Random Class Object
Random r = new Random();
//Rolling the first dice
dice= r.nextInt(6) + 1;
return dice;
}
}
______________________________________
Output:
Player#2 rolled 6
Player#2 Total Score :6
Do you want to continue(Y/N) ::y
Player#2 rolled 7
Player#2 Total Score :-1
:: player#2 Lost the game ::
:: Player#1 wins the game ::
No of times player#1 wins 1
No of times player#2 wins 0
Do you want to play again (Y/N) ::y
Player#2 rolled 9
Player#2 Total Score :9
Do you want to continue(Y/N) ::y
Player#2 rolled 6
Player#2 Total Score :15
Do you want to continue(Y/N) ::y
Player#2 rolled 7
Player#2 Total Score :-1
:: player#2 Lost the game ::
:: Player#1 wins the game ::
No of times player#1 wins 2
No of times player#2 wins 0
Do you want to play again (Y/N) ::y
Player#2 rolled 10
Player#2 Total Score :10
Do you want to continue(Y/N) ::y
Player#2 rolled 8
Player#2 Total Score :18
Do you want to continue(Y/N) ::y
Player#2 rolled 7
Player#2 Total Score :-1
:: player#2 Lost the game ::
:: Player#1 wins the game ::
No of times player#1 wins 3
No of times player#2 wins 0
Do you want to play again (Y/N) ::y
Player#1 rolled 5
Player#1 Total Score :5
Do you want to continue(Y/N) ::y
Player#1 rolled 10
Player#1 Total Score :15
Do you want to continue(Y/N) ::n
Player#2 rolled 4
Player#2 Total Score :4
Do you want to continue(Y/N) ::y
Player#2 rolled 7
Player#2 Total Score :-1
:: player#2 Lost the game ::
:: Player#1 wins the game ::
No of times player#1 wins 4
No of times player#2 wins 0
Do you want to play again (Y/N) ::y
Player#1 rolled 6
Player#1 Total Score :6
Do you want to continue(Y/N) ::y
Player#1 rolled 7
Player#1 Total Score :-1
:: Player#1 Lost the game ::
:: Player#2 Wins the Game ::
No of times player#1 wins 4
No of times player#2 wins 1
Do you want to play again (Y/N) ::y
Player#2 rolled 5
Player#2 Total Score :5
Do you want to continue(Y/N) ::y
Player#2 rolled 11
Player#2 Total Score :16
Do you want to continue(Y/N) ::y
Player#2 rolled 7
Player#2 Total Score :-1
:: player#2 Lost the game ::
:: Player#1 wins the game ::
No of times player#1 wins 5
No of times player#2 wins 1
Do you want to play again (Y/N) ::y
Player#1 rolled 3
Player#1 Total Score :3
Do you want to continue(Y/N) ::y
Player#1 rolled 8
Player#1 Total Score :11
Do you want to continue(Y/N) ::y
Player#1 rolled 7
Player#1 Total Score :-1
:: Player#1 Lost the game ::
:: Player#2 Wins the Game ::
No of times player#1 wins 5
No of times player#2 wins 2
Do you want to play again (Y/N) ::y
Player#2 rolled 8
Player#2 Total Score :8
Do you want to continue(Y/N) ::y
Player#2 rolled 7
Player#2 Total Score :-1
:: player#2 Lost the game ::
:: Player#1 wins the game ::
No of times player#1 wins 6
No of times player#2 wins 2
Do you want to play again (Y/N) ::y
Player#1 rolled 6
Player#1 Total Score :6
Do you want to continue(Y/N) ::y
Player#1 rolled 10
Player#1 Total Score :16
Do you want to continue(Y/N) ::y
Player#1 rolled 10
Player#1 Total Score :26
Do you want to continue(Y/N) ::n
Player#2 rolled 9
Player#2 Total Score :9
Do you want to continue(Y/N) ::y
Player#2 rolled 6
Player#2 Total Score :15
Do you want to continue(Y/N) ::y
Player#2 rolled 10
Player#2 Total Score :25
Do you want to continue(Y/N) ::y
Player#2 rolled 4
Player#2 Total Score :29
:: Player 2 wins the game ::
No of times player#1 wins 6
No of times player#2 wins 3
Do you want to play again (Y/N) ::n
:: Program Exit ::
______________Thank You






