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ę.
-
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? -
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