Witam, zanim przyjrzycie się temu pięknie zapisanemu kodowi, który właściwie jest moim pierwszym zapisanym kiedykolwiek samemu bez internetu, z czego się ogromnie cieszę, to narodziły się w mojej głowie pytania, które odnoszą się do klasy Gra. Przy okazji, jak już zerkniecie na ten kod, prosiłbym was o to, abyście napisali mi, co by można było udoskonalić/poprawić by było lepiej, ponieważ nigdy nie pisałem w Javie sam ani nie miałem styczności z programowaniem obiektowym, więc każda opinia się przyda. Dziękuję.

  1. Obiekt p1 korzysta z metody klasy Gracz do wpisywania liczb, czyli w ten sposób tylko dla obiektu p1 wywodzącego się z klasy Gracz ta liczba jest określona?
    Jaka byłaby różnica między p1.liczbazgadywana a Gracz.liczbazgadywana?

  2. Czy te składowe są w takim razie potrzebne w klasie Komputer:

Gracz d1 = new Gracz();
int liczbadosprawdzenia=d1.liczbazgadywana;

kod:

import java.util.Scanner;

public class Gracz {


	static String podaneimie;
	public static int liczbazgadywana;
	Scanner odczyt = new Scanner(System.in);
	
	void wpisujeLiczbe(){

		System.out.println("Gracz o imieniu "+podaneimie+" wpisuje liczbe:");
		liczbazgadywana = odczyt.nextInt();
		System.out.println("Wpisana liczba to: "+ liczbazgadywana);
		System.out.println("");
		
	}//koniec metody wpisujeLiczbe
	
	void podajeSwojeImie() {
		System.out.println("Graczu, podaj swoje imie: ");
		podaneimie=odczyt.nextLine();
		System.out.println("Gracz podał swoje imie, czyli "+podaneimie+".");
		System.out.println("");
		System.out.println("Witaj "+podaneimie + "!");
		System.out.println("");
		
	}//koniec metody wpisania imienia
	
	
}//koniec klasy Gracz

//----------------------------------------------------

public class Komputer {
	
	static int liczbalosowa;
	Gracz d1 = new Gracz();
	int liczbadosprawdzenia=d1.liczbazgadywana;

	
	int losuje() {
		System.out.println("Komputer losuje liczbe z przedzialu od 0 do 20...");
		liczbalosowa=(int)(Math.random()*20);
		System.out.println("Komputer wylosowal liczbe "+ liczbalosowa + "    <-----------------(Gracz o tym nie wie)");
		System.out.println("*****************************************************************************************");
		return liczbalosowa;
		
	} // koniec metody losowania
	
	
	void sprawdza(int liczbadosprawdzenia) {
		
				if(liczbadosprawdzenia==liczbalosowa) {
						System.out.println("Gracz o imieniu "+Gracz.podaneimie+" wygrał!");
						System.out.println("");

					}
		
				if(liczbadosprawdzenia>liczbalosowa) {
								System.out.println("To za duzo!");
								System.out.println("");
					}
		
				if(liczbadosprawdzenia<liczbalosowa) {
									System.out.println("To za malo!");
									System.out.println("");
						}
	
		}//koniec metody sprawdzania
	
}//koniec klasy Komputer

//----------------------------------------------------

public class Gra {

	void rozpoczyna() {
		Gracz p1 = new Gracz();           
		Komputer maszyna=new Komputer(); 
		
			
			p1.podajeSwojeImie();    
			maszyna.losuje();        
			
			while(Gracz.liczbazgadywana!=Komputer.liczbalosowa) {    
				
				p1.wpisujeLiczbe();                                  //<--------------------------------------pytanie
				
				maszyna.sprawdza(p1.liczbazgadywana);    //??? albo Gracz.liczbazgadywana?
			}
	}
}//koniec klasy Gra

//----------------------------------------------------

public class Test {
	public static void main(String[] args) {
		Gra losowanie=new Gra();
		losowanie.rozpoczyna();
	}
}//koniec klasy Test