2013-02-13 141 views
-4

我正在写岩石剪刀Java游戏。这里是代码:岩纸剪刀Java游戏

import java.util.Scanner; 
public class RPS { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     Scanner in = new Scanner(System.in); 
     String personPlay; //Player A -- "R", "P", or "S" 
     String secondUser; //Player B 
     Scanner scan = new Scanner(System.in); 
     System.out.println(" Player A enter R for Rock, P for Paper, S for Scissors: "); //Get player's play -- note that this is stored as a string 
     personPlay = scan.next(); 
     personPlay = personPlay.toUpperCase(); 
     System.out.println("Player B enter R for Rock, P for Paper, and S for Scissors"); 
     secondUser = scan.next(); 
     secondUser = secondUser.toUpperCase(); 


     if (personPlay.equals(secondUser)) { 
      System.out.println("It's a tie!"); 
     } else if (personPlay.equals("r")) { 
      if (secondUser.equals("s")) { 
       System.out.println("Rock beats scissors! You win!"); 
      } else if (secondUser.equals("p")) { 
       System.out.println("Paper eats Rock! You lose!"); 
      } else if (personPlay.equals("p")) { 
       if (secondUser.equals("s")) { 
        System.out.println("Scissors cut Paper, you lose!"); 
       } else if (secondUser.equals("r")) { 
        System.out.println("Paper covers rock, you win!!"); 
       } else if (personPlay.equals("s")) { 
        if (secondUser.equals("p")) { 
         System.out.println("Scissors beat paper, you win!"); 
        } 
       } else if (secondUser.equals("r")) { 
        System.out.println("Rock beats Scissors, you lose!"); 
       } 
      } 
     } 
    } 
} 

赢家是使用if-else块来确定的,但是我的if-else块似乎不工作。它只打印它的领带!是什么问题?

+0

我发誓我已经在过去的2天中看到过像十次那样的摇滚纸剪刀问题.... – 2013-02-13 19:23:38

+0

对不起,我是新来的Java。我们都必须从某个地方开始。 – user2066656 2013-02-13 19:25:46

+1

并不意味着您必须多次发布相同的问题。 – 2013-02-13 19:26:18

回答

1
personPlay = scan.next(); 
    personPlay = personPlay.tolowerCase(); 
    System.out.println("Player B enter R for Rock, P for Paper, and S for Scissors"); 
    secondUser = scan.next(); 
    secondUser = secondUser.toLowerCase(); 

您需要更改该代码,注意您正在查找小写字符串的if-else语句,并将其设置为大写字母。或者将大写字母更改为更低,因为我已经显示或更改您的if-else以查找大写字母

+2

同行评审或使用'equalsIgnoreCase()' – 2013-02-13 19:25:55

+1

正确,很多选项来解决这个问题。 – jzworkman 2013-02-13 19:26:28

+0

谢谢!我会看看它是否有效。 – user2066656 2013-02-13 19:28:25