Siema,
Chcę wam dziś przestawić moją pierwszą poważniejszą aplikacje. Jest to generator labiryntu, z wyszukaniem drogi opartej na algorytmie przeszukiwaniu grafów.
Kilka kawałków kodu (reszta dodana jako pliki)
//***************************Wyszykiwanie Drogi *******************************************
public void szukajDrogi(int liczbaStart, int liczbaKoncowa, boolean hermetyk) {
this.liczbaWywołań++;
Komórka start=this.getKomórka(liczbaStart);
start.setDostepnosc(false);
if(hermetyk){
start.sortowanietablicy(liczbaStart, liczbaKoncowa, this.liczbaKolumn);
}
int i=0;
Komórka nextKomórka;
do {
nextKomórka=start.getElementOfList(i);
i++;
if(nextKomórka.getDostepnosc()) {
this.listNaRozwiązanie.add(nextKomórka);
if(nextKomórka.getNumerLiczba() != liczbaKoncowa+1){
this.szukajDrogi(nextKomórka.getNumerLiczba()-1, liczbaKoncowa, hermetyk);
start=this.getKomórka(liczbaStart);
nextKomórka=this.getKomórka(liczbaStart).getElementOfList(i-1);
if(nieMamyRozwiązania==true ){
this.listNaRozwiązanie.remove(this.listNaRozwiązanie.size()-1);
}
}
else {
this.nieMamyRozwiązania=false;
}
}
}while(nieMamyRozwiązania && start.getSizeOfList()>i );
}
public void ustawianieScian(boolean góra, boolean praw, boolean dół, boolean lewo, int x) {
Komórka elementDoPrzestawienia = this.getKomórka(x);
//****************************USTAWIANIE DLA GÓRY**********************************************
elementDoPrzestawienia.przestawienieGórnejS(góra, liczbaKolumn, listaGłówna);
//****************************USTAWIANIE DLA PRAWA*********************************************
elementDoPrzestawienia.przestawieniePrawejS(praw, liczbaKolumn, listaGłówna);
//****************************USTAWIANIE DLA DOŁU**********************************************
elementDoPrzestawienia.przestawienieDółS(dół, liczbaKolumn, listaGłówna);
//****************************USTAWIANIE DLA LEWA**********************************************
elementDoPrzestawienia.przestawienieLewoS(lewo, liczbaKolumn, listaGłówna);
}
public void sortowanietablicy(int start,int koniec, int liczbaKolumn) {
Komórka sprawdwPierwszej=this;
if(koniec - start >0 && koniec -start < liczbaKolumn ) { // ten sam rodzaj poziom komórke idz w prawo
for(Komórka xx : this.list) {
if(xx.getNumerLiczba() == this.getNumerLiczba()+1) {
if(this.list.size() >1) {
sprawdwPierwszej=xx;
}
}
}
}
if(koniec - start <0 && koniec -start < -liczbaKolumn ) { //ten sam rodzaj poziom komórke idz w lewo
for(Komórka xx : this.list) {
if(xx.getNumerLiczba() == this.getNumerLiczba()-1) {
if(this.list.size() >1) {
sprawdwPierwszej=xx;
}
}
}
}
if(koniec - start <0 && koniec - start <-liczbaKolumn) { // idz w góre jeśli koniec jest mniejszy niż początek
for(Komórka xx : this.list) {
if(xx.getNumerLiczba() == this.getNumerLiczba()- liczbaKolumn) {
if(this.list.size() >1) {
sprawdwPierwszej=xx;
}
}
}
}
if(koniec - start >0 && koniec - start >liczbaKolumn) { //idz w dół jeśli koniec jest większy niz poczatek
for(Komórka xx : this.list) {
if(xx.getNumerLiczba() == this.getNumerLiczba()+ liczbaKolumn) {
sprawdwPierwszej=xx;
}
}
}
if(sprawdwPierwszej !=this) {
this.list.remove(sprawdwPierwszej);
this.list.add(0, sprawdwPierwszej);
}
}
void przestawienieGórnejS(boolean góra, int liczbaKolumn, ArrayList<Komórka> listaGłówna) {
if(góra==true) { // jeśli mamy połączyć w góre
if(this.getNumerLiczba()<= liczbaKolumn) { // sprawdzamy czy możemy połączyć jeśli nie to dajemy komunikat
}
else {
if(this.getGórnaS()==false) { // sprawdzamy czy są połączone jeśli nie to łączymy
this.laczGóra(listaGłówna, liczbaKolumn);
}
}
}
else { // jeśli nie mamy połączyć w góre
if(this.getNumerLiczba()<= liczbaKolumn) { // sprawdzamy czy możemy usumąć jeśli nie to dajemy komunikat
}
else {
if(this.getGórnaS()==true) { // sprawdzamy czy są połączone jeśli tak to usuwamy połaczenie
this.usunGóra(listaGłówna, liczbaKolumn);
}
}
}
}
Zdjęcie okienka aplikacji https://www.fotosik.pl/zdjecie/pelne/78e8116d5cf2006d
Czy jeśli jestem wstanie stworzyć taką aplikacje to mogę próbować załapać się na staż ?
- BorderPaneController.java (6 KB) - ściągnięć: 88
- Lab.java (5 KB) - ściągnięć: 81
- Komórka.java (9 KB) - ściągnięć: 86