2016-04-03 21 views
-1

編集:私はプログラムが動作するように修正し、ブラケットを追加しました。 しかし、別のエラーが発生しました。ユーザーがゲームに勝利したとき、私のコードは終了しません。私はそれを終了したいので、私を助けてください。ここでは以下の私のコードは次のとおりです。ゲームはJavaのロックペーパーはさみのゲームで終わらない

public void rockPaperScissors() 
{ 
System.out.println ("First one to 3 Points wins the battle!"); 
char again = 'y'; 
while (again == 'y'){ 
int rPoint = 0; 
int uPoint = 0; 
int game = 1; 
System.out.println ("\nLET THE BATTLE BEGIN!"); 

while (uPoint < 3 || rPoint < 3) { 
String user = uChoice(); 
System.out.println (user + ", I choose you!"); 
String rival = rChoice(); 
System.out.println ("Your rival has chosen " + rival + "!"); 
String win = winner (rival, user); 

if (win == "r") 
{ 
    rPoint++; 
    System.out.println ("\nYour rival has won the match."); 
} 

else if (win == "u") 
{ 
    uPoint++; 
    System.out.println ("\nYou have won the match!"); 
} 

else 
    System.out.println ("\nBoth Pokemon have fainted! It's a tie!"); 

System.out.println ("Points: You " + uPoint + " Rival: " + rPoint); 
if (uPoint == 3) { 
    System.out.println ("Congrats! You have beaten your rival!"); 
    break; 
    } 
else if (rPoint == 3) { 
    System.out.println ("Too bad! Your rival has beaten you!"); 
    again = IBIO.inputChar ("\nWant to try again? (y/n) "); 
    uPoint = 0; 
    rPoint = 0; 
    } 
} 
} 
} 


public boolean isValid (String c) 
{ 
if (c.equals ("Bulbasaur") || c.equals ("BULBASAUR") || c.equals ("bulbasaur") || c.equals ("B") || c.equals ("b") || c.equals ("Charmander") || c.equals ("CHARMANDER") || c.equals ("charmander") || c.equals ("c") || c.equals ("C") || c.equals ("CHARMANDER") || c.equals ("SQUIRTLE") || c.equals ("Squirtle") || c.equals ("squirtle") || c.equals ("s") || c.equals ("S")) 
return true; 
else 
return false; 
} 

public String uChoice() 
{ 
printSlow ("Pokemon: Bulbasaur, Charmander, Squirtle"); 
String c = IBIO.inputString ("Which Pokemon do you choose? "); 

while (!isValid (c)) 
{ 
System.out.println ("You don't have that Pokemon. Try again."); 
c = IBIO.inputString ("Which Pokemon do you choose? "); 
} 

if (c.equals ("Bulbasaur") || c.equals ("BULBASAUR") || c.equals ("bulbasaur") || c.equals ("b") || c.equals ("B")) 
return "Bulbasaur"; 
else if (c.equals ("Charmander") || c.equals ("CHARMANDER") || c.equals ("charmander") || c.equals ("c") || c.equals ("C")) 
return "Charmander"; 
else 
return "Squirtle"; 
} 

public String rChoice() 
{ 
int num = (int)(Math.random()*3) + 1; 

if (num == 1) 
    return "Bulbasaur"; 

else if (num == 2) 
    return "Charmander"; 

else 
    return "Squirtle"; 
} 

public String winner (String rival, String user) 
{ 
if ((rival == "Bulbasaur" && user == "Squirtle") || (rival == "Charmander" && user == "Bulbasaur") || (rival == "Squirtle" && user == "Charmander")) 
     return "r"; 
else if ((user == "Bulbasaur" && rival == "Squirtle") || (user == "Charmander" && rival == "Bulbasaur") || (user == "Squirtle" && rival == "Charmander")) 
     return "u"; 
else 
     return "b"; 
} 
+3

あなたのJavaファイルの途中に '}'がありません。私はこの種の間違いをマークして自動的に{}を生成するEclipseのような環境を使うことをお勧めします。 – Moshe9362

+3

あなたのコードを正しくインデントすると、@ Moshe9362に言及するエラーが表示されます。 – reduckted

答えて

2
public void rockPaperScissors() 
{... 
while (again == 'y') 
{ 
... 
} 
//HERE  
public boolean isValid (String c) 
{...} 

あなたは私の//コメントで}が欠落しています。

+0

ayyyyyy thanksssss:D – lkjhgfdsa4321

+0

ちょうど注意:バックスラッシュはスラッシュであるはずですか? :) – TechnoCF

+0

@TechnoCF修正、ありがとう...私はdislexycを感じる。 – Laurel

関連する問題