2017-04-02 85 views
-1

請幫助我,我需要知道如何結束這個循環三次。但是,如果你知道,請告訴我,我一直在日夜工作。並且可以將代碼與大家(星球大戰)Java hangman end loop

System.out.println("If you want to leave, type \"quit\""); 
System.out.println("If you want to play again,type\"yes\" "); 

Scanner input = new Scanner(System.in); 
String s=input.next(); 
if(s.equals("quit")) { 
    System.out.println("Thanks for playing the game!"); 
    System.exit(0); 
} 
if (s.equals("yes")) {  
    String userInput = input.nextLine(); 
    userInput = userInput.toUpperCase(); 
    startGame(); 

下面是完整的代碼:

import static Hello.Hangman.startGame; 

import java.util.Scanner; 
import java.util.Arrays; 

public class Hangman { 
    public static void main(String[] args) { 
     Hangman game = new Hangman(); 
     Hangman.startGame(); 
    } 


    public static void startGame() { 
     Scanner Input = new Scanner(System.in); 
     String first, reverse = ""; 
     String second, reverse2 = ""; 
     Scanner in = new Scanner(System.in); 

     System.out.println("Welcome to Hangman!"); 
     System.out.println("Enter your first name."); 
     first = in.nextLine(); 
     System.out.println("Enter your last name to play."); 
     second = in.nextLine(); 

     int length = first.length(); 
     int length2 = second.length(); 
     for (int i = length - 1; i >= 0; i--) 
      reverse = reverse + first.charAt(i); 
     reverse = reverse.substring(0, 1).toUpperCase()++ reverse.substring(1).toLowerCase(); 
     for (int i = length2 - 1; i >= 0; i--) 
      reverse2 = reverse2 + second.charAt(i); 
     reverse2 = reverse2.substring(0, 1).toUpperCase() + reverse2.substring(1).toLowerCase(); 

     System.out.println("Your name entered in reverse is: " + reverse + " " + reverse2); 
     System.out.println("Press enter to continue:"); 
     in.nextLine(); 

     String[] CollectionOfWords = 
       {"", "world", "about", "again", "heart", "pizza", 
         "earth", "stars", "light", "music", "party", 
         "seven", "three", "happy", "water", "amber", 
         "apple", "piano", "green", "mouth", "suger", 
         "stone", "japan", "china", "after", "smile", 
         "south", "house", "stake", "guess", "wrong", 
         "thing", "write", "white", "black", "lemon", 
         "anime", "stick", "outer", "input", "grand", 
         "lives", "twice", "print", "hangs", "woman", 
         "power", "today", "india", "night", "candy", 
         "puppy", "latin", "vegan", "phone", "april", 
         "forum", "birth", "other", "chris", "irish", 
         "paste", "queen", "grace", "crazy", "plant", 
         "knife", "spike", "darth", "vader", "eagle", 
         "egypt", "range", "fists", "fight", "glory", 
         "March", "smart", "magic", "codes", "rolls", 
         "match", "honor", "glass", "board", "teams", 
         "bully", "zebra", "under", "mango", "brain", 
         "dirty", "eight", "zeros", "train", "cycle", 
         "break", "necks", "terms", "slide", "large"}; 


     int randNumber = (int) Math.ceil(Math.random() * CollectionOfWords.length); 
     int counter = 5; 
     String radmWord = CollectionOfWords[randNumber]; 

     char[] genRadmLetter = radmWord.toCharArray(); 
     char[] genRadmLetter2 = radmWord.toCharArray(); 
     for (int x = 0; x < genRadmLetter.length; x++) { 
      genRadmLetter[x] = '-'; 
     } 

     System.out.println(String.valueOf(genRadmLetter)); 
     System.out.println("Hello" + " " + reverse + " " + reverse2 + " " + "guess a letter"); 
     char guessedLetter = Input.next().charAt(0); 
     int RW = radmWord.indexOf(guessedLetter); 

     if (RW >= 0) { 

      genRadmLetter[RW] = guessedLetter; 
      System.out.println(genRadmLetter); 

     } 

     if (RW == -1) { 
      System.out.println("Wrong letter, try again."); 
      counter = counter - 1; 
      System.out.println("Lives left: " + counter); 
     } 

     while (counter != 0) { 

      System.out.println("Guess a letter."); 
      guessedLetter = Input.next().charAt(0); 
      RW = radmWord.indexOf(guessedLetter); 

      if (RW >= 0) { 

       genRadmLetter[RW] = guessedLetter; 
       System.out.println(genRadmLetter); 


      } 

      if (RW == -1) { 
       System.out.println("Wrong letter, try again."); 
       counter = counter - 1; 
       System.out.println("Lives left: " + counter); 
      } 

      boolean result = Arrays.equals(genRadmLetter, genRadmLetter2); 
      if (result == true) { 

       return; 
      } 
      for (int i = 0; i < genRadmLetter.length; i++) { 
       if (radmWord.charAt(i) == guessedLetter) { 
        genRadmLetter[i] = guessedLetter; 
        result = true; 
       } 
      } 
      if (counter == 0) { 
       break; 
      } 

     } 

     if (counter == 0) { 
      System.out.println("You lost. The word was: " + radmWord); 
      playAgain(); 

      if (RW == 0) 
       System.out.println("Well done, you have guessed the word."); 
      System.out.println("Your final score is: " + counter); 


     } 
    } 

    public static boolean playAgain() { 

     while (true) { 

      System.out.println("If you want to leave, type \"quit\""); 
      System.out.println("If you want to play again,type\"yes\" "); 

      Scanner input = new Scanner(System.in); 
      String s = input.next(); 
      if (s.equals("quit")) { 
       System.out.println("Thanks for playing the game!"); 
       System.exit(0); 
      } 
      if (s.equals("yes")) { 

       String userInput = input.nextLine(); 
       userInput = userInput.toUpperCase(); 
       startGame(); 


      } else { 

      } 
     } 
    } 
} 
+1

*我需要知道如何結束這個循環三次*意味着?你想執行它3次? – Ravi

+0

是的,請幫助 –

+0

縮進非常重要它使我們能夠看到防止許多錯誤的代碼段的實際範圍。使用您的編輯器提供的工具並正確縮進您的代碼。 – Pshemo

回答

1

代替

while (true) { 

你可以有反

int count=0; 
while (count<3) { 
count++; 
+0

如何在我的代碼中實現「計數」? –

+0

是指?只需更換我指出的代碼 – Ravi

+0

謝謝Ravi獲得更好的通關。 –

0

你可以使用while while循環

 `int ch=0; 
     do{if (s.equals("yes")) { 
     String userInput = input.nextLine(); 
     userInput = userInput.toUpperCase(); 
     startGame();ch++; 
     }
 while(ch<3);`