Dice Rolling Java-programma

Ik maak een spel met dobbelstenen! Er worden 2 dobbelstenen gegooid en er worden 2 willekeurige getallen tussen 1-6 gegenereerd. De som wordt van de 2 getallen genomen en gebruikt om te beslissen wat de volgende stap is. Als de som van de gebruiker 2,3,12 is, verliezen ze. Als de som 7,11 is, winnen ze. Als de som 4,5,6,8,9,10 is, gooit het programma automatisch de dobbelstenen opnieuw totdat de gebruiker wint of verliest. Geef ook, na elke weergegeven som, hieronder het aantal spellen weer dat ze hebben gewonnen/verloren. Hier is mijn code tot nu toe:

//import java.util.Scanner;
public class Lab5 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //variables
        int dice1;
        int dice2;
        //Call the welcome method
        welcome();
        //fetch random numbers
        /*
         * **************************************************************
         *welcome method
         *welcome user
         *no parameters
         *no return
         ****************************************************************
         */
    }
    public static void welcome() {
        System.out.println("Welcome to a Lucky (for me) Dice Game! \nFEELING LUCKY?!? Hope you brought lots of CASH!");{
    }
    int dice1=(int)(Math.random()*6+1);
    int dice2=(int)(Math.random()*6+1);
    int sum= dice1 + dice2;
    System.out.println("Roll: total = " +sum); 
    if (sum==2|| sum==3|| sum==12){
    System.out.println("Sorry with a " + sum + " You LOSE :("); }
    else if(sum==7 || sum==11) { 
    System.out.println("Woah!!! With a " + sum + " You WIN!!!!!!!"); } 
    else{ 
    if(sum==4 ||sum==5 ||sum==6 ||sum==8 ||sum==9 ||sum==10) 
    dice1=(int)(Math.random()*6+1);
    dice2=(int)(Math.random()*6+1);}
    int roll2 = dice1 + dice2;}
    System.out.print("You rolled "+roll2+"  ");{
    while (roll2 !=7){
    if (roll == roll2);{
    System.out.println("You Win !");
    break;
    }else{
        }
    }
}}

Ik weet niet zeker hoe ik de spellen moet weergeven die de gebruiker heeft gewonnen/verloren of hoe ik het programma de dobbelstenen opnieuw moet laten gooien als ze niet hebben gewonnen/verloren.


Antwoord 1, autoriteit 100%

U moet een while-lus gebruiken: de dobbelstenen worden keer op keer gegooid totdat de speler heeft gewonnen of verloren (dan beëindigt breakde while-lus).

while (true) {
    int dice1=(int)(Math.random()*6+1);
    int dice2=(int)(Math.random()*6+1);
    int sum = dice1 + dice2;
    System.out.println("Roll: total = " + sum); 
    if (sum==2 || sum==3 || sum==12) {
        System.out.println("Sorry with a " + sum + " You LOSE :(");
        break;
    } else if(sum==7 || sum==11) { 
        System.out.println("Woah!!! With a " + sum + " You WIN!!!!!!!");
        break; 
    }
    // If you wanted, you could wait here for the user to confirm (e.g. with a key press)
}

LEAVE A REPLY

Please enter your comment!
Please enter your name here

20 − seven =

Other episodes