Avatar billede smackers Nybegynder
13. maj 2003 - 13:54 Der er 2 kommentarer og
3 løsninger

nybegynder compiler error

compiler error: cannot resolve symbol "shadowWord"

Hvad mangler for at variablerne i metoden InitGame kan bruges i begge metoder??

******* Hangman.java **********
public class Hangman
{
  public void InitGame(String enteredWord)
  {
      // Declare variables
      int mistakes = 0;
      final int mistakeLimit = 8;
      String gameMessage = "";
      String hiddenWord = enteredWord;
      String shadowWord = "";
      String availableLetters = "abcdefghijklmnopqrstuvwxyz";
      String wrongLetters = "";

      // Fill shadowWord with asterisk
      for (int i=0; i < hiddenWord.length(); i++)
      {
        shadowWord = shadowWord + "*";
      }
  }
 
  public void UpdateGame(char letter)
  {
      if (hiddenWord.indexOf(letter) > -1)
      { 
        System.out.println("shadowWord before: " + shadowWord);
        shadowWord = shadowWord.substring(0,hiddenWord.indexOf(letter) + letter + shadowWord.substring(hiddenWord.indexOf(letter)+1));
        System.out.println("shadowWord after: " + shadowWord);
      }
  }
 
}

****** HangmanTest.java ********************
import java.io.*;
public class HangmanTest
{
  public static void main(String[] args) throws IOException
  {
      BufferedReader keyboard = new
      BufferedReader(new InputStreamReader(System.in));

      System.out.print("Enter word to be guessed: ");
      String enteredWord = keyboard.readLine();

      Hangman playGame = new Hangman();
      playGame.InitGame(enteredWord);

      System.out.print("Enter letter: ");
      String enteredLetter = keyboard.readLine());

      playgame.UpdateGame(enteredLetter);           
  }
}
Avatar billede riversen Nybegynder
13. maj 2003 - 14:00 #1
de skal lægges ud som instansvariabler

altså erklæres uden for metoden
Avatar billede disky Nybegynder
13. maj 2003 - 14:01 #2
fly
    // Declare variables
      int mistakes = 0;
      final int mistakeLimit = 8;
      String gameMessage = "";
      String hiddenWord = enteredWord;
      String shadowWord = "";
      String availableLetters = "abcdefghijklmnopqrstuvwxyz";
      String wrongLetters = "";


så de står foran:
public void InitGame(String enteredWord)
  {
Avatar billede halden Nybegynder
13. maj 2003 - 14:02 #3
"shadowWord" skal bare være en klasse variable - dvs.:

public class Hangman
{
  String shadowWord="";

  public void InitGame(String enteredWord)
  {
      .
      //slet linien String shadowWord = "";
Avatar billede riversen Nybegynder
13. maj 2003 - 14:02 #4
disky: kniber vist lidt med enteredWord :-b
Avatar billede smackers Nybegynder
13. maj 2003 - 14:40 #5
Mange tak :)

//smackers
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester