Dlaczego się nie kompiluje?

0

Witam,
Zaczynam przygodę z javą, może mi ktoś powiedzieć dlaczego ten kod nie chce się skompilować?
Program zawiera trzy klasy.
Pierwsza:

package 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 się je zatopić w jak najmniejszej liczbie ruchów.");
        
        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 = "pudło";
        
        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 zostały zatopione! Teraz Twoje informacje nie mają już znaczenia.");
        if (iloscRuchow <= 18) {
            System.out.println ("Wykonałeś jedynie" + iloscRuchow + "ruchów.");
            System.out.println ("Wydostałeś się zanim Twoje informacje zatonęły");
        } else {
            System.out.println ("Ale się grzebałeś! Wykonałeś aż "+ iloscRuchow + "ruchów.");
            System.out.println ("Chujowo...");
        }
        
    }
    
    
    
    
    public static void main(String[] args) {
        PortalGraMax gra = new PortalGraMax();
        gra.przygotujGre();
        gra.rozpocznijGre();
    
    }
}

Druga:

package portalgramax;
import java.util.*;




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 = "pudło";
    int indeks = polaPolozenia.indexOf(ruch);
    if (indeks>= 0) {
        polaPolozenia.remove(indeks);
        
        if (polaPolozenia.isEmpty()) {
            wynik = "zatopiony";
            System.out.println ("Auć! Zatopiłeś portal "+ nazwa + " : (");
        } else {
            wynik = "trafiony";
        }
    }
    return wynik;
}
    
}

Trzecia:

package portalgramax;

import java.io.*;
import java.util.*;
import java.io.IOException.*;


public class PomocnikGry {
    private static final String alfabet = "abcdefg";
    private final int dlugoscPlanszy = 7;
    private final int wielkoscPlanszy = 49;
    private final 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 ("I0Exception: " + e);
    }
    return daneWejsciowe.toLowerCase();
    }

public ArrayList rozmiescPortal (int wielkoscPortalu) {
    ArrayList <String> zajetePola = new ArrayList <>();
    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.print ("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 (" już zajęte " + locatioin);
                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(" współrzędne "+x+" = " + zajetePola.get(x-1));
}
//System.out.println("\n");
return zajetePola;
}
}


5

Może, nie uruchomiłeś kompilatora?

0

Jakiś błąd wyskakuje? Cokolwiek?

6

To przez polskie nazwy zmiennych.

2

W pierwszej w linijce 26 masz spacje niepotrzebna:

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

Rozpoczyna się uruchamianie, wyświetlają się nazwy portali i kompilacja się nie kończy. Nie wyskakują żadne błędy. Zatrzymuje się na 0%.

0

jak już ci sie jakieś printlny wyświetlają to kompilacja się skończyła ._.

edit: odpal z debuggerem i zobacz co sie dzieje

1
gk1982 napisał(a):

W pierwszej w linijce 26 masz spacje niepotrzebna:

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

@gk1982 byłeś blisko. Metoda pomocnik.rozmiescPortal(int) to jakaś sieka. Program się na niej wiesza XD

0

Dzięki za odpowiedzi!

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