błąd przy kompilacji proszę o pomoc

0

Witam,
Dopiero się uczę Javy. Niestety nie kompiluje mi się klasa Zgadywanka oraz StarterGry.

class Zgadywanka
{
	Gracz p1;
	Gracz p2;
	Gracz p3;
	
	public void rozpocznijGre()
	{
		p1 = new Gracz();
		p2 = new Gracz();
		p3 = new Gracz();
		
		int typp1 = 0;
		int typp2 = 0;
		int typp3 = 0;
		
		boolean p1odgadl = false;
		boolean p1odgad2 = false;
		boolean p1odgad3 = false;
		
		int liczbaOdgadywana = (int) (Math.random() * 10);
		System.out.println("Mysle o liczbie z zakresu 0 do 9...");
		
		while(true)
		{
			System.out.println("Należy wytypować liczbę: " + liczbaOdgadywana );
			
			p1.zgaduj();
			p2.zgaduj();
			p3.zgaduj();
			
			typp1 = p1.liczba;
			System.out.println("Gracz pierwszy wytypował liczbę: " + typp1);
			typp2 = p2.liczba;
			System.out.println("Gracz drugi wytypował liczbę: " + typp2);
			typp3 = p3.liczba;
			System.out.println("Gracz trzeci wytypował liczbę: " + typp3);
			
			if (typp1 == liczbaOdgadywana)
			{
				p1odgadl = true;
			}
			if (typp2 == liczbaOdgadywana)
			{
				p2odgadl = true;
			}
			if (typp3 == liczbaOdgadywana)
			{
				p3odgadl = true;
			}
			
			if (p1odgadl || p2odgadl || p3odgadl)
			{
				System.out.println("Mamy zwycięzcę!");
				System.out.println("Czy gracz pierwszy wytypował poprawnie? " + p1odgadl);
				System.out.println("Czy gracz drugi wytypował poprawnie? " + p2odgadl);
				System.out.println("Czy gracz trzeci wytypował poprawnie? " + p3odgadl);
				System.out.println("Koniec gry");
				
			} else 
			{
				System.out.println("Gracze będę musieli spróbować jeszcze raz.");
			} // koniec if - eslse
		} // koniec while
	} // koniec metody rozpocznijGre
} // koniec klasy

class Gracz 
{
	int liczba = 0; // tu jest zapisywana typowana liczba
	
	public void zgaduj()
	{
		liczba = (int) (Math.random() * 10);
		System.out.println("Typuję liczbę: " + liczba);
	}
}	
class StarterGry 
{
	public static void main(String[] args)
	{
		Zgadywanka gra = new Zgadywanka();
		gra.rozpocznijGre();
	}
}

W załączniku przesyłam screen. Proszę o pomoc i poradę jak unikać takich błędów na przyszłość:(

1

Deklarujesz sobie składowe:

boolean p1odgadl = false;
boolean p1odgad2 = false;
boolean p1odgad3 = false;

a później używasz cały czas jakichś dziwnych p2odgadl, p3odgadl to i się "nie kompiluje". Nie sprawdzałem reszty, ale ponazywaj je sensownie, tak zebyś wiedział sam o co chodzi i która jest która.

1

@hoth a gdyby graczy miało być 100? Napisałbyś ten kod tak samo? A gdyby użytkownik chciał podać liczbę graczy z klawiatury? Dalej napisałbyś to tak samo? Nie? To przepisz to od nowa, tym razem z glową.

0

dzięki już zauważyłem błąd :D

1

@Shalom, to są jakieś początki nauki, podejrzewam, że wg któregoś z kursów czy książek - niech się bawi nawet i tak zanim dojdzie do tablic ;)

@hoth, tam masz jeszcze inne błędy, z którymi wrócisz:

  • pomimo, że gracz odgadł liczbę/cyfrę dalej ją zgaduje w każdym przejściu pętli
  • pomimo, że wszycy trzej gracze odgadli if (p1odgadl || p2odgadl || p3odgadl) gra się będzie toczyła w nieskończoność wypisując, że gra zakończona, bo nie masz wyjścia z tej pętli while(true) - poszukaj sobie informacji o break w pętlach.
0

@..... tak, już wszystko zauważyłem :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1