Počítáme, kolikrát se zobrazí číslo pomocí generátoru náhodných čísel. Java

0

Otázka

V tomto kódu píšu zde uživatel zadá, zda nebo ne oni chtěli, aby si vybrat panna nebo orel v coinflip hry. Ráda bych, aby přehled o tom, kolikrát hlavy se objeví nebo orel objeví a výstup pokaždé, když změní. Po hodinách se snaží a hledá nemůžu přijít na to naše perfektně, takže kdyby někdo mohl, dejte mi vědět, co bych mohl využít, dejte mi vědět.

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

Můžete například přidat dvě pole v CoinToss třídy. Jako int hlavy a int ocasy. Inicializovat je s 0 v startGame() metoda. Pak, v tosscoin() metoda:

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

Můžete si přístup k těmto pole v startGame() metoda, a dělat, co chcete s nimi.

Mohli byste stejně definovat tyto dvě proměnné přímo v startGame() metoda a přírůstek je v závislosti na typu Mince, které dostanete od tosscoin() metoda.

2021-11-23 22:12:10

Děkuji!!! to mě právě na správné cestě, a dal mi to jako dobrý nápad na to, co jsem potřeboval udělat
Dominic Salinas
1

Níže uvedený kód by měl fungovat. pokaždé, když se to hodí, to ukládá aktuální hodnota v proměnné a porovnává ji příště s přehazovat hodnoty.


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

Díky moc, byl jsem na správné cestě, ale ne dokonale, to bylo perfektní vedení.
Dominic Salinas

V jiných jazycích

Tato stránka je v jiných jazycích

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