Avatar billede end82 Nybegynder
10. marts 2009 - 22:19 Der er 8 kommentarer

Hjælp med en opgave!!!

Der skal laves spillet "Gæt hvilket tal jeg tænker på": Lav et program, der husker et tal fra 1 til 20, som brugeren skal gætte. Her er et forslag til dialogen med brugeren:

Gæt et tal: 8
Tallet jeg tænker på er højere.
Gæt et tal: 13
Tallet jeg tænker på er lavere.
Gæt et tal: 11
Det er det rigtige tal! Du brugte 3 forsøg.

Vink: Et tilfældigt tal mellem 1 og 20 kan fås med (int) (Math.random()*20 + 1)
Avatar billede arne_v Ekspert
10. marts 2009 - 22:24 #1
Hvad vil du have hjaelp til ?
Avatar billede end82 Nybegynder
10. marts 2009 - 22:26 #2
Jeg har selv prøvet at løse opgaven på følgende måde:

System.out.print("Gæt et tal: ");
       
        Scanner scan = new Scanner(System.in);
        int tal = scan.nextInt();
                       
            for(int i = 0; i<20; i++)
            {
            int tal2 = (int) (Math.random()*20+1);
            if(tal < tal2)
                System.out.println("Tællet jeg tænker på er højere!");
            else if(tal > tal2)
                System.out.println("Tællet jeg tænker på er lavere!");
            else
                System.out.println("Det er det rigtig tal!");
           
men det gav den rigtig output som vist i opgave beskrivelsen!
Avatar billede end82 Nybegynder
10. marts 2009 - 22:28 #3
altså det gav ikke den rigtig output...!!!
Avatar billede arne_v Ekspert
10. marts 2009 - 22:32 #4
Jeg vil tro at du skal have en do while loekke og ikke en for loekke.

Og prompt og indlaes af tal skal vel indeni loekken.
Avatar billede end82 Nybegynder
10. marts 2009 - 22:35 #5
Altså du mener:

System.out.print("Gæt et tal: ");
        Scanner scan = new Scanner(System.in);
        int tal = scan.nextInt();
                           
            do
            {
           
            int tal2 = (int) (Math.random()*20+1);
            if(tal < tal2)
                System.out.println("Tællet jeg tænker på er højere!");
            else if(tal > tal2)
                System.out.println("Tællet jeg tænker på er lavere!");
            else
                System.out.println("Det er det rigtig tal!");
           
           
            }
            while(tal > 0);

????
Avatar billede arne_v Ekspert
11. marts 2009 - 01:33 #6
Ikke helt.

Slutbetingelsen er vel tal==tal2.

Og du skal stadigvæk have prompt og indlæsningen ind i løkken.
Avatar billede tuidoi Nybegynder
11. marts 2009 - 14:36 #7
Her er et det simpelt:

import java.util.Random;
import java.util.Scanner;

public class gaetTal {
   
    public gaetTal() {
       
        Scanner input = new Scanner(System.in);
        Random temp = new Random();
        int tal = temp.nextInt(19)+1;
        int forsoeg = 0;
        System.out.println("Gæt tallet mellem 1 og 20");
       
        while(true) {
            int gaet = input.nextInt();
            forsoeg++;
            if (gaet==tal) {
                System.out.println("Tillykke det var rigtigt");
                break;
            } else if (gaet < tal) {
                System.out.println("Tallet er højere - prøv igen!");
            } else {
                System.out.println("Tallet er lavere - prøv igen!");
            }
        }
        System.out.println("Du gættede det i "+forsoeg+".forsøg");
    }
   
    public static void main(String[] args) {
        new gaetTal();
    }
}
Avatar billede tuidoi Nybegynder
11. marts 2009 - 14:37 #8
du kan også bare også bare sætte betingelsen i din while til at være while(tal != tal2);
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