2013-02-13 62 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