HiLo - igen?!
Har stångat mig blodig med mitt stackars HiLo-spel för grundkursen i Java. Det mesta blir rätt utom två saker:
Scannern presenteras två gånger när jag ska gissa det första talet (efter att ha valt alternativ 1,2 eller 3)
Jag får inte maxNumber att fungera i slutet för System.out.println("Gissa på ett tal mellan 1 och "+maxNumber);
Är det någon som har något tips?
import java.util.Scanner;
public class HiLoLabb1 {
public static int maxNumber;
public static int counter;
// public static int playGame(int maxNumber);
public static void main(String [] args) {
Scanner s = new Scanner(System.in);
int choice[] = {10, 100, 1000};
counter=1;
System.out.println("Välkommen till HiLo!");
System.out.println("Vilken svårighetsgrad?");
System.out.println("1. Lätt (1-10)");
System.out.println("2. Mellan (1-100)");
System.out.println("3. Svårt (1-1000)");
int player = s.nextInt();
if(player == 1) {
playGame(choice[0]);
}
else if(player == 2) {
playGame(choice[1]);
}
else if(player == 3) {
playGame(choice[2]);
}
else {
System.out.println("Välj ett värde mellan 1 och 3 nästa gång");
}
s.close();
}
static int playGame(int maxNumber)
{
Scanner s = new Scanner(System.in);
int answer = (int)(Math.random() * maxNumber) +1; {
System.out.println("Gissa på ett tal mellan 1 och "+maxNumber);
int guess = s.nextInt();
while(guess !=answer){
guess = s.nextInt();
giveResponse(guess, answer);
counter ++;
}
return guess;
}
}
static void giveResponse(int guess, int answer){
if (guess < 1) {
System.out.println("För lågt värde");
}
else if (guess > maxNumber){
System.out.println("För högt värde");
}
else if (guess < answer) {
System.out.println("Gissningen var för låg!");
System.out.println("Gissa på ett tal mellan 1 och "+maxNumber);
}
else if (guess > answer) {
System.out.println("Gissningen var för hög!");
System.out.println("Gissa på ett tal mellan 1 och "+maxNumber);
}
else if (guess == answer) {
System.out.println("Helt rätt!");
System.out.println("Du lyckades på "+counter+" försök");
}
}
}