石头剪刀布简单的Java使用方法



所以我今天的任务是用方法制作一个石头剪刀布游戏。我对代码的第一个问题是,我需要它来询问用户是否要再次玩。 (y 或 n) 此外,我需要实现评分,如果用户赢了,则得 1 分,如果他们输了,则为 -1,并且每次他们再次玩时将该分数添加到总分中。关于如何实现这一点的任何想法?或者我需要对我的代码进行更改的内容。此外,我是一个菜鸟,非常抱歉丑陋的格式,并随时批评每一个小细节,我吸收了我所能吸收的所有信息。

 public static void main(String[] args){
 boolean tie = true;
    do{
        String computer = computerChoice();
        String user = userChoice();
        tie = (computer.compareTo(user) == 0);
        determineWinner(computer, user);
    }while(tie);
  }
  public static String computerChoice( ){
  Random rand = new Random();
 int cinput = rand.nextInt(3)+ 1;
  String computer = "thing";
  if (cinput == 1)
  computer = "Rock";
   if (cinput == 2)
  computer = "Paper";
 if (cinput == 3)
  computer = "Scissors";
    return computer;
  }
  public static String userChoice(){
  Scanner sc = new Scanner (System.in);
  String user = "default";
  do{
    System.out.println("choose your weapon(Paper,Scissors or Rock)");
    user = sc.nextLine();
  }
  while (isValidChoice (user) == false);
  return user;
  }
  public static boolean isValidChoice(String choice){
  boolean status;
  if (choice.compareTo("Rock")== 0)
    status = true;
  else if (choice.compareTo("Paper")== 0)
    status = true;
  else if (choice.compareTo("Scissors")== 0)
    status = true;
  else{
    status = false;
    System.out.println("Error! Make sure you are capitalizing your                    choices");
}
return status;
  }
  public static boolean determineWinner(String computer, String user){
  System.out.println (" Computer Choice: " + computer);
  System.out.println ("Your Choice : " + user);
  if (computer.compareTo( "Rock" ) == 0 && user.compareTo  ("Scissors") == 0)
  System.out.println (" Computer wins! Better luck next time!");
  if (computer.compareTo("Scissors")== 0 && user.compareTo("Paper") == 0)
  System.out.println (" Computer wins! Better luck next time!");
  if (computer.compareTo("Paper") == 0 && user.compareTo("Rock") == 0)
  System.out.println (" Computer wins! Better luck next time!");
   if (computer.compareTo("Rock") == 0 && user.compareTo("Paper") == 0)
   System.out.println (" You win!!");
  if (computer.compareTo("Scissors") == 0 && user.compareTo("Rock") == 0)
  System.out.println (" You win!!");
  if (computer.compareTo("Paper") == 0 && user.compareTo("Scissors") == 0)
  System.out.println (" You win!!");
  else if (computer.compareTo(user) == 0 ){
    System.out.println(" Tie! the game must be played again.");
    return false;
  }
  return true;
}
}

我的教授给我们举了一个例子的输出是:

Choose your weapon!
1. Paper
2. Scissors
3. Rock
5
 Choose your weapon!
 1. Paper
 2. Scissors
 3. Rock
  1
 You chose paper!
 I choose rock!
 I have been vanquished!
 We have matched wits 1 times, and your score is 1
 Do you want to play again (y or n)? y
 Choose your weapon!
 1. Paper
 2. Scissors
 3. Rock
 1
 You chose paper!
  I choose paper!
  We are equally matched. You are a worthy adversary.
  We have matched wits 2 times, and your score is 1
  Do you want to play again (y or n)? n

这是完成的代码。我添加了两个函数,一个用于调用实际游戏,另一个用于检查玩家是否想再次玩。另外,最后还有最后一句

import java.util.Random;
import java.util.Scanner;
public class RPC
{
    public static Scanner   sc          = new Scanner(System.in);
    public static int       score       = 0;
    public static int       gameCount   = 0;
    public static void main(String[] args)
    {
        play();
        while (playAgain())
        {
            play();
        }
    }
    public static void play()
    {
        String computer = computerChoice();
        String user = userChoice();
        determineWinner(computer, user);
    }
    public static String computerChoice()
    {
        Random rand = new Random();
        int cinput = rand.nextInt(3) + 1;
        String computer = "thing";
        if (cinput == 1)
            computer = "Rock";
        if (cinput == 2)
            computer = "Paper";
        if (cinput == 3)
            computer = "Scissors";
        return computer;
    }
    public static boolean playAgain()
    {
        System.out.println("Play again?(y/n)");
        String input = sc.nextLine();
        if (input.toLowerCase().equals("y"))
        {
            return true;
        } else if (input.toLowerCase().equals("n"))
        {
            return false;
        } else
        {
            System.out.println("Invalid Input");
            return playAgain();
        }
    }
    public static String userChoice()
    {
        String user = "default";
        do
        {
            System.out.println("choose your weapon(Paper,Scissors or Rock)");
            user = sc.nextLine();
        } while (!isValidChoice(user));
        return user;
    }
    public static boolean isValidChoice(String choice)
    {
        boolean status;
        if (choice.equals("Rock"))
            status = true;
        else if (choice.equals("Paper"))
            status = true;
        else if (choice.equals("Scissors"))
            status = true;
        else
        {
            status = false;
            System.out.println("Error! Make sure you are capitalizing your choices");
        }
        return status;
    }
    public static void determineWinner(String computer, String user)
    {
        gameCount++;
        System.out.println(" Computer Choice: " + computer);
        System.out.println("Your Choice : " + user);
        if (computer.equals("Rock") && user.equals("Scissors"))
        {
            score--;
            System.out.println(" Computer wins! Better luck next time!");
        }
        if (computer.equals("Scissors") && user.equals("Paper"))
        {
            score--;
            System.out.println(" Computer wins! Better luck next time!");
        }
        if (computer.equals("Paper") && user.equals("Rock"))
        {
            score--;
            System.out.println(" Computer wins! Better luck next time!");
        }
        if (computer.equals("Rock") && user.equals("Paper"))
        {
            score++;
            System.out.println(" You win!!");
        }
        if (computer.equals("Scissors") && user.equals("Rock"))
        {
            score++;
            System.out.println(" You win!!");
        }
        if (computer.equals("Paper") && user.equals("Scissors"))
        {
            score++;
            System.out.println(" You win!!");
        } else if (computer.equals(user))
        {
            System.out.println(" Tie! the game must be played again.");
        }
        System.out.println("We have matched wits" + gameCount + "times, and your score is" + score);
        return;
    }
}

最新更新