用于摇滚剪刀游戏Java

  • 本文关键字:游戏 Java 用于 java
  • 更新时间 :
  • 英文 :


我已经对Java感兴趣了大约2个月,因为我在网上完成了一些课程,我正在尝试为岩石剪刀创建游戏。我希望游戏能够使用for循环能够运行5次,尽管我在循环循环时遇到了困难。它不断宣布获胜者而不是重复比赛?

import java.util.Scanner;
import java.io.*;
public class Part2
{
    public static void main (String[]args)
    {
        Scanner scan = new Scanner(System.in);
        String userInput1 = " ";
        char player1Input;
        String userInput2 = " ";
        char player2Input;
        for(int i = 0; i < 5; i++) //Loop for game
        {
        System.out.println("Player 1: Please Enter e.g R for Rock:");
        System.out.println("R.Rock");
        System.out.println("P.Paper");
        System.out.println("S.Scissors");
        userInput1 = scan.next();
        player1Input = userInput1.charAt(0);

        System.out.println("Player 2: Please Enter e.g S for Scissors");
        System.out.println("R.Rock");
        System.out.println("P.Paper");
        System.out.println("S.Scissors");

        userInput2 = scan.next();
        player2Input = userInput2.charAt(0);
        }


        switch(player1Input)
        {
            case 'R':  System.out.println ("Player 1:Rock");
                switch(player2Input)
                {
                    case'R' : System.out.println("Player 2:Rock");
                    System.out.println("The Game Result is Draw");
                    break;
                    case'P' :System.out.println("Player 2:Paper");
                    System.out.println("The Game Result is: Player 2 Wins");
                    break;
                    case'S' :System.out.println("Player 2:Scissors");
                    System.out.println("The Game Result is: Player 1 Wins");
                    break;
                    default: System.out.println("Invalid Option");
                    break;
                }
            break;
            case 'P' : System.out.println ("Player 1:Paper");
                switch(player2Input)
                {
                    case'R' : System.out.println("Player 2:Rock");
                    System.out.println("The game result is: Player 1 Wins");
                    break;
                    case'P' :System.out.println("Player 2:Paper");
                    System.out.println("The game result is: Draw");
                    break;
                    case'S' :System.out.println("Player 2:Scissors");
                    System.out.println("The Game Result is: Player 2 Wins2");
                    break;
                    default: System.out.println("Invalid Option");
                    break;
                }
            break;
            case 'S' : System.out.println ("Player 1:Scissors");
                switch(player2Input)
                {
                    case'R' : System.out.println("Player 2:Rock");
                    System.out.println("The Game Result is: Player 2 Wins");
                    break;
                    case'P' :System.out.println("Player 2:Paper");
                    System.out.println("The game result is: Player 1 Wins");
                    break;
                    case'S' :System.out.println("Player 2:Scissors");
                    System.out.println ("The Game Result is: Draw");
                    break;
                    default: System.out.println("Invalid Option");
                    break;
                }
            break;
        }
    }
}

您的开关语句超出了循环执行的代码,将其移至线player2Input = userInput2.charAt(0);之后的点,它必须留在循环括号内。

开关语句超出了范围,这意味着程序不知道在哪里寻找它,并且出于所有意图和目的,该程序和循环是看不见的。如果在for循环之后移动括号之后,则将其运行正常。

您编写的Switch语句仅评估玩家的最后一个输入,因此需要将其移动到for loop中。

另外,当您声明变量时初始化您的变量总是很好的。

import java.util.Scanner;
public class Part2
{
    public static void main (String[]args)
    {
        Scanner scan = new Scanner(System.in);
        String userInput1 = "";
        char player1Input = ' ';
        String userInput2 = "";
        char player2Input = ' ';
        for(int i = 0; i < 5; i++) //Loop for game
        {
            System.out.println("Player 1: Please Enter e.g R for Rock:");
            System.out.println("R.Rock");
            System.out.println("P.Paper");
            System.out.println("S.Scissors");
            userInput1 = scan.next();
            player1Input = userInput1.charAt(0);

            System.out.println("Player 2: Please Enter e.g S for Scissors");
            System.out.println("R.Rock");
            System.out.println("P.Paper");
            System.out.println("S.Scissors");

            userInput2 = scan.next();
            player2Input = userInput2.charAt(0);
            switch(player1Input)
            {
                case 'R':  System.out.println ("Player 1:Rock");
                    switch(player2Input)
                    {
                        case'R' :
                            System.out.println("Player 2:Rock");
                            System.out.println("The Game Result is Draw");
                            break;
                        case'P' :
                            System.out.println("Player 2:Paper");
                            System.out.println("The Game Result is: Player 2 Wins");
                            break;
                        case'S' :
                            System.out.println("Player 2:Scissors");
                            System.out.println("The Game Result is: Player 1 Wins");
                            break;
                        default:
                            System.out.println("Invalid Option");
                            break;
                    }
                    break;
            case 'P' : System.out.println ("Player 1:Paper");
                switch(player2Input)
                {
                    case'R' :
                        System.out.println("Player 2:Rock");
                        System.out.println("The game result is: Player 1 Wins");
                        break;
                    case'P' :
                        System.out.println("Player 2:Paper");
                        System.out.println("The game result is: Draw");
                        break;
                    case'S' :
                        System.out.println("Player 2:Scissors");
                        System.out.println("The Game Result is: Player 2 Wins2");
                        break;
                    default:
                        System.out.println("Invalid Option");
                        break;
                }
                break;
            case 'S' : 
                System.out.println ("Player 1:Scissors");
                switch(player2Input)
                {
                    case'R' :
                        System.out.println("Player 2:Rock");
                        System.out.println("The Game Result is: Player 2 Wins");
                        break;
                    case'P' :
                        System.out.println("Player 2:Paper");
                        System.out.println("The game result is: Player 1 Wins");
                        break;
                    case'S' :
                        System.out.println("Player 2:Scissors");
                        System.out.println ("The Game Result is: Draw");
                        break;
                    default:
                        System.out.println("Invalid Option");
                        break;
                }
                break;
            }
        }
    }
}

最新更新