Note that there are some explanatory texts on larger screens.

plurals
  1. POApplet not running: Stanford Engineering Everywhere Hangman
    primarykey
    data
    text
    <p>I've written working on a java applet, which seems to be opening sun.applet.AppletViewer when it is running. I'm using the acm libraries for the Stanford Engineering Everywhere Hangman assignment. The problem I'm having doesn't seem to be with the code, unless I've not done some implementation I should've. Basicly Applet Viewer is hanging just saying "starting applet..." and the program isn't running. I've not encountered this problem before, so I figured I'ld ask here in case anyone has encountered a problem like this before. I guess it might be the default exception case that is getting thrown, but I'm not getting an error message so I doubt it.</p> <p>I think the code should be working, but I'll post it in case there is something obvious I've left out at this point. I'm not quite finished with the assignment, but I'm fairly confident it would work if I wasn't having this problem.</p> <p>Hangman.java</p> <pre><code>import acm.graphics.*; import acm.program.*; import acm.util.*; import java.awt.*; import java.io.*; public class Hangman extends ConsoleProgram { //private static final int NUM_GUESSES=8; /*new instance of HangmanLexicon.java */ private HangmanLexicon hangLex; private HangmanCanvas canvas; /*new random generator to get indexes of words in hangLex*/ //private RandomGenerator rgen = RandomGenerator.getInstance(); /*Stores word that use is trying to guess*/ private String hidden=""; /*Displayed version of hidden*/ private String displayHidden = ""; /*prompt for player to enter their guess, which gets stored * as a string*/ private String guess = readLine("Your guess: "); /*counts down until user has no more guesses*/ private int guessCounter = 8; private String repeat = readLine("Play again? (y or n): "); public void init() { canvas = new HangmanCanvas(); add(canvas); } /*Runs through program, acts as main*/ public void run() { /* You fill this in */ println("Welcome to the Hangman program!"); while(true) { setUpWord(); displayWord(); guessesLeft(); guess = readLine("Your guess: "); println(guess); checkGuess(); if(displayHidden.equals(hidden)) { println("You guessed the word: " + hidden); println("You win."); println(repeat); if(!repeat.equals("n")) { guessCounter=8; canvas.reset(); }else { break; } } else if (guessCounter==0) { println("The word was: " + hidden); println("You lose."); println(repeat); if(!repeat.equals("n")) { guessCounter=8; canvas.reset(); }else { break; } } } } /*sets hidden to a random word in hangLex*/ private void setUpWord() { hangLex = new HangmanLexicon(); hidden=hidden.concat(hangLex.getWord(8)); } /*Prints the updated version of the known word after a guess is entered*/ private void displayWord() { if (displayHidden.equals("")) { for (int i= 0; i&lt;hidden.length(); i++) { displayHidden = displayHidden.concat("-"); } println("The word now looks like this: " + displayHidden); } else if(guessCounter==0) { } else { println("The word now looks like this: " + displayHidden); } } /*prints updates on the number of guesses the user has left to console*/ private void guessesLeft() { if (guessCounter &gt; 1) { println("You have " + guessCounter + " guesses left."); } else if (guessCounter == 1) { println("You have only one guess left."); } else if (guessCounter == 0) { println("You're completely hung."); } } private void checkGuess() { int letterCounter =0; while (guess.length()&gt;1) { println("Guesses must be single characters."); println(guess); } char checkLetter = guess.charAt(0); guessCounter--; // if(Character.isLowerCase(checkLetter)) { Character.toUpperCase(checkLetter); } // for(int i=0; i&lt;hidden.length(); i++) { if(hidden.charAt(i) == checkLetter) { displayHidden = displayHidden.substring(0, i) + guess + displayHidden.substring(i+1); } else { letterCounter++; } } // if (letterCounter==hidden.length()) { println("There are no " + checkLetter + "'s in the word."); } else if (letterCounter!=hidden.length()) { println("That guess is correct."); } } } </code></pre> <p>HangmanLexicon.java</p> <pre><code>import acm.util.*; public class HangmanLexicon { /** Returns the number of words in the lexicon. */ public int getWordCount() { return 10; } /** Returns the word at the specified index. */ public String getWord(int index) { switch (index) { case 0: return "BUOY"; case 1: return "COMPUTER"; case 2: return "CONNOISSEUR"; case 3: return "DEHYDRATE"; case 4: return "FUZZY"; case 5: return "HUBBUB"; case 6: return "KEYHOLE"; case 7: return "QUAGMIRE"; case 8: return "SLITHER"; case 9: return "ZIRCON"; default: throw new ErrorException("getWord: Illegal index"); } }; } </code></pre> <p>I've not yet finished with the other file, but I don't thing that should be an issue of concern until I've got the applet thing sorted out.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload