2013-03-29 3 views
0

그래서 나는 무엇을 해야하는지 사용자가 문자를 입력하고 프로그램이 문자가 단어의 일부인지 확인하기 위해 거기에서부터 내가 원하는 코드를 찾아 낼 수 없다. 문자 중 하나를 heres 내가 지금까지교수형 집행 인 게임에서 문자를 드러내는 것

do {    
      System.out.println("Word: " + secretWord.getWordMask()); 
      //System.out.print("Guesses: " + guesses); 
      System.out.print("Enter your guess: "); 
      Scanner keyboard = new Scanner(System.in); 
      String guess = keyboard.next(); 


      WordHider revealChar = new WordHider(); 
      System.out.println(revealChar.revealLetter(guess)); 

      //if (secretWord.revealLetter(guess));    

    } while (secretWord.isHiddenWordFound()); 

가지고있는 그 자체를 공개하기 위해 사용이 내가 그것을 메서드를 호출하고 구현하는 방법을 파악해야하는 내가 주어진 클래스의 다른 부분입니다하기 그것은

public int revealLetter(String letter) { 
    int count = 0; 
    String newFoundWord = ""; 
    if (letter.length() == 1) { 
     for (int i = 0; i < secretWord.length(); i++) { 
      if ((secretWord.charAt(i) == letter.charAt(0)) 
        && (wordMask.charAt(i) == HIDE_CHAR.charAt(0))) { 
       count++; 
       newFoundWord += letter; 
      } 
      else { 
       newFoundWord += wordMask.charAt(i); 
      } 
     } 
    } 
    wordMask = newFoundWord; 
    return count; 

내 주요 문제는 내가이 첫 번째 섹션의 권리 그게해야 할 일은 내가 보낸 편지이지만 분명히 옳지 않은 아이디어일까요?

+0

StringBuilder 내를 사용하여, 그것은 defnitely 일 감사 – MadProgrammer

답변

1

단어 마스크 대신 개수를 표시하고있는 것처럼 보입니다. 당신은 문자열에 revealLetter의 리턴 타입을 변경하고 wordMask을 반환하거나, 그 옵션이 아니라면, 이런 일에 DO-동안의 코드를 변경할 수 있습니다 :

revealChar.revealLetter(guess); 
System.out.println(revealChar.getWordMask()) 
+0

주어진 인덱스에 문자를 대체 할 수 있습니다. 하지만 코드가 정확히 무엇인지 설명해 주시겠습니까? – tawnpawt

0

귀하의 전체 프로그램은 부부로 대체 될 수있다 당신의 추측 루프 내부에 그런

String guessedLetters =""; 

: 라인의

guessedLetters += guess; 
String display = secretWord.replaceAll("[^" + guessedLetters + "]", "_"); 
관련 문제