Java: Rock Paper Scissors loop do jogo

Joe Castle:

Eu estou tentando obter este laço para o trabalho, mas não pode obtê-lo descoberto, tentou alguns tipos diferentes e não tive nenhuma sorte, volta passou por alguns dos meus estudos e picado em torno de tentar obter algumas dicas, mas não ter sido capaz de obtê-lo com sucesso ao trabalho. o código do programa base é como segue, basicamente, este era um projeto que eu fiz algumas semanas atrás, e um novo projeto nos quer voltar e tê-lo assim que o jogo desempenha continuamente até que o usuário insere um "3". Eu não posso descobrir isso, eu não consigo encontrar qualquer exemplos ou ajuda online. Eu não estou procurando alguém para apenas dar uma resposta, apenas procurando uma cutucada na direção certa.

TL; DR: o jogo deve repetir até que as entradas do usuário 3

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("scissor (0), rock (1), paper (2): ");
        int user = input.nextInt();

        int computer = (int) (Math.random() * 3);

        System.out.print("The Computer is ");
        switch (computer) {
            case 0:
                System.out.print("scissor. ");
                break;
            case 1:
                System.out.print("rock. ");
                break;
            case 2:
                System.out.print("paper. ");
        }
        System.out.print(" You are ");
        switch (user) {
            case 0:
                System.out.print("scissor");
                break;
            case 1:
                System.out.print("rock");
                break;
            case 2:
                System.out.print("paper");
        }

        if (computer == user) {
            System.out.println(" too.  It is a draw");
        } else {
            boolean win = (user == 0 && computer == 2)
                    || (user == 1 && computer == 0)
                    || (user == 2 && computer == 1);
            if (win) {
                System.out.println(". You won!");
            } else {
                System.out.println(". You lose!");
            }

        }
    }
}
Kit Ostrihon:

Você pode colocar todo o seu código em seu método principal em um loop infinito e sair do programa quando o usuário entradas 3 como esta.

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

    while(true) { //start of the loop

        Scanner input = new Scanner(System.in);

        //setting the variable to an incorrect value, 
        //so the text is printed always at least once
        int user = -1;

        //while the input is incorrect (lower than 0 or higher than 3)
        while(user < 0 || user > 3) {

            //ask for the input
            System.out.print("scissor (0), rock (1), paper (2), exit (3): ");

            //try reading an integer, as the user might input whatever (String, float,..)
            try {
                user = input.nextInt(); //trying to read an integer
            } catch (Exception e) { //in case of an invalid input (not an integer)
                //I still want to "read" the tokens, 
                //because the .nextInt() did not process the input
                input.next();
            }
            if (user == 3) System.exit(0);
        }

        //rest of your code

    } //end of the loop
}

Você pode ver, que eu usei trye catchpara verificar se há outras entradas do que um inteiro. Eu também repetir a pedir a entrada até que ele é válido. Você não pode necessariamente que se não faz parte de seu foco agora e trocá-lo apenas para o seguinte.

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

    while(true) { //start of the loop, loops forever unless the user inputs 3

        Scanner input = new Scanner(System.in);

        System.out.print("scissor (0), rock (1), paper (2): ");
        int user = input.nextInt(); //trying to read an integer
        if (user == 3) System.exit(0); //if the input is 3, exit the program

        //rest of your code

    } //end of the loop
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=367518&siteId=1
Recomendado
Clasificación