摇滚剪刀,再玩一次?

时间:2014-10-25 16:54:03

标签: java

对于我的作业我应该制作程序摇滚剪刀,我认为我的主要问题是我无法让程序再次正确播放或让程序正确计算游戏分数请求帮助我'我疯了想试试这个吗?!

//Tayler Dorsey

import java.util.Random;

import java.util.Scanner;

public class PRS {

    static Scanner keyboard = new Scanner(System. in );

    public static void instructions() {
        System.out.println("This is the popular game of paper, rock, scissors. Enter your\nchoice by typing the word \"paper\", the word \"rock\" or the word\n\"scissors\". The computer will also make a choice from the three\noptions. After you have entered your choice, the winner of the\ngame will be determined according to the following rules:");
        System.out.println("Paper wraps rock (paper wins)\nRock breaks scissors (rock wins)\nScissors cuts paper (scissors wins)");
        System.out.println("If both you and the computer enter the same choice, then the game is tied.");
    }

    public static int playGame() {

        int ties = 0, wins = 0, losts = 0;

        String userchoice, computerchoice;

        System.out.println("Enter your choice: ");

        userchoice = keyboard.next();

        computerchoice = computerChoose();

        System.out.println("You entered: " + userchoice);

        System.out.println("Computer choose: " + computerchoice);

        if ((userchoice.equals("paper") && computerchoice.equals("paper")) || (userchoice.equals("rock") && computerchoice.equals("rock")) || (userchoice.equals("scissors") && computerchoice.equals("scissors"))) {
            System.out.println("IT'S A TIE!");
            ties++;
            return 3;
        } else if ((userchoice.equals("paper") && computerchoice.equals("rock")) || (userchoice.equals("rock") && computerchoice.equals("scissors")) || (userchoice.equals("scissors") && computerchoice.equals("paper"))) {
            System.out.println("YOU WIN!");
            wins++;
            return 1;
        } else {
            System.out.println("YOU LOSE!");
            losts++;
            return 2;
        }
    }

    public static String computerChoose() {
        Random generator = new Random();
        String[] answer = new String[3];
        answer[0] = "paper";
        answer[1] = "rock";
        answer[2] = "scissors";
        return answer[generator.nextInt(3)];
    }

    public static void main(String[] args) {
        String play;
        Scanner keyboard = new Scanner(System. in );
        System.out.println("The Game of Paper, Rock, Scissors");
        System.out.println("Do you need instructions (y or n)?");
        String help = keyboard.nextLine();
        if (help.equals("y")) instructions();

        int result = playGame();
        System.out.println("Play again (y or n)?");
        play = keyboard.nextLine();
        if (play.equals("y"));

        else {
            int count = 0, wins = 0, losts = 0, ties = 0;
            System.out.println("Games played: " + count);
            System.out.println("Wins for you: " + wins);
            System.out.println("Wins for me: " + losts);
            System.out.println("Tied games: " + ties);
        }
        do {} while (play == "y"); {
            playGame();
            int count = 0;
            count++;
        }
    }
}

3 个答案:

答案 0 :(得分:1)

这里有两个问题:

  1. 代码不在do-while循环中,在之后
  2. 应使用equals而不是==来检查字符串相等性。
  3. 所以:

    int count = 0;
    do { // Note the code inside the do-while block
        playGame();
        count++;
    } while (play.equals("y")); // Note the use of equals
    

答案 1 :(得分:0)

执行以下操作:

do {
        play = keyboard.nextLine();
        if (play.equals("y")){
}
        else {
            int count = 0, wins = 0, losts = 0, ties = 0;
            System.out.println("Games played: " + count);
            System.out.println("Wins for you: " + wins);
            System.out.println("Wins for me: " + losts);
            System.out.println("Tied games: " + ties);
        }
        } while (play.equals("y"));

答案 2 :(得分:0)

为了计算游戏分数,将这些变量设为全局。

public class PRS {

    static Scanner keyboard = new Scanner(System. in );
    int ties = 0, wins = 0, losts = 0;