Garder un décompte du nombre de fois qu'un numéro s'affiche à l'aide d'un générateur de nombre aléatoire. Java

0

La question

Dans ce code que j'écris ici, les entrées de l'utilisateur s'il souhaite ou non de choisir à pile ou face dans un coinflip jeu. Je tiens à garder un décompte du nombre de fois où les chefs s'affiche ou de la queue semble et de sortie à chaque fois qu'il change. Après des heures à essayer de les rechercher et je ne peux pas le comprendre parfaitement, donc si quelqu'un pourrait me permettre de savoir ce que je pourrais utiliser laissez-moi savoir.

import java.util.Random;
import java.util.Scanner;

public class CoinToss {


    private enum Coin {
        Head, Tail
    }

    public static void main(String[] args) {
        CoinToss game = new CoinToss();
        game.startGame();


    }


    private void startGame() {
        Scanner scanner = new Scanner(System.in);
        Coin guess;

        while (true) {
            System.out.print("Enter your guess whether the coin will be heads or tails. Type 1 for heads, 2 for tails, or 3 to quit: ");
            String choice = scanner.nextLine();

            if (choice.equalsIgnoreCase("3")) {
                break;
            } else if (choice.equalsIgnoreCase("1")) {
                guess = Coin.Head;
            } else if (choice.equalsIgnoreCase("2")) {
                guess = Coin.Tail;
            } else {
                System.out.println("Please select either heads tails or quit.");
                continue;
            }

            Coin toss = tosscoin();

            if (guess == toss) {
                System.out.println("You guessed correctly!");
            } else {
                System.out.println("You guessed incorrectly");
            }
        }
        scanner.close();
    }


    private Coin tosscoin() {
        
        Random r = new Random();
        int sideup = r.nextInt(2);
        if (sideup == 1) {
            
            return Coin.Head;
        } else {
            return Coin.Tail;
        }


    }

}
for-loop java random
2021-11-23 21:40:18
2
1

Vous pouvez par exemple ajouter deux champs dans votre CoinToss classe. Comme int chefs et int queues. Les initialiser à 0 dans le startGame() méthode. Puis, dans la tosscoin() méthode:

 if (sideup == 1) {
    heads++;
    return Coin.Head;
} else {
    tails++;
    return Coin.Tail;
}

Vous pouvez accéder à ces champs dans le startGame() la méthode et faire ce que vous voulez avec eux.

Vous pouvez tout aussi bien définir ces deux variables directement dans le startGame() la méthode et l'incrément fonction du type de Pièces que vous pouvez obtenir à partir de la tosscoin() méthode.

2021-11-23 22:12:10

Merci!!!! ceci m'a mis à droite sur la bonne voie et m'a donné une bonne idée sur ce que je devais faire
Dominic Salinas
1

Ci-dessous le code devrait fonctionner. chaque fois qu'il lance, il stocke la valeur de courant dans une variable et la compare à la prochaine fois avec le tirage au sort de la valeur.


import java.util.Random;
import java.util.Scanner;

public class CoinToss {

    private static int headCounter;
    private static int tailCounter;
    private static int previousToss;

    private enum Coin {
        Head, Tail
    }

    public static void main(String[] args) {
        CoinToss game = new CoinToss();
        game.startGame();


    }


    private void startGame() {
        headCounter = 0;
        tailCounter = 0;
        previousToss = 0;
        Scanner scanner = new Scanner(System.in);
        Coin guess;

        while (true) {
            System.out.print("Enter your guess whether the coin will be heads or tails. Type 1 for heads, 2 for tails, or 3 to quit: ");
            String choice = scanner.nextLine();

            if (choice.equalsIgnoreCase("3")) {
                break;
            } else if (choice.equalsIgnoreCase("1")) {
                guess = Coin.Head;
            } else if (choice.equalsIgnoreCase("2")) {
                guess = Coin.Tail;
            } else {
                System.out.println("Please select either heads tails or quit.");
                continue;
            }

            Coin toss = tosscoin();

            if (guess == toss) {
                System.out.println("You guessed correctly!");
            } else {
                System.out.println("You guessed incorrectly");
            }
        }
        scanner.close();
    }


    private Coin tosscoin() {

        Random r = new Random();
        int sideup = r.nextInt(2);
        Coin currentGuess;

        if (sideup == 1) {
            headCounter++;
            currentGuess = Coin.Head;
        } else {
            tailCounter++;
            currentGuess = Coin.Tail;
        }
        checkIfFlipped(sideup);
        return currentGuess;

    }

    static void checkIfFlipped(int currentToss) {
        
        if (currentToss != previousToss) {
            
            if (currentToss == 0) {
                System.out.println("Coin fliped from head to tail");
            } else {
                System.out.println("Coin fliped from tail  to head");
            }
        }

        previousToss = currentToss;
    }
}
2021-11-23 23:48:20

Merci beaucoup, j'étais sur la bonne voie mais pas tout à fait là, ce fut une orientation parfaite.
Dominic Salinas

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................