Hej. Jestem raczkujący w temacie, więc proszę o wyrozumiałość jeżeli będzie mało czytelnie:).
Chcę napisać typowy program z podręcznika, czyli zgadywanie liczby o 1 do 100.
Ogólnie sama gra działa jak trzeba, z jednym małym ale... Na końcu, kiedy pada pytanie "Czy chcesz spróbować jeszcze raz?" wybieramy opcję tak lub nie (a raczej tylko nie ;p). Kiedy po "tak" ma nastąpić nowa gra, niestety, wylosowana liczba jest taka sama jak w poprzedniej rozgrywce. Żeby wylosowało nową, trzeba zakończyć aplikację. Może mi ktoś przełożyć dlaczego tak się dzieje?
public class Main {
public static void main(String[] args) {
boolean condition = false;
Scanner scanner = new Scanner(System.in);
Scanner yesNo = new Scanner(System.in);
Random random = new Random();
int winNumber = random.nextInt(100) + 1;
System.out.println("Hej!");
System.out.println();
System.out.println();
System.out.println("Gra polega na tym, że musisz odgadnąć jaką liczbę wylosowałem od 1 do 100 :)");
System.out.println("Bez obaw, będę dawał Ci podpowiedzi");
System.out.println("Jeżeli jesteś gotowy naciśnij ENTER");
String enter = scanner.nextLine();
System.out.println("ZACZYNAMY");
while (!condition) {
System.out.println("Podaj liczbę od 1 do 100");
System.out.println(winNumber); //szybki wgląd w wylosowaną liczbę
int userNumber = scanner.nextInt();
if (userNumber < winNumber && winNumber - userNumber > 25) { //liczby za małe
System.out.println("ZIMNO liczba jest dużo za mała");
System.out.println();
} else if (userNumber < winNumber && winNumber - userNumber <= 25 && winNumber - userNumber > 10) {
System.out.println("CIEPL0 liczba jest za mała");
System.out.println();
} else if (userNumber < winNumber && winNumber - userNumber <= 10) {
System.out.println("GORĄCO liczba jest nieco za mała");
System.out.println();
} else if (userNumber > winNumber && userNumber - winNumber > 25) { //liczby za duże
System.out.println("ZIMNO liczba jest dużo za duża");
System.out.println();
} else if (userNumber > winNumber && userNumber - winNumber <= 25 && userNumber - winNumber > 10) {
System.out.println("CIEPL0 liczba jest za duża");
System.out.println();
} else if (userNumber > winNumber && userNumber - winNumber <= 10) {
System.out.println("GORĄCO liczba jest nieco za duża");
System.out.println();
} else { //liczby za w sam raz
System.out.println("BRAWO! Trafione!");
System.out.println();
System.out.println("Czy chcesz spróbować raz jeszcze? tak/nie");
System.out.println();
String questionEnd = yesNo.nextLine();
{ //powtórka lub koniec pętli
if (questionEnd.equals("nie")) {
condition = true;
} else {
System.out.println();
System.out.println("No to powtóreczka :)");
System.out.println();
}
}
}
}
}
}