Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Ocena programu


Rekomendowane odpowiedzi

Opublikowano

Witam, chciałem przetestować swoje możliwości pisania w Javie i postanowiłem stworzyć małą prostą gierkę która polega na odgadnięciu losowej liczby 1-1000 której wylosuje nasz wścipski komputer.

 

Gra przedstawia się tak:

 

Odpalamy go i losuje nam liczbę 1-1000 a my musimy jak najszybciej ją zgadnąć (nie na czas, a próby wpisania),

I jak zgadniemy liczbę to pokazuje nam ilość prób. I teraz próbujemy przebić to do jak najmniejszej ilości. 

 

Jest to wersja konsolowa, także pokażę wam kod, bo nie jestem pewny czy dobrze jest napisany (gierka sprawuje się świetnie i nie ma żadnych wątpliwości, co do tego, a bardziej mi chodzi o ocenę jej efektywności, wydajności, czy kod nie jest pogmatwany itd.

 

(Main)

 

 

package zzTest.Zadania;

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

public class GraWylosujLiczbe {
	
	public static void main(String[] args){
		ws("Witaj w grze. Zaczynam losowanie liczby 1-1000. \nSpróbuj ją odgadnąć *złowieszczy śmiech*\n");
		Random rand = new Random();
		Scanner s = new Scanner(System.in);
		Zmienne z = new Zmienne();
		z.setWylosowanaLiczba(rand.nextInt(1000)+1);
		int wprowadzonaLiczba;
		while (true) {
	        if (s.hasNextInt()){
	        	wprowadzonaLiczba = s.nextInt();
	           if(z.sprawdz(wprowadzonaLiczba)==3){
	        	   ws(z.zlaLiczba);
	        	   z.addProby();
	           }
	           else if(z.sprawdz(wprowadzonaLiczba)==0){
		        	ws(z.dobrze+z.getProby());
		        	break;
	           }
	           else if(z.sprawdz(wprowadzonaLiczba)==1){
		        	ws(z.zaMalo);
		        	z.addProby();
		        }
	           else if(z.sprawdz(wprowadzonaLiczba)==2){
		        	ws(z.zaDuzo);
		        	z.addProby();
		        }
	        }
	        else {
	            s.next();
	            System.out.println("Wpisałeś złą wartość.");
	            continue;
	        }
		}
		s.close();
	}
	public static void ws(String s){
		System.out.println(s);
	}
}
 

 

 

 

(Zmienne)

 

 

package zzTest.Zadania;

public class Zmienne {
	int wylosowanaLiczba;
	int proby = 0;
	
	String zaMalo = "Wprowadzona liczba jest mniejsza od wylosowanej!";
	String zaDuzo = "Wprowadzona liczba jest wieksza od wylosowanej!";
	String dobrze = "Brawo! Udało się Tobie odganąć liczbę.\nWpisane błędnie to: ";
	String zlaLiczba = "Wprowadzona liczba nie miesci sie w przedziale 1-1000";
	
	
	int getWylosowanaLiczba(){
		return wylosowanaLiczba;
	}
	
	int getProby(){
		return proby;
	}
	
	void setWylosowanaLiczba(int i){
		wylosowanaLiczba=i;
	}
	
	void addProby(){
		proby++;
	}
	
	int sprawdz(int wprowadzona){
		if(wprowadzona<0 || wprowadzona>1000){
			return 3;
		}
		if(wprowadzona>wylosowanaLiczba){
			return 2;
		}
		if(wprowadzona<wylosowanaLiczba){
			return 1;
		}
		return 0;
	}
	
}
 

 

 

 

 

Przykładowe logi z konsoli:

[1]

 

Witaj w grze. Zaczynam losowanie liczby 1-1000. 
Spróbuj ją odgadnąć *złowieszczy śmiech*

500
Wprowadzona liczba jest mniejsza od wylosowanej!
700
Wprowadzona liczba jest mniejsza od wylosowanej!
900
Wprowadzona liczba jest wieksza od wylosowanej!
800
Wprowadzona liczba jest wieksza od wylosowanej!
750
Wprowadzona liczba jest mniejsza od wylosowanej!
770
Wprowadzona liczba jest mniejsza od wylosowanej!
790
Wprowadzona liczba jest wieksza od wylosowanej!
780
Wprowadzona liczba jest wieksza od wylosowanej!
778
Wprowadzona liczba jest wieksza od wylosowanej!
777
Wprowadzona liczba jest wieksza od wylosowanej!
776
Wprowadzona liczba jest wieksza od wylosowanej!
772
Wprowadzona liczba jest mniejsza od wylosowanej!
775
Wprowadzona liczba jest wieksza od wylosowanej!
773
Brawo! Udało się Tobie odganąć liczbę.
Wpisane błędnie to: 13
 

 

 

 

 

[2]

 

Witaj w grze. Zaczynam losowanie liczby 1-1000. 
Spróbuj ją odgadnąć *złowieszczy śmiech*

=
Wpisałeś złą wartość.
-
Wpisałeś złą wartość.
-
Wpisałeś złą wartość.
=
Wpisałeś złą wartość.
=
Wpisałeś złą wartość.
=-
Wpisałeś złą wartość.
-=
Wpisałeś złą wartość.
1
Wprowadzona liczba jest mniejsza od wylosowanej!
`
Wpisałeś złą wartość.
2
Wprowadzona liczba jest mniejsza od wylosowanej!
3
Wprowadzona liczba jest mniejsza od wylosowanej!
4
Wprowadzona liczba jest mniejsza od wylosowanej!
5
Wprowadzona liczba jest mniejsza od wylosowanej!
,
Wpisałeś złą wartość.
.
Wpisałeś złą wartość.
/
Wpisałeś złą wartość.
;
Wpisałeś złą wartość.
'
Wpisałeś złą wartość.
[
Wpisałeś złą wartość.
]
Wpisałeś złą wartość.
\
Wpisałeś złą wartość.
/
Wpisałeś złą wartość.
*
-Wpisałeś złą wartość.

+Wpisałeś złą wartość.

Wpisałeś złą wartość.















1000000
Wprowadzona liczba nie miesci sie w przedziale 1-1000
-2
Wprowadzona liczba nie miesci sie w przedziale 1-1000
 

 

 

 

 

 

Pozdrawiam, #Knugi

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

ogólnie to tak trochę dziwnie wygląda, ale jedyne co mnie z jakiegoś powodu rezi w oczy, to to:

	int sprawdz(int wprowadzona){
		if(wprowadzona<0 || wprowadzona>1000){
			return 3;
		}
		if(wprowadzona>wylosowanaLiczba){
			return 2;
		}
		if(wprowadzona<wylosowanaLiczba){
			return 1;
		}
		return 0;
	}

ładniej by to wyglądało za pomocą jakiegoś enum

public enum
{
    INVALID_NUMBER,
    TOO_BIG_NUMBER,
    TOO_SMALL_NUMBER,
    VALID_NUMBER;
}

i uzywać tego, sensowniej to wygląda, zamiast takich 0/1/2/3 co po 3 dniach nie pamietasz co oznaczało w większym programie.

 

Lub w ostateczności, jak nie chce się uzywac enum z jakiegoś powodu, robi się to tak

public static final int INVALID_NUMBER   = 3;
public static final int TOO_BIG_NUMBER   = 2;
public static final int TOO_SMALL_NUMBER = 1;
public static final int VALID_NUMBER     = 0;

i uzywa tych zmiennych.

 

 

Nie wiem po co ci tez ta cała klasa "Zmienne" skoro tego nie używasz, można by dać te stringi jako statyczne finalne zmienne w głównej klasie.

 

 

Idę spać...

1438614356923701010629.png

 

Opublikowano

No więc.
 
1) O co chodzi w klasie "Zmienne"? Niby jest to obiekt, ale tworzenie obiektu dla wszystkich zmiennych nie jest obiektowe. Zmienne powinny określać stan obiektu, tutaj mógłbyś zrobić np klasę Game i w niej umieścić konieczne pola (zmienne) i metody. Czyli losowanie liczby powinno leżeć po stronie klasy gry. Gra powinna do tego obsługiwać jedynie zgłaszanie odpowiedzi i sprawdzanie jej poprawności. Zawsze udostępniaj jak możliwie najmniejszy interfejs (tj. jak najmniej metod publicznych)
 
2) Używaj modyfikatorów. Jeśli masz pola niestatyczne, to zazwyczaj powinny być one prywatne. Chcesz żeby był do nich dostęp spoza klasy? Twórz gettery/settery. Tak, zrobiłeś to. Ale pozostawiłeś pola bez modyfikatorów:

	int wylosowanaLiczba;
	int proby = 0;

Dlaczego tak się robi? Zostawiasz wtedy wolną rękę klasom dziedziczącym, które mogą te metodę przesłonić. A tutaj pojawia się już bardzo dużo korzyści, jak, najbardziej oczywiste, utrzymanie kodu czystym i jednoznacznym. No i testowanie.
   Do tego dochodzi to:

String zaMalo = "Wprowadzona liczba jest mniejsza od wylosowanej!";
    String zaDuzo = "Wprowadzona liczba jest wieksza od wylosowanej!";
    String dobrze = "Brawo! Udało się Tobie odganąć liczbę.\nWpisane błędnie to: ";
    String zlaLiczba = "Wprowadzona liczba nie miesci sie w przedziale 1-1000";

Wartości nie są zależne od obiektu i nie określają jego stanu? Powinny być statyczne (tj.static). Nie zmieniają się? Powinny być stałe (tj. final).
 
3) Naming - No i pewnie tutaj kupa ludzi uważa że się bezsensownie czepiam :s. Ale na coś konwencje nazewnicze są i kod jest, jak dla mnie, czytelniejszy. Czyli - pakiety małymi literami i używaj generalnie angielskich nazw.
 
4) To co mówił @GotoFinal - Jeśli zwracasz liczby, które w zależności od wartości mają różne znaczenie, zapisuj te znaczenia. Czyli rób stałe z nimi. A w każdej sytuacji, gdy możesz uniknąć używania liczb, używaj enumów.
 
5)

	           if(z.sprawdz(wprowadzonaLiczba)==3){
	        	   ws(z.zlaLiczba);
	        	   z.addProby();
	           }
	           else if(z.sprawdz(wprowadzonaLiczba)==0){
		        	ws(z.dobrze+z.getProby());
		        	break;
	           }
	           else if(z.sprawdz(wprowadzonaLiczba)==1){
		        	ws(z.zaMalo);
		        	z.addProby();
		        }
	           else if(z.sprawdz(wprowadzonaLiczba)==2){
		        	ws(z.zaDuzo);
		        	z.addProby();
		        }

Poczytaj o 'switch'.
 
Trochę późno, więc tutaj skończę.

708121422388637873334.png

Opublikowano

@Jaca777 bardziej rozumiem te switch niż enumy :P

 

Enums'ami się jeszcze nie bawiłem i do końca nie rozumiem tego, a co do tego, że po pewnym czasie stracę głowę po tych liczbach i co one zwracają macie rację, że się nie połapię, ani ja ani kolega który np jest współtwórcą gry

 

//Edit

Dobra poprawiłem to na: Jedną klasę, poprawiłem nazwy zmiennych, i raczej wszystko można sobie dowoli zmieniać w zmiennych.

 

Kod:

 

 

package pl.ct8.knugi;

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

public class Main {
	private static final int INVALID_NUMBER = 3;
	private static final int TOO_BIG_NUMBER = 2;
	private static final int TOO_SMALL_NUMBER = 1;
	private static final int VALID_NUMBER = 0;
	
	private static final int MAX_NUMBER = 1000;
	private static final int MIN_NUMBER = 1;
	
	private static int DRAWN_NUMBER;
	private static int TRIAL_NUMBER = 0;
	
	
	private static final String INVALID_NUMBER_STRING = "Wprowadzona liczba nie miesci sie w przedziale 1-1000";
	private static final String TOO_BIG_NUMBER_STRING = "Wprowadzona liczba jest wieksza od wylosowanej!";
	private static final String TOO_SMALL_NUMBER_STRING = "Wprowadzona liczba jest mniejsza od wylosowanej!";
	private static final String VALID_NUMBER_STRING = "Brawo! Udało się Tobie odganąć liczbę.\nWpisane błędnie to: ";
	private static final String BAD_VALUE = "Wpisałeś błędną wartość!";
	
	public static void main(String[] args){
		System.out.println("Witaj, zagrajmy w grę.\nLosuję liczbę 1-1000 ...\nDobra, teraz ją zgadnij *buahahaha*");
		Random rand = new Random();
		Scanner s = new Scanner(System.in);
		DRAWN_NUMBER = rand.nextInt(MAX_NUMBER)+MIN_NUMBER;
		int ENTERED_NUMBER = 0;
		while(true){
			
			if(s.hasNextInt()){
				ENTERED_NUMBER = s.nextInt();
				if(checkNumber(ENTERED_NUMBER)==INVALID_NUMBER){
					System.out.println(INVALID_NUMBER_STRING);
					TRIAL_NUMBER++;
				}
				else if(checkNumber(ENTERED_NUMBER)==TOO_BIG_NUMBER){
					System.out.println(TOO_BIG_NUMBER_STRING);
					TRIAL_NUMBER++;
				}
				else if(checkNumber(ENTERED_NUMBER)==TOO_SMALL_NUMBER){
					System.out.println(TOO_SMALL_NUMBER_STRING);
					TRIAL_NUMBER++;
				}
				else if(checkNumber(ENTERED_NUMBER)==VALID_NUMBER){
					System.out.println(VALID_NUMBER_STRING+TRIAL_NUMBER);
					break;
				}
			}
			else{
				s.next();
				System.out.println(BAD_VALUE);
				continue;
			}
			
			
		}
		s.close();
		
		
	}
	private static int checkNumber(int check){
		if(check>MAX_NUMBER || check<MIN_NUMBER){
			return INVALID_NUMBER;
		}
		if(check<DRAWN_NUMBER){
			return TOO_SMALL_NUMBER;
		}
		if(check>DRAWN_NUMBER){
			return TOO_BIG_NUMBER;
		}
		return VALID_NUMBER;
	}
}
 

 

 

 

Console:

 

 

Witaj, zagrajmy w grę.
Losuję liczbę 1-1000 ...
Dobra, teraz ją zgadnij *buahahaha*
1
Wprowadzona liczba jest mniejsza od wylosowanej!
`
Wpisałeś błędną wartość!
=
Wpisałeś błędną wartość!
-
Wpisałeś błędną wartość!
-1
Wprowadzona liczba nie miesci sie w przedziale 1-1000
10002
Wprowadzona liczba nie miesci sie w przedziale 1-1000
5
Wprowadzona liczba jest mniejsza od wylosowanej!
6
Wprowadzona liczba jest mniejsza od wylosowanej!
928
Wprowadzona liczba jest wieksza od wylosowanej!
500
Wprowadzona liczba jest wieksza od wylosowanej!
300
Wprowadzona liczba jest wieksza od wylosowanej!
20
Wprowadzona liczba jest mniejsza od wylosowanej!
200
Wprowadzona liczba jest wieksza od wylosowanej!
100
Wprowadzona liczba jest mniejsza od wylosowanej!
150
Wprowadzona liczba jest wieksza od wylosowanej!
125
Wprowadzona liczba jest wieksza od wylosowanej!
120
Wprowadzona liczba jest wieksza od wylosowanej!
105
Wprowadzona liczba jest mniejsza od wylosowanej!
110
Wprowadzona liczba jest mniejsza od wylosowanej!
115
Wprowadzona liczba jest mniejsza od wylosowanej!
120
Wprowadzona liczba jest wieksza od wylosowanej!
127
Wprowadzona liczba jest wieksza od wylosowanej!
116
Brawo! Udało się Tobie odganąć liczbę.
Wpisane błędnie to: 19
 

 

 

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

Enumy są bardzo proste. Lepiej o nich poczytaj, bo z nich wynika sporo korzyści. A switch możesz też używać na obiektach z enumów.

 

@GotoFinal

 

ale w takm małym czymś to średnio ma sens się bawić obiektami

Normalnie to faktycznie może być kwestia sporna, ale skoro on to robi dla ćwiczenia to raczej problemu nie ma. Jak dla mnie teraz powinien używać obiektów kiedy się da.

 

@Szymon2727 ?

 

@knugi Jeśli chcesz już całkowicie poprawnie, to zmienne statyczne też z małej litery (tj. drawnNumber).

708121422388637873334.png

Opublikowano

@Jaca777 bardziej rozumiem te switch niż enumy :P

 

Enums'ami się jeszcze nie bawiłem i do końca nie rozumiem tego, a co do tego, że po pewnym czasie stracę głowę po tych liczbach i co one zwracają macie rację, że się nie połapię, ani ja ani kolega który np jest współtwórcą gry

 

//Edit

Dobra poprawiłem to na: Jedną klasę, poprawiłem nazwy zmiennych, i raczej wszystko można sobie dowoli zmieniać w zmiennych.

 

Kod:

 

 

package pl.ct8.knugi;

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

public class Main {
	private static final int INVALID_NUMBER = 3;
	private static final int TOO_BIG_NUMBER = 2;
	private static final int TOO_SMALL_NUMBER = 1;
	private static final int VALID_NUMBER = 0;
	
	private static final int MAX_NUMBER = 1000;
	private static final int MIN_NUMBER = 1;
	
	private static int DRAWN_NUMBER;
	private static int TRIAL_NUMBER = 0;
	
	
	private static final String INVALID_NUMBER_STRING = "Wprowadzona liczba nie miesci sie w przedziale 1-1000";
	private static final String TOO_BIG_NUMBER_STRING = "Wprowadzona liczba jest wieksza od wylosowanej!";
	private static final String TOO_SMALL_NUMBER_STRING = "Wprowadzona liczba jest mniejsza od wylosowanej!";
	private static final String VALID_NUMBER_STRING = "Brawo! Udało się Tobie odganąć liczbę.\nWpisane błędnie to: ";
	private static final String BAD_VALUE = "Wpisałeś błędną wartość!";
	
	public static void main(String[] args){
		System.out.println("Witaj, zagrajmy w grę.\nLosuję liczbę 1-1000 ...\nDobra, teraz ją zgadnij *buahahaha*");
		Random rand = new Random();
		Scanner s = new Scanner(System.in);
		DRAWN_NUMBER = rand.nextInt(MAX_NUMBER)+MIN_NUMBER;
		int ENTERED_NUMBER = 0;
		while(true){
			
			if(s.hasNextInt()){
				ENTERED_NUMBER = s.nextInt();
				if(checkNumber(ENTERED_NUMBER)==INVALID_NUMBER){
					System.out.println(INVALID_NUMBER_STRING);
					TRIAL_NUMBER++;
				}
				else if(checkNumber(ENTERED_NUMBER)==TOO_BIG_NUMBER){
					System.out.println(TOO_BIG_NUMBER_STRING);
					TRIAL_NUMBER++;
				}
				else if(checkNumber(ENTERED_NUMBER)==TOO_SMALL_NUMBER){
					System.out.println(TOO_SMALL_NUMBER_STRING);
					TRIAL_NUMBER++;
				}
				else if(checkNumber(ENTERED_NUMBER)==VALID_NUMBER){
					System.out.println(VALID_NUMBER_STRING+TRIAL_NUMBER);
					break;
				}
			}
			else{
				s.next();
				System.out.println(BAD_VALUE);
				continue;
			}
			
			
		}
		s.close();
		
		
	}
	private static int checkNumber(int check){
		if(check>MAX_NUMBER || check<MIN_NUMBER){
			return INVALID_NUMBER;
		}
		if(check<DRAWN_NUMBER){
			return TOO_SMALL_NUMBER;
		}
		if(check>DRAWN_NUMBER){
			return TOO_BIG_NUMBER;
		}
		return VALID_NUMBER;
	}
}
 

 

 

 

Console:

 

 

Witaj, zagrajmy w grę.
Losuję liczbę 1-1000 ...
Dobra, teraz ją zgadnij *buahahaha*
1
Wprowadzona liczba jest mniejsza od wylosowanej!
`
Wpisałeś błędną wartość!
=
Wpisałeś błędną wartość!
-
Wpisałeś błędną wartość!
-1
Wprowadzona liczba nie miesci sie w przedziale 1-1000
10002
Wprowadzona liczba nie miesci sie w przedziale 1-1000
5
Wprowadzona liczba jest mniejsza od wylosowanej!
6
Wprowadzona liczba jest mniejsza od wylosowanej!
928
Wprowadzona liczba jest wieksza od wylosowanej!
500
Wprowadzona liczba jest wieksza od wylosowanej!
300
Wprowadzona liczba jest wieksza od wylosowanej!
20
Wprowadzona liczba jest mniejsza od wylosowanej!
200
Wprowadzona liczba jest wieksza od wylosowanej!
100
Wprowadzona liczba jest mniejsza od wylosowanej!
150
Wprowadzona liczba jest wieksza od wylosowanej!
125
Wprowadzona liczba jest wieksza od wylosowanej!
120
Wprowadzona liczba jest wieksza od wylosowanej!
105
Wprowadzona liczba jest mniejsza od wylosowanej!
110
Wprowadzona liczba jest mniejsza od wylosowanej!
115
Wprowadzona liczba jest mniejsza od wylosowanej!
120
Wprowadzona liczba jest wieksza od wylosowanej!
127
Wprowadzona liczba jest wieksza od wylosowanej!
116
Brawo! Udało się Tobie odganąć liczbę.
Wpisane błędnie to: 19
 

 

 

	private static int DRAWN_NUMBER;
	private static int TRIAL_NUMBER = 0;

To nie powinno być z wielkich nazwane, to samo z "int ENTERED_NUMBER = 0;"

W uproszczeniu: Wielkimi literami nazywamy statyczno-finalne zmienne.

 

I teraz niby jest ok, ale nie obiektowo, ale w takm małym czymś to średnio ma sens się bawić obiektami

1438614356923701010629.png

 

Opublikowano

Hahaha, aż mi się przypomniała taka apka na androida, która wypisywała tylko ,, Hello World ''  xD Nie wiem po co ten temat i rozumiem jakieś gry typu kółko i krzyżyk, ale nie jakieś zadanie z kursu.

 

 

A tutaj wrzucam swoje dzieło, żeby udowodnić, że byle noob może to zrobić.

pyhvh7E.png


 


Opublikowano

@GotoFinal ok już poprawiam :D

 

Poprawione:

 

 

package pl.ct8.knugi;

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

public class Main {
	private static final int INVALID_NUMBER = 3;
	private static final int TOO_BIG_NUMBER = 2;
	private static final int TOO_SMALL_NUMBER = 1;
	private static final int VALID_NUMBER = 0;
	
	private static final int MAX_NUMBER = 1000;
	private static final int MIN_NUMBER = 1;
	
	private static int DrawnNumber;
	private static int TrialNumber = 0;
	
	
	private static final String INVALID_NUMBER_STRING = "Wprowadzona liczba nie miesci sie w przedziale 1-1000";
	private static final String TOO_BIG_NUMBER_STRING = "Wprowadzona liczba jest wieksza od wylosowanej!";
	private static final String TOO_SMALL_NUMBER_STRING = "Wprowadzona liczba jest mniejsza od wylosowanej!";
	private static final String VALID_NUMBER_STRING = "Brawo! Udało się Tobie odganąć liczbę.\nWpisane błędnie to: ";
	private static final String BAD_VALUE = "Wpisałeś błędną wartość!";
	
	public static void main(String[] args){
		System.out.println("Witaj, zagrajmy w grę.\nLosuję liczbę 1-1000 ...\nDobra, teraz ją zgadnij *buahahaha*");
		Random rand = new Random();
		Scanner s = new Scanner(System.in);
		DrawnNumber = rand.nextInt(MAX_NUMBER)+MIN_NUMBER;
		int EnteredNumber = 0;
		while(true){
			if(s.hasNextInt()){
				EnteredNumber = s.nextInt();
				if(checkNumber(EnteredNumber)==INVALID_NUMBER){
					System.out.println(INVALID_NUMBER_STRING);
					TrialNumber++;
				}
				else if(checkNumber(EnteredNumber)==TOO_BIG_NUMBER){
					System.out.println(TOO_BIG_NUMBER_STRING);
					TrialNumber++;
				}
				else if(checkNumber(EnteredNumber)==TOO_SMALL_NUMBER){
					System.out.println(TOO_SMALL_NUMBER_STRING);
					TrialNumber++;
				}
				else if(checkNumber(EnteredNumber)==VALID_NUMBER){
					System.out.println(VALID_NUMBER_STRING+TrialNumber);
					break;
				}
			}
			else{
				s.next();
				System.out.println(BAD_VALUE);
				continue;
			}
			
			
		}
		s.close();
		
		
	}
	private static int checkNumber(int check){
		if(check>MAX_NUMBER || check<MIN_NUMBER){
			return INVALID_NUMBER;
		}
		if(check<DrawnNumber){
			return TOO_SMALL_NUMBER;
		}
		if(check>DrawnNumber){
			return TOO_BIG_NUMBER;
		}
		return VALID_NUMBER;
	}
}
 

 

 

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...