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

Gra Statki - problem


Rekomendowane odpowiedzi

Opublikowano

Witam mam problem otóż napisałem (prawie) finalna wersje gry statki z pomocą ksiązki Java Rusz Głową wydanie II,

skompilowanie się udało z jednym błędem ale już uruchomienie nie :( proszę o pomoc

 

Błąd z włączaniem:

HzL.jpg

 

Gdyby nie działało: http://imageshack.eu/HzL

 

Kod PomocnikGry:

 

 

 

import java.io.*;

import java.util.*;

 

 

 

 

public class PomocnikGry { 

private static final String alfabet = "abcdefg";

private int dlugoscPlanszy = 7;

private int wielkoscPlanszy = 49;

private int[] plansza = new int[wielkoscPlanszy];

private int iloscPortali = 0;

 

public String pobierzDaneWejsciowe(String komunikat) {

String daneWejsciowe = null;

System.out.print(komunikat + " ");

try {

BufferedReader is = new BufferedReader(

new InputStreamReader(System.in));

daneWejsciowe = is.readLine();

if (daneWejsciowe.length() == 0 ) return null;

}   catch (IOException e) {

System.out.println("IOException: " + e);

}

return daneWejsciowe.toLowerCase();

}

 

public ArrayList rozmiescPortal(int wielkoscPortalu) {

ArrayList<String> zajetePola = new ArrayList<String>();

String [] wspolrzedneLnc = new String [wielkoscPortalu];

String pomoc = null;

int [] wspolrzedne = new int[wielkoscPortalu];

int prob = 0;

boolean powodzenie = false;

int polozenie = 0;

 

iloscPortali++;

int inkr = 1;

if ((iloscPortali % 2) == 1) {

 

inkr = dlugoscPlanszy;

}

 

while (!powodzenie & prob++ < 200 ) {

polozenie = (int) (Math.random() * wielkoscPlanszy);

//System.out.println (" sprawdz " + polozenie);

int x = 0;

powodzenie = true;

while (powodzenie && x < wielkoscPortalu) {

if (plansza[polozenie] == 0) {

 

wspolrzedne[x++] = polozenie;

polozenie += inkr;

if (polozenie >= wielkoscPlanszy) {

powodzenie = false;

}

if (x>0 & (polozenie % dlugoscPlanszy == 0)) {

powodzenie = false;

}

} else {

// System.out.print(" juz zajete " + location

powodzenie = false;

}

}

}

 

int x = 0;

int wiersz = 0;

int kolumna = 0;

// System.out.println("\n");

while (x < wielkoscPortalu) {

plansza[wspolrzedne[x]] = 1;

wiersz = (int) (wspolrzedne[x] / dlugoscPlanszy);

kolumna = wspolrzedne[x] % dlugoscPlanszy;

pomoc = String.valueOf(alfabet.charAt(kolumna));

zajetePola.add(pomoc.concat(Integer.toString(wiersz)));

x++;

// System.out.print(" wspolrzedne "+x+" = "+zajetePola.get(x-1));

}

// System.out.println("\n");

return zajetePola;

}

}

 

 

 

 

Kod Portal:

 

 

 

 

import java.util.ArrayList;

 

class Portal {

 

private ArrayList<String> polaPolozenia;

private String nazwa;

 

public void setPolaPolozenia(ArrayList<String> ppol) {

polaPolozenia = ppol;

}

 

public void setNazwa(String nzwPortalu) {

nazwa = nzwPortalu;

}

 

public String sprawdz(String ruch) {

 

String wynik = "pudlo";

int indeks = polaPolozenia.indexOf(ruch);

 

if (indeks >= 0) {

 

polaPolozenia.remove(indeks);

 

if (polaPolozenia.isEmpty()) {

wynik = "zatopiony";

System.out.println("Auc! Zatopiles portal " + nazwa + " :( ");

} else {

wynik = "trafiony";

}

 

}

return wynik;

}

}

 

 

 

 

Kod PortalGraMax:

 

 

 

 

import java.util.*;

 

public class PortalGraMax {

 

private PomocnikGry pomocnik = new PomocnikGry();

private ArrayList<Portal> listaPortali = new ArrayList<Portal>();

private int iloscRuchow = 0;

 

private void przygotujGre() {

 

Portal pierwszy = new Portal();

pierwszy.setNazwa("onet.pl");

Portal drugi = new Portal();

drugi.setNazwa("wp.com");

Portal trzeci = new Portal();

trzeci.setNazwa("Go2.com");

listaPortali.add(pierwszy);

listaPortali.add(drugi);

listaPortali.add(trzeci);

 

System.out.println("Twoim celem jest zatopienie trzech portali.");

System.out.println("onet.pl, wp.com, Go2.com");

System.out.println("Postaraj sie je zatopic w jak najmnniejszej ilosci ruchow.");

 

for (Portal rozmieszczanyPortal : listaPortali) {

ArrayList<String> nowePolozenie = pomocnik.rozmiescPortal(3);

rozmieszczanyPortal.setPolaPolozenia(nowePolozenie);

}

}

 

private void rozpocznijGre() {

while (!listaPortali.isEmpty()) {

String ruchGracza = pomocnik.pobierzDaneWejsciowe("Podaj pole:");

sprawdzRuchGracza(ruchGracza);

}

zakonczGre();

}

 

private void sprawdzRuchGracza(String ruch) {

 

iloscRuchow++;

String wynik = "pudlo";

 

for (Portal portalDoSprawdzenia : listaPortali) {

wynik = portalDoSprawdzenia.sprawdz(ruch);

if (wynik.equals("trafiony")) {

break;

}

if (wynik.equals("zatopiony")) {

listaPortali.remove(portalDoSprawdzenia);

break;

}

}

System.out.println(wynik);

}

 

private void zakonczGre() {

 

System.out.println("Wszystkie Portale zostaly zatopione! Teraz Twoje informacje nie maja znaczenia.");

if (iloscRuchow <= 18) {

System.out.println("Wykonales jedynie " + iloscRuchow + " ruchow.");

System.out.println("Wydostales sie, zanim Twoje informacje zatonely.");

} else {

System.out.println("Ale sie grzebales!. Wykonales az " + iloscRuchow + " ruchow.");

System.out.println("Teraz rybki plywaja pomiedzy Twoimi informacjami");

}

}

 

private static void main (String[] args) {

PortalGraMax gra = new PortalGraMax();

gra.przygotujGre();

gra.rozpocznijGre();

}

 

}

 

 

 

Opublikowano
private static void main (String[] args) {
PortalGraMax gra = new PortalGraMax();
gra.przygotujGre();
gra.rozpocznijGre();
}

na

public static void main (String[] args) {
PortalGraMax gra = new PortalGraMax();
gra.przygotujGre();
gra.rozpocznijGre();
}

708121422388637873334.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...