Gissa Talet

Gissa talet är ett underhållande spel. Principen är enkel och programmet är såpass enkelt att skriva att det är mycket lämpligt som ett första program för den som vill lära sig programmera.

Något verkar vara fel. Programmet startade inte.

Här är en enkel version av spelet. Programmet är skrivet i programmeringsspråket Java. Följ instruktionerna nedan för att köra det.

  • Se till att du har Java installerat på din dator. Det som behövs är en JDK, och den kan man ladda hem gratis här: Java SE Development Kit
  • Kopiera programmet nedan till en text-redigerare. Typiska text-redigerare som brukar finnas på de flesta datorer är Anteckningar (notepad), GEdit, Emacs, eller liknande. Tänk på att ordbehandlingsprogram som Word och Open Office inte kommer att fungera om man inte ställer in dem på att spara som ren text.
  • Spara filen med namnet GissaTalet.java Det är jätteviktigt att filen heter precis så.
  • Starta ett terminalfönster och leta upp katalogen där du sparade programmet.
  • För att översätta programmet till en fil som datorn kan förstå, skriv: javac GissaTalet.java
  • För att starta programmet, skriv: java GissaTalet
import java.io.*;

public class GissaTalet
{
   private static int slumptal(int max)
   {
      return (int)(Math.random() * max);
   }

   private static int läsSvar()
   {
      byte[] tal = new byte[30];
      try { System.in.read(tal); } catch (IOException e) { }
      return Integer.parseInt(new String(tal).trim());
   }

   public static void main(String[] args)
   {
      int gissning;

      /**
       * Be datorn tänka på ett tal mellan noll och 100.
       * Siffran 100 nedan kan du ändra om du vill ha en annan övre gräns.
       */
      int tal = slumptal( 100 );

      /**
       * Ge lite startvärden för att det ska bli bra.
       * Prova att ändra antal och se vad som händer.
       */
      int antal = 0;

      do {
         System.out.print("Gissa ett tal: ");
         gissning = läsSvar();
         antal++; // Räkna upp antalet gissningar ett steg

         // Är gissningen större än talet?
         if (gissning > tal) {
            System.out.println("För högt!");
         }

         // Är gissningen mindre än talet?
         else if (gissning < tal) {
            System.out.println("För lågt!");
         }

         // Om gissningen varken är större eller mindre så måste den vara rätt!
         else {
            System.out.println("Rätt!!");
         }

         // Fortsätt tills dess att man gissat rätt.
         // Hur kan man göra om man bara vill tillåta tre gissningar?
      } while (gissning != tal);

      System.out.println("Du behövde " + antal + " gissningar.");
   }
}