home *** CD-ROM | disk | FTP | other *** search
/ Java by Example / jbecd.bin / JBE-CD / NTUsers / JBECODE.ZIP / JavaByExample / chap12 / GuessApplet.java < prev    next >
Text File  |  1996-02-13  |  2KB  |  91 lines

  1. import java.awt.*;
  2. import java.applet.*;
  3. import java.lang.Math;
  4.  
  5. public class GuessApplet extends Applet
  6. {
  7.     ///////////////////////////////////////
  8.     // Data fields.
  9.     ///////////////////////////////////////
  10.     TextField textField1;
  11.     int guesses;
  12.     int number;
  13.  
  14.     ////////////////////////////////////////
  15.     // Overridden methods.
  16.     ////////////////////////////////////////
  17.     public void init()
  18.     {
  19.         textField1 = new TextField(10);
  20.         add(textField1);
  21.         textField1.setText("50");
  22.         guesses = 0;
  23.         number = CreateNumber();
  24.     }
  25.  
  26.     public void paint(Graphics g)
  27.     {
  28.         DrawInstructions(g);
  29.         int guess = GetGuess();
  30.         ShowMessage(g, guess);
  31.     }
  32.  
  33.     public boolean action(Event event, Object arg)
  34.     {
  35.         ++guesses;
  36.         repaint();
  37.         return true;
  38.     }
  39.  
  40.     ////////////////////////////////////////
  41.     // Private methods.
  42.     ////////////////////////////////////////
  43.     void DrawInstructions(Graphics g)
  44.     {
  45.         g.drawString("Try to guess the number I am", 48, 65);
  46.         g.drawString("thinking of. The number will be", 48, 80);
  47.         g.drawString("between 0 and 100. You have an", 48, 95);
  48.         g.drawString("unlimited number of tries.", 48, 110);
  49.         g.drawString("Good Luck.", 95, 140);
  50.     }
  51.  
  52.     int GetGuess()
  53.     {
  54.         String s = textField1.getText();
  55.         int num = Integer.parseInt(s);
  56.         return num;
  57.     }
  58.  
  59.     int CreateNumber()
  60.     {
  61.         float n = (float)Math.random();
  62.         number = (int)(n * 100 + 1);
  63.         return number;
  64.     }
  65.  
  66.     void ShowMessage(Graphics g, int guess)
  67.     {
  68.         String s = "Guesses so far: ";
  69.         s += String.valueOf(guesses);
  70.         g.drawString(s, 80, 170);
  71.  
  72.         if (guess < number)
  73.             g.drawString("Your guess is too low.", 70, 185);
  74.         else if (guess > number)
  75.             g.drawString("Your guess is too high.", 70, 185);
  76.         else
  77.         {
  78.             g.drawString("You guessed the number!", 65, 185);
  79.             g.drawString("But I just picked a new one.", 65, 200);
  80.             StartNewGame();
  81.         }
  82.     }
  83.  
  84.     void StartNewGame()
  85.     {
  86.         number = CreateNumber();
  87.         textField1.setText("50");
  88.         guesses = 0;
  89.     }
  90. }
  91.