Head First JAVA: 05. Chapter - Kamil-Jankowski/Learning-JAVA GitHub Wiki
Head First JAVA: 5. Chapter
Statki:
public class Gra {
public static void main(String[] args) {
int iloscRuchow = 0;
PomocnikGry pomocnik = new PomocnikGry();
ProstyPortal portal = new ProstyPortal();
int liczbaLosowa = (int)(Math.random()*5);
int[] polozenie = {liczbaLosowa, liczbaLosowa+1, liczbaLosowa+2};
portal.setPolaPolozenia(polozenie);
boolean czyIstnieje = true;
while (czyIstnieje == true) {
String pole = pomocnik.pobierzDaneWejsciowe("Podaj liczbę");
String wynik = portal.sprawdz(pole);
iloscRuchow++;
if (wynik.equals("Trafiony zatopiony!")) {
czyIstnieje = false;
System.out.println(iloscRuchow + " ruchów");
}
}
}
}
import java.io.*;
public class PomocnikGry {
public String pobierzDaneWejsciowe(String komunikat) {
String wierszWejsciowy = null;
System.out.print(komunikat + " ");
try {
BufferedReader sw = new BufferedReader(new InputStreamReader(System.in));
wierszWejsciowy = sw.readLine();
if (wierszWejsciowy.length() == 0) return null;
}
catch(IOException e) {
System.out.println("IOException: " + e);
}
return wierszWejsciowy;
}
}
public class ProstyPortal {
//ZADEKLARUJ tablicę typu int przechowującą położenia komórek. Nazwij ją polePolozenia.
private int[] polaPolozenia;
//ZADEKLARUJ zmienną typu int przechowującą ilość trafień. Nazwij ją iloscTrafien, PRZYPISZ jej wartość 0.
private int iloscTrafien;
//ZADEKLARUJ metodę ustawiającą setPolePolozenia() wymagająca podania tablicytypu int
//(posiadającej trzy komórki zawierające liczby całkowite typu int, na przykład: 1, 2, 3).
public void setPolaPolozenia (int[] ppol){
polaPolozenia = ppol;
}
//ZADEKLARUJ metodę sprawdz() wymagającą podania łańcucha znaków (obiektu String)
//określającego pole wiersza wskazane przez użytkownika (na przykład "1" lub "3" itd.).
//Metoda sprawdza wskazane pole i zwraca wynik reprezentujący "trafienie", "pudło" lub "zatopienie".
public String sprawdz(String stringPole){
int strzal = Integer.parseInt(stringPole);
String wynik = "Pudło!";
for (int pole : polaPolozenia){
//PORÓWNAJ pole wskazane przez gracza polami położenia
if (strzal == pole){
wynik = "Trafiony!";
iloscTrafien++;
// usunąć trafone pole z tablicy ppol
break;
}
}
if (iloscTrafien == polaPolozenia.length){
wynik = "Trafiony zatopiony!";
}
System.out.println(wynik);
return wynik;
}
}
public class ProstyPortalTester {
public static void main(String[] args) {
ProstyPortal wit = new ProstyPortal();
int[] polozenia = {2,3,4};
wit.setPolaPolozenia(polozenia);
String wybranePole = "2";
String wynik = wit.sprawdz(wybranePole);
// String wynikTestu = "Niepowodzenie";
// if (wynik.equals("trafiony")){
// wynikTestu = "Zakończony pomyślnie";
// }
// System.out.println(wynikTestu);
}
}