2017-12-06 10 views
0

Ich bin seit etwa 2 Monaten in Java interessiert, da ich einige Kurse online gemacht habe, versuche ich ein Spiel für Rock Paper Scissors zu erstellen. Ich möchte, dass das Spiel 5 mal laufen kann, indem ich die for-Schleife benutze, obwohl ich Schwierigkeiten habe, es zu loopen; es erklärt den Gewinner, anstatt das Spiel zu wiederholen?Verwenden von for-Schleife für Rock Paper Scissors Spiel Java

import java.util.Scanner; 
import java.io.*; 

public class Part2 
{ 

    public static void main (String[]args) 
    { 
     Scanner scan = new Scanner(System.in); 

     String userInput1 = " "; 
     char player1Input; 

     String userInput2 = " "; 
     char player2Input; 

     for(int i = 0; i < 5; i++) //Loop for game 
     { 

     System.out.println("Player 1: Please Enter e.g R for Rock:"); 
     System.out.println("R.Rock"); 
     System.out.println("P.Paper"); 
     System.out.println("S.Scissors"); 

     userInput1 = scan.next(); 
     player1Input = userInput1.charAt(0); 


     System.out.println("Player 2: Please Enter e.g S for Scissors"); 
     System.out.println("R.Rock"); 
     System.out.println("P.Paper"); 
     System.out.println("S.Scissors"); 



     userInput2 = scan.next(); 
     player2Input = userInput2.charAt(0); 

     } 





     switch(player1Input) 
     { 
      case 'R': System.out.println ("Player 1:Rock"); 

       switch(player2Input) 
       { 
        case'R' : System.out.println("Player 2:Rock"); 
        System.out.println("The Game Result is Draw"); 
        break; 
        case'P' :System.out.println("Player 2:Paper"); 
        System.out.println("The Game Result is: Player 2 Wins"); 
        break; 
        case'S' :System.out.println("Player 2:Scissors"); 
        System.out.println("The Game Result is: Player 1 Wins"); 
        break; 
        default: System.out.println("Invalid Option"); 
        break; 
       } 
      break; 

      case 'P' : System.out.println ("Player 1:Paper"); 
       switch(player2Input) 
       { 
        case'R' : System.out.println("Player 2:Rock"); 
        System.out.println("The game result is: Player 1 Wins"); 
        break; 
        case'P' :System.out.println("Player 2:Paper"); 
        System.out.println("The game result is: Draw"); 
        break; 
        case'S' :System.out.println("Player 2:Scissors"); 
        System.out.println("The Game Result is: Player 2 Wins2"); 
        break; 
        default: System.out.println("Invalid Option"); 
        break; 
       } 
      break; 

      case 'S' : System.out.println ("Player 1:Scissors"); 
       switch(player2Input) 
       { 
        case'R' : System.out.println("Player 2:Rock"); 
        System.out.println("The Game Result is: Player 2 Wins"); 
        break; 
        case'P' :System.out.println("Player 2:Paper"); 
        System.out.println("The game result is: Player 1 Wins"); 
        break; 
        case'S' :System.out.println("Player 2:Scissors"); 
        System.out.println ("The Game Result is: Draw"); 
        break; 
        default: System.out.println("Invalid Option"); 
        break; 
       } 
      break; 

     } 
    } 
} 

Antwort

0

Ihre switch-Anweisung ist der Code aus der Schleife ausgeführt, es auf den Punkt nach rechts bewegen, nachdem der Linie player2Input = userInput2.charAt(0);, muss es innerhalb der Schleife Klammern bleiben.

0

Die switch-Anweisung ist außerhalb des Gültigkeitsbereichs, was bedeutet, dass das Programm nicht weiß, wo es zu suchen ist und für alle Absichten und Zwecke ist es für das Programm und die Schleife unsichtbar. Wenn Sie die Klammer nach der for-Schleife nach der switch-Anweisung verschieben, sollte es gut laufen.

0

Die von Ihnen geschriebene switch-Anweisung wertet nur die letzte Eingabe von den Playern aus, daher muss sie in der for-Schleife verschoben werden.

Auch ist es immer gut, Ihre Variablen zu initialisieren, wenn Sie sie deklarieren.

import java.util.Scanner; 
public class Part2 
{ 
    public static void main (String[]args) 
    { 
     Scanner scan = new Scanner(System.in); 

     String userInput1 = ""; 
     char player1Input = ' '; 

     String userInput2 = ""; 
     char player2Input = ' '; 

     for(int i = 0; i < 5; i++) //Loop for game 
     { 
      System.out.println("Player 1: Please Enter e.g R for Rock:"); 
      System.out.println("R.Rock"); 
      System.out.println("P.Paper"); 
      System.out.println("S.Scissors"); 

      userInput1 = scan.next(); 
      player1Input = userInput1.charAt(0); 


      System.out.println("Player 2: Please Enter e.g S for Scissors"); 
      System.out.println("R.Rock"); 
      System.out.println("P.Paper"); 
      System.out.println("S.Scissors"); 



      userInput2 = scan.next(); 
      player2Input = userInput2.charAt(0); 

      switch(player1Input) 
      { 
       case 'R': System.out.println ("Player 1:Rock"); 
        switch(player2Input) 
        { 
         case'R' : 
          System.out.println("Player 2:Rock"); 
          System.out.println("The Game Result is Draw"); 
          break; 
         case'P' : 
          System.out.println("Player 2:Paper"); 
          System.out.println("The Game Result is: Player 2 Wins"); 
          break; 
         case'S' : 
          System.out.println("Player 2:Scissors"); 
          System.out.println("The Game Result is: Player 1 Wins"); 
          break; 
         default: 
          System.out.println("Invalid Option"); 
          break; 
        } 
        break; 

      case 'P' : System.out.println ("Player 1:Paper"); 
       switch(player2Input) 
       { 
        case'R' : 
         System.out.println("Player 2:Rock"); 
         System.out.println("The game result is: Player 1 Wins"); 
         break; 
        case'P' : 
         System.out.println("Player 2:Paper"); 
         System.out.println("The game result is: Draw"); 
         break; 
        case'S' : 
         System.out.println("Player 2:Scissors"); 
         System.out.println("The Game Result is: Player 2 Wins2"); 
         break; 
        default: 
         System.out.println("Invalid Option"); 
         break; 
       } 
       break; 

      case 'S' : 
       System.out.println ("Player 1:Scissors"); 
       switch(player2Input) 
       { 
        case'R' : 
         System.out.println("Player 2:Rock"); 
         System.out.println("The Game Result is: Player 2 Wins"); 
         break; 
        case'P' : 
         System.out.println("Player 2:Paper"); 
         System.out.println("The game result is: Player 1 Wins"); 
         break; 
        case'S' : 
         System.out.println("Player 2:Scissors"); 
         System.out.println ("The Game Result is: Draw"); 
         break; 
        default: 
         System.out.println("Invalid Option"); 
         break; 
       } 
       break; 
      } 
     } 
    } 
} 
Verwandte Themen