Java programmering HiLo
Jag är nybörjare inom programmering och försöker göra ett HiLo spel, det har gått bra hittills och jag sitter nu bara med två problem innan programmet är klart.
1) Texten : "Välj ett tal mellan 1- maxNumber" printas även efter att man har gissat rätt och "Grattis du har klarat det" skrivs ut. Är det för att det är en Do while loop som "Välj ett tal..." ligger i? Hur får jag den att stoppas så att det inte skrivs ut efter rätt gissning?
2) Jag vill att antalet gissningar skrivs ut på slutet men jag lyckas inte klura ut hur man gör det, handlar det om att man ska ha det inskrivet i Main och sen return i sista metoden? När jag skriver in:
("Antal gissningar:" + nrOfGuesses+); så får jag error om att värdet inte kan hittas, måste jag kanske skriva in värdet i den metoden? Eller kan det hämtas från tidigare metoder på något sätt/måste den skrivas i mainmetoden?
import java.util.Scanner;
public class HiLo {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Välkommen till HiLo!");
System.out.println("Vilken svårighetsgrad väljer du?");
System.out.println("1) Lätt: 0-10");
System.out.println("2) Mellan: 0-100");
System.out.println("3) Svår: 0-1000");
int choice = sc.nextInt();
if(choice == 1) {
playGame(10);
System.out.println("Gissa på ett tal mellan 0 och 10.");
} else if(choice == 2) {
playGame(100);
System.out.println("Gissa på ett tal mellan 0 och 100.");
} else if(choice == 3) {
playGame(1000);
System.out.println("Gissa på ett tal mellan 0 och 1000.");
}
}
public static int playGame(int maxNumber){
Scanner sc = new Scanner(System.in);
int number = (int)(Math.random() * maxNumber) +1;
int guess;
int nrOfGuesses = 0;
do{
System.out.println("Gissa på ett nummer mellan 1-"+ maxNumber); //Denna rad printas även när användaren gissat rätt
nrOfGuesses = nrOfGuesses + 1;
guess = sc.nextInt();
if (guess < number) {
giveResponce(number,guess);
} else if (guess > number) {
giveResponce(number,guess);
} else if (guess == number) {
giveResponce(number,guess);
}
} while (guess != number);
return nrOfGuesses;
}
public static void giveResponce(int answer, int guess) {
if (guess < answer) {
System.out.println("För lågt");
} else if (guess > answer) {
System.out.println("För högt");
} else if (guess == answer) {
System.out.println("Grattis, du har gissat rätt!");
//Hur får jag fram antalet gissningar?
}
}
}
All hjälp uppskattas!