Java 石头、布、剪刀游戏不正确记分

Java 石头、布、剪刀游戏不正确记分,java,Java,我的石头、布、剪刀游戏有问题。当我玩游戏时,它会将赢或输记录为赢和输。我正在努力让它记录一场胜利和一场失败,而不是给胜利和失败加一分。有什么建议吗 import java.io.*; public class RPS { static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); static int x; public static void main(String

我的石头、布、剪刀游戏有问题。当我玩游戏时,它会将赢或输记录为赢和输。我正在努力让它记录一场胜利和一场失败,而不是给胜利和失败加一分。有什么建议吗

import java.io.*;

public class RPS {
    static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    static int x;

    public static void main(String[] args) throws IOException {

        int choice;
        do {
            System.out.println("Game Menu");
            System.out.println("---------------------------------------------");
            System.out.println("1. Start Game");
            System.out.println("2. Quit Program");

            choice = Integer.valueOf(in.readLine()).intValue();

            if(choice == 1) {
                System.out.println("Welcome to Rock, Paper, Scissors");
                System.out.println("---------------------------------------------");
                System.out.println("Please enter Rock, Paper or Scissors to play");

            int wins = 0, loss = 0, ties = 0;
            String user = in.readLine();
            String comp="";
            int compc=(int)(3*Math.random())+1;

            if (compc==1) {
                comp="Rock";
            }
            else if (compc==2) {
                comp="Paper";
            }
            else if (compc==3) {
                comp="Scissors";
            }

            if (user.equals("Rock") || user.equals("rock")) {
                System.out.println("You chose : Rock");
                user = "Rock";
            }
            else if (user.equals("Paper") || user.equals("paper")) {
                System.out.println("You chose : Paper");
                user = "Paper";
            }
            else if (user.equals("Scissors")|| user.equals("scissors")) {
                System.out.println("You chose : Scissors");
                user = "Scissors";
            }
            else {
                System.out.println("Error: Please type Rock, Paper or Scissors");
            }
            System.out.println("Computer: I chose " + comp);
            if(user.equals(comp)) {
                System.out.println("It's a tie!");
                ties++;
            }
            else if (user.equals("Rock")) {

                if (comp.equals("Scissors"))
                    System.out.println("Rock beats scissors, congrats you win!");
                wins++;

                 if (comp.equals("Paper"))
                     System.out.println("Paper beats rock, sorry you lost!");
                loss++;


            }
            else if (user.equals("Paper")) {

                if (comp.equals("Rock"))
                    System.out.println("Paper beats rock, congrats you win!");
                    wins++;

                 if (comp.equals("Scissors"))
                    System.out.println("Scissors beats paper, sorry you lost!");
                    loss++;         
            }
            else if (user.equals("Scissors")) {

                if (comp.equals("Paper"))
                    System.out.println("Scissors beats paper, congrats you win!");
                    wins++;
                 if (comp.equals("Rock"))
                    System.out.println("Rock beats scissors, sorry you lost!");
                    loss++;     
            }
            System.out.println("Total wins : " +wins);
            System.out.println("Total losses : " +loss);
            System.out.println("Total ties : " +ties);
            }
            if (choice == 2) {
                System.out.println("Good-bye!");
                in.close();
            }
        } while (choice !=2); 
    }
}

在缩进的条件代码周围需要大括号:
{}
。与Python等语言不同,Java中的缩进没有语义意义

比如说

if (comp.equals("Rock"))
    System.out.println("Paper beats rock, congrats you win!");
    wins++;
同:

if (comp.equals("Rock")) {
    System.out.println("Paper beats rock, congrats you win!");
}
wins++;
i、 e.
wins
无条件递增

尝试:


在缩进的条件代码周围需要大括号:
{}
。与Python等语言不同,Java中的缩进没有语义意义

比如说

if (comp.equals("Rock"))
    System.out.println("Paper beats rock, congrats you win!");
    wins++;
同:

if (comp.equals("Rock")) {
    System.out.println("Paper beats rock, congrats you win!");
}
wins++;
i、 e.
wins
无条件递增

尝试:

wins++
loss++
不是
if
语句的一部分,因此每次都会执行


wins++
loss++
不属于
if
语句的一部分,因此每次都会被执行。

查看win++和loss++-无论结果如何,它们都会被自动调用。。。您需要将代码放入if语句中。。。java中的if语句将自动包含下一行,但不在第一行之后,因此您需要执行以下操作:

if(condition to be met){
System.out.println("BLAH");
win++
}
我养成了一个习惯,总是包括花括号,除非我有空间问题。我发现它更容易阅读


新手犯的错误——作为一名刚毕业的工商管理学院毕业生——你会犯很多错误的——相信我。继续往前走。祝你好运

看看赢家++和输家++-不管结果如何,他们都会被自动调用。。。您需要将代码放入if语句中。。。java中的if语句将自动包含下一行,但不在第一行之后,因此您需要执行以下操作:

if(condition to be met){
System.out.println("BLAH");
win++
}
我养成了一个习惯,总是包括花括号,除非我有空间问题。我发现它更容易阅读

新手犯的错误——作为一名刚毕业的工商管理学院毕业生——你会犯很多错误的——相信我。继续往前走。祝你好运