2016-11-01 3 views
-4

У меня есть все методы, которые работают правильно, но я смущен тем, как напечатать количество оставшихся догадок и напечатать Hangman в моем основном методе. Мне нужно распечатать текущую Виселицу по телефону printHangman, но не знает, как назвать это без глазков счетчикаСпособы вызова для Hangman

public class Hangman2 
{ 

public static void main(String[] args) 
{ 
    System.out.println("Welcome to HangMan Player 1, Please enter a word. Player 2, Please close your eyes: "); 
    Scanner stdin = new Scanner(System.in); 

    String secretWord = stdin.next(); 

    for (int x = 1; x <= 100; x++) 
    { 
     System.out.println(" "); 
    } 

    System.out.println("Clearing Screen"); 

    System.out.println("The current partial word is: "); 
    String initialWord = createPartialWord(secretWord); 
    System.out.println(""); 
    System.out.println("The current hangman picture is: "); 




} 


    public static String createPartialWord(String secretWord) 
    { 
     String newsecretWord = ""; 
     int wordLength = secretWord.length(); 

     while (wordLength > 0) 
      { 
       newsecretWord = newsecretWord + "-"; 
       System.out.print("-"); 
       wordLength--; 
      } 
     return newsecretWord; 
    } 

    public static String replaceChar(String word, char c, int i) 
    { 

     if(0 < i && i < word.length()) 
     { 
      return word.substring(0, i) + c + word.substring(i + 1); 
     } 

     return word; 
    } 

    public static String updatePartialWord(String partial, String secret, char c) 
    { 
     for (int i = 0; i <= secret.length(); i++) 
     { 
      if (secret.charAt(i) == c) 
      { 

       return replaceChar(partial, c , i); 
      } 

     } 
     return partial; 


    } 

    public static void printHangman(int guessLeft) 
    { 
     String HEAD = " "; 
     String BODY = " "; 
     String LEGS = " "; 
     String LEFTARM = " "; 
     String RIGHTARM = " "; 

     System.out.println("_____"); 
     System.out.println("| |"); 

     if (guessLeft < 6) 
     { 
      HEAD = "()"; 
     } 

     System.out.println("| " + HEAD); 
     if (guessLeft < 5) 
     { 
      BODY = "||"; 
     } 
     if (guessLeft < 4) 
     { 
      LEFTARM = "\\"; 
     } 
     if (guessLeft < 3) 
     { 
      RIGHTARM = "/"; 
     } 

     System.out.println("| " + LEFTARM + BODY + RIGHTARM); 
     if (guessLeft < 2) 
     { 
      LEGS = "/"; 
     } 
     if (guessLeft < 1) 
     { 
      LEGS += "\\"; 
     } 
     System.out.println("| " + LEGS); 
     System.out.println("|_____\n\n\n\n"); 
    } 


} 
+0

'' У меня есть все методы, которые работают правильно "- Как вы можете знать, что если вы не смогли на самом деле * вызвать * методы? '' Не знаю, как назвать это без счетчика ошибок '' - Точно так же вы вызываете какой-либо метод в Java. Если для этого метода требуется 'int', вам нужно дать ему' int'. Похоже, ваша игра должна отслеживать, сколько догадок пользователь пробовал (и, возможно, любую другую информацию об играемой игре). – David

+0

Другие методы работают, потому что я их назвал, я не смог вызвать 'printHangman', но знаю, что это работает, потому что код был предоставлен от профессора. И да, как я могу отслеживать догадки, испробованные в 'main()'? – MikeG

+0

Я на самом деле понял, как это назвать ... просто нужно отслеживать догадки – MikeG

ответ

0

Людей не собираются написать задание для вас на этом форуме, и обычно требуется, чтобы попытаться немного больше это просто сказать: «Я застрял». Это, как говорится, вот примерный план, чтобы получить мимо этой точки:

public static void main(String[] args) 
    { 
     System.out.println("Welcome to HangMan Player 1, Please enter a word. Player 2, Please close your eyes: "); 
     Scanner stdin = new Scanner(System.in); 

     String secretWord = stdin.next(); 

     int guessesLeft = /* Number of guesses at the start */; 
     String partialWord = createPartialWord(secretWord); 

     while (/* You have guesses remaining */) 
     { 
      for (int x = 1; x <= 100; x++) 
      { 
       System.out.println(" "); 
      } 

      System.out.println("Clearing Screen"); 

      System.out.println("The current partial word is: "); 
      System.out.println(partialWord); 
      System.out.println("The current hangman picture is: "); 

      printHangman(guessesLeft); 

      // TODO: Obtain the next letter from the user 
      // TODO: Update the partial word with the letter 
      // TODO: Make it such that you have one less guess remaining 
     } 
    } 

Кроме того, я уверен, что createPartialWord не должен иметь оператор печати внутри него.

Смежные вопросы