10. december 2001 - 17:01Der er
11 kommentarer og 2 løsninger
Gæt et \"random-tal\" - program
Jeg forsøger at lave det gode gamle gæt-et-tal-program. Jeg er ikke interesseret i at vide hvor man evt. kan få programmet. Jeg er lige startet med java og mangler lige nu hvordan man \"genbruger\" kode.
EKS: Programmet spørger hvad dit gæt er, du indtaster gæt, programmet svarer at det er for lavt, programmet spørger hvad dit nye gæt er.....osv.... her skal programmet gå igen indtil gættet er korrekt. Jeg har lavet hele programmet. Behøver derfor kun hvordan jeg får den til noget lignende
Label 1 spørgsmål gæt forkert svar ---> goto 1
kan man dette i java???? Problemet er også at gættet som hentes fra tastaturet kun kan stå i main().
sådan ser den del af programmet ud, som på et eller andet punkt skal gentages. Jeg kan ikke gennemskue hvor jeg skal bruge do osv. Kan du gøre det mere præcist?
public static void main(String[] args) throws IOException { findRandom();
//Keyboard reading BufferedReader keyboard= new BufferedReader(new InputStreamReader(System.in));
//What is your guess written on screen System.out.println(\"What is your guess?\");
//indlæs det indtastede tal guess= Integer.parseInt(keyboard.readLine());
if (guess==number1) correct(); else checkNumber();
Det er dog ikke \'pæn\' Javakode. Istedet bør du lave en klasse f.eks GætTal(), der kører loop\'et. I den klasse kan du lave metoder til at indlæse en integer fra tastaturet og til at afgøre om tallet er <, = eller større end dit random tal. Det giver mere overskuelig kode.
Ok. Jeg er desværre stadig ikke med. Her kommer hele programmet som det ser ud nu. Problemet er som sagt stadig at jeg skal have programmet til at spørge og vurdere éns gæt indtil man gætter rigtigt:
import java.io.*;
class Guess //Finds the random number, //askes you to guess and //tells you more, less og CORRECT! {
//variables private static int guess; private static double number; private static long number1;
public static void findRandom() { //random number is found betwenn 0 and 100 if (number1>0) checkNumber(); number= 100*Math.random(); number1= Math.round(number);
}
public static void checkNumber() { //Checks if the guess is correct and writes //a message on screen if (guess>number1) System.out.println(\"Less...\"); if (guess<number1) System.out.println(\"More...\"); System.out.println(); System.out.println(\"New guess?\"); }
public static void correct() { System.out.println(\"Correkt!\"); System.exit(0); }
public static void newGuess() {
}
public static void main(String[] args) throws IOException { findRandom();
//Keyboard reading BufferedReader keyboard= new BufferedReader(new InputStreamReader(System.in));
//Name of the program System.out.println(\"***TSO GuessAnumbeR***\"); System.out.println();
//What is your guess written on screen System.out.println(\"What is your guess?\");
//indlæs det indtastede tal guess= Integer.parseInt(keyboard.readLine());
if (guess==number1) correct(); else checkNumber();
class Guess //Finds the random number, //askes you to guess and //tells you more, less og CORRECT! {
//variables private static int guess; private static double number; private static long number1;
public static void findRandom() { //random number is found betwenn 0 and 100 if (number1>0) checkNumber(); number= 100*Math.random(); number1= Math.round(number);
}
public static void checkNumber() { //Checks if the guess is correct and writes //a message on screen if (guess>number1) System.out.println(\"Less...\"); if (guess<number1) System.out.println(\"More...\"); System.out.println(); System.out.println(\"New guess?\"); }
public static void correct() { System.out.println(\"Correkt!\"); System.exit(0); }
Desuden har jeg ikke ændret noget, der berører indlæsningen. Beklager i øvrigt de mystiske indrykninger. Tabulator og copy/paste giver sommetider lidt underlige resultater.
Ok. Jeg undskylder mange gange og giver straks velfortjente point til greybeard. Jeg (rødmer) var ikke klar over at \"Num Lock\" også skulle være slået til i Dos-mode. Nu virker programmet. Mange tak for hjælpen.
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.