2016-09-05 3 views
0

スコアを保つことではありません。私がゲームをするとき、それは勝利と損失の両方として勝敗を記録する。私はそれが勝利と損失を記録し、勝敗にポイントを追加しないようにしようとしています。助言がありますか? {}あなたのインデント条件付きコード周り:ロック、紙、はさみのゲームは、私は私の岩、紙、はさみのゲームとの問題を抱えている正しく

import java.io.*; 

public class RPS { 
    static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    static int x; 

    public static void main(String[] args) throws IOException { 

     int choice; 
     do { 
      System.out.println("Game Menu"); 
      System.out.println("---------------------------------------------"); 
      System.out.println("1. Start Game"); 
      System.out.println("2. Quit Program"); 

      choice = Integer.valueOf(in.readLine()).intValue(); 

      if(choice == 1) { 
       System.out.println("Welcome to Rock, Paper, Scissors"); 
       System.out.println("---------------------------------------------"); 
       System.out.println("Please enter Rock, Paper or Scissors to play"); 

      int wins = 0, loss = 0, ties = 0; 
      String user = in.readLine(); 
      String comp=""; 
      int compc=(int)(3*Math.random())+1; 

      if (compc==1) { 
       comp="Rock"; 
      } 
      else if (compc==2) { 
       comp="Paper"; 
      } 
      else if (compc==3) { 
       comp="Scissors"; 
      } 

      if (user.equals("Rock") || user.equals("rock")) { 
       System.out.println("You chose : Rock"); 
       user = "Rock"; 
      } 
      else if (user.equals("Paper") || user.equals("paper")) { 
       System.out.println("You chose : Paper"); 
       user = "Paper"; 
      } 
      else if (user.equals("Scissors")|| user.equals("scissors")) { 
       System.out.println("You chose : Scissors"); 
       user = "Scissors"; 
      } 
      else { 
       System.out.println("Error: Please type Rock, Paper or Scissors"); 
      } 
      System.out.println("Computer: I chose " + comp); 
      if(user.equals(comp)) { 
       System.out.println("It's a tie!"); 
       ties++; 
      } 
      else if (user.equals("Rock")) { 

       if (comp.equals("Scissors")) 
        System.out.println("Rock beats scissors, congrats you win!"); 
       wins++; 

       if (comp.equals("Paper")) 
        System.out.println("Paper beats rock, sorry you lost!"); 
       loss++; 


      } 
      else if (user.equals("Paper")) { 

       if (comp.equals("Rock")) 
        System.out.println("Paper beats rock, congrats you win!"); 
        wins++; 

       if (comp.equals("Scissors")) 
        System.out.println("Scissors beats paper, sorry you lost!"); 
        loss++;   
      } 
      else if (user.equals("Scissors")) { 

       if (comp.equals("Paper")) 
        System.out.println("Scissors beats paper, congrats you win!"); 
        wins++; 
       if (comp.equals("Rock")) 
        System.out.println("Rock beats scissors, sorry you lost!"); 
        loss++;  
      } 
      System.out.println("Total wins : " +wins); 
      System.out.println("Total losses : " +loss); 
      System.out.println("Total ties : " +ties); 
      } 
      if (choice == 2) { 
       System.out.println("Good-bye!"); 
       in.close(); 
      } 
     } while (choice !=2); 
    } 
} 

答えて

1

あなたが括弧を必要としています。 Pythonのような言語とは異なり、Javaの字下げは意味上の意味を持ちません。例えば

if (comp.equals("Rock")) 
    System.out.println("Paper beats rock, congrats you win!"); 
    wins++; 

は同じである:

if (comp.equals("Rock")) { 
    System.out.println("Paper beats rock, congrats you win!"); 
} 
wins++; 

すなわちwins無条件にインクリメントされます。

試してみてください。

if (comp.equals("Rock")) { 
    System.out.println("Paper beats rock, congrats you win!"); 
    wins++; 
} 
+0

完全に働いたおかげで –

0
if (comp.equals("Scissors")) 
    System.out.println("Rock beats scissors, congrats you win!"); 
wins++; 

if (comp.equals("Paper")) 
    System.out.println("Paper beats rock, sorry you lost!"); 
loss++; 

wins++loss++if文の一部ではなく、そうするたびに実行されます。

0

勝利を見++および損失++ - 彼らはJavaでのステートメントは、自動的に最初の行の後に次の行が含まれますがない場合...あなたが... if文の内側にコードを配置する必要があり、自動的に結果にかかわらず呼び出されますあなたがやりたいだろう:

if(condition to be met){ 
System.out.println("BLAH"); 
win++ 
} 

私はそれが私のスペースの問題がない限り、常に中括弧を含めるすることを習慣にしています。私はそれが読みやすくすることがわかります。

ルーキーミス - 最近コンプ科学の卒業生として - あなたがそれらの多くは私を信頼ようになります。ちょうど一緒に繋ぎ続ける。グッドラック

関連する問題