2016-11-14 34 views
0

我正在創建一個類似於紙剪刀石的代碼。Paper Scissors Rock not working

我建立了一個隨機數生成器,其允許計算機隨機生成1-5之間的數字,每個數字代表一個不同的字符(猴,機器人,海盜,忍者殭屍)

用戶被要求輸入一個介於1-5之間的數字,代碼用於比較用戶輸入和隨機生成的數字,並通知獲勝的用戶。

for ex。 1(猴子)跳動4(忍者);所以如果用戶選擇1,並且計算機隨機生成4,那麼「你贏了,猴子騙了忍者!」應該顯示。

由於某些原因,我的代碼只在我輸入1時顯示「Tie」,而對於我輸入的任何其他值,「您贏了,猴子拔出機器人」。

看來,隨機數發生器不能正常工作。

有人可以幫我解決這個問題嗎?

import java.util.Scanner; 
    import java.util.Random; 
    public class OkekpeJMoropinzee 
    { 
     public static void main(String[]args) 
     { 
      String playAgain; 
     do{ 
      int yourMove; 
      String compMove; 


      int compInt; 


      //String[] characters = {"Monkey","Robot","Pirate","Ninja","Zombie"}; 

      Scanner input = new Scanner(System.in); 
      Random rand = new Random(6); 

      compInt = rand.nextInt(5)+1; 

      if (compInt == 1) 
       compMove = "Monkey"; 
      else if (compInt == 2) 
       compMove = "Robot"; 
      else if (compInt == 3) 
       compMove = "Pirate"; 
      else if (compInt == 4) 
       compMove = "Ninja"; 
      else if (compInt == 5) 
       compMove = "Zombie"; 



      System.out.println("What do you choose?: "); 
      yourMove = input.nextInt(); 
      //MONKEY 
      if(yourMove == 1 || compInt == 1) 
       System.out.println("Tie"); 
      else if (yourMove== 1 || compInt == 2) 
       System.out.println("You Win! Monkey Unplugs Robot!"); 
      else if (yourMove== 1 || compInt == 3) 
       System.out.println("You Lose! Pirate Skewers Monkey!"); 
      else if (yourMove == 1 || compInt == 4) 
       System.out.println("You Win! Monkey fools Ninja!"); 
      else if (yourMove== 1 || compInt == 5) 
       System.out.println("You Lose! Zombie savages monkey!"); 
+0

由於您使用OR運算符只有第一,如果將得到調用休息,如果輸入是1永遠不會調用.. – Jobin

+0

您正在尋找&&運算符。 – Li357

回答

0

您在if語句中給出了一個OR運算符。

if(yourMove == 1 || compInt == 1) 

當您輸入1時,不管「compInt」值如何,第一個if條件都會通過。

您應該使用AND(& &)運算符。

 if(yourMove == 1 && compInt == 1) 
      System.out.println("Tie"); 
     else if (yourMove== 1 && compInt == 2) 
      System.out.println("You Win! Monkey Unplugs Robot!"); 
     else if (yourMove== 1 && compInt == 3) 
      System.out.println("You Lose! Pirate Skewers Monkey!"); 
     else if (yourMove == 1 && compInt == 4) 
      System.out.println("You Win! Monkey fools Ninja!"); 
     else if (yourMove== 1 && compInt == 5) 
      System.out.println("You Lose! Zombie savages monkey!"); 
相關問題