Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package pr;
- import java.awt.Container;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.ImageIcon;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.WindowConstants;
- /**
- *
- * @author Paulina
- */
- public class okno extends JFrame {
- int licznik;
- int ostX;
- int ostY;
- void koniec (int wz, int wd, int liczba){
- if(wd==liczba){
- JOptionPane.showMessageDialog(this,"Szukasz jak algorytm dynamiczny czyli:"+wd,"OK",JOptionPane.WARNING_MESSAGE);
- }
- if(wz==liczba&&wz!=wd){
- JOptionPane.showMessageDialog(this,"Szukasz jak algorytm zachlanny czyli: "+wz+", optymalny wynik wynosił: "+wd,"Eee tam",JOptionPane.WARNING_MESSAGE);
- }
- if(liczba<wz&&liczba>wd){
- JOptionPane.showMessageDialog(this,"Szukasz lepiej jak algorytm zachlanny ("+wz+"). Twoj wynik to "+liczba+",ale optymalny wynik wynosił: "+wd,"niech bedzie",JOptionPane.WARNING_MESSAGE);
- }
- if(wz<liczba){
- JOptionPane.showMessageDialog(this,"SLABO","wtf",JOptionPane.WARNING_MESSAGE);
- }
- if(wd>liczba){
- JOptionPane.showMessageDialog(this,"WOW LOL ERROR 404, Adam cos schrzanił ","ERROR",JOptionPane.WARNING_MESSAGE);
- }
- }
- void petla(){
- JOptionPane.showMessageDialog(this,"Koniec bo pętla","GAME OVER",JOptionPane.WARNING_MESSAGE);
- }
- public okno(labirynt lab) {
- final JButton button[][];
- final int x = lab.getX();
- final int y = lab.getY();
- final int[][] tab = lab.getMemory();
- final int wynikZachlannie=lab.zachlannie();
- final int wynikDynamicznie=lab.dynamicznie();
- licznik = -1;
- ostX= -2;
- ostY= -2;
- int butt;
- button = new JButton[x][y];
- JPanel panel;
- setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
- Container c = getContentPane();
- c.setLayout(new GridLayout(x, 1));
- final ImageIcon puste = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\puste.png");
- ImageIcon start = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\start.png");
- ImageIcon meta = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\meta.png");
- ImageIcon sciana = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\sciana.png");
- final ImageIcon wybor = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\wybierz.png");
- final ImageIcon droga = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\droga.png");
- for (int i = 0; i < x; i++) {
- panel = new JPanel();
- panel.setLayout(new GridLayout(1, y));
- for (int j = 0; j < y; j++) {
- butt = tab[i][j];
- switch (butt) {
- case (0):
- button[i][j] = new JButton(puste);
- break;
- case (1):
- button[i][j] = new JButton(sciana);
- break;
- case (2):
- button[i][j] = new JButton(start);
- break;
- case (3):
- button[i][j] = new JButton(meta);
- break;
- }
- panel.add(button[i][j]);
- }
- c.add(panel);
- }
- pack();
- setVisible(true);
- final int[][] track = new int[x][y];
- for (int i = 0; i < x; i++) {
- for (int j = 0; j < y; j++) {
- track[i][j] = 0;
- }
- }
- final ActionListener przycisk;
- przycisk = new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- JButton source = (JButton) e.getSource();
- int parK = 0;
- for (int i = 0; i < x; i++) {
- for (int j = 0; j < y; j++) {
- if (source == button[i][j]) {
- System.out.println(i + " " + j);
- //poczatek
- if (licznik == -1) {
- if (tab[i][j] == 2) {
- licznik++;
- track[i][j] = 1;
- //gora
- if (i != 0) {
- if (tab[i - 1][j] == 0) {
- button[i - 1][j].setIcon(wybor);
- }
- }
- //dol
- if (i != x - 1) {
- if (tab[i + 1][j] == 0) {
- button[i + 1][j].setIcon(wybor);
- }
- }
- //lewo
- if (j != 0) {
- if (tab[i][j - 1] == 0) {
- button[i][j - 1].setIcon(wybor);
- }
- }
- //prawo
- if (j != y - 1) {
- if (tab[i][j + 1] == 0) {
- button[i][j + 1].setIcon(wybor);
- }
- }
- }
- } else {
- //final
- if (tab[i][j] == 3) {
- if (i != 0) {
- //gora
- if (track[i - 1][j] == 1 && ostX==i-1 && ostY == j) {
- licznik++;
- koniec(wynikZachlannie, wynikDynamicznie, licznik);
- parK++;
- }
- }
- //dol
- if (i != x - 1) {
- if (track[i + 1][j] == 1 && parK==0 && ostX==i+1 && ostY == j) {
- licznik++;
- koniec(wynikZachlannie, wynikDynamicznie, licznik);
- parK++;
- }
- }
- //lewo
- if (j != 0) {
- if (track[i][j - 1] == 1 && parK==0 && ostX==i && ostY == j-1) {
- licznik++;
- koniec(wynikZachlannie, wynikDynamicznie, licznik);
- parK++;
- }
- }
- //prawo
- if (j != y - 1) {
- if (track[i][j + 1] == 1 && parK==0 && ostX==i && ostY == j+1) {
- licznik++;
- koniec(wynikZachlannie, wynikDynamicznie, licznik);
- parK++;
- }
- }
- } else {
- //droga
- if (tab[i][j] == 0 && track[i][j] == 0 &&button[i][j].getIcon().equals(wybor)) {
- int t=0;
- int iloscWyboru = 0;
- //gora
- if (i != 0) {
- if (track[i - 1][j] == 1) {
- //czyszczenie
- for (int a = 0; a < x; a++) {
- for (int b = 0; b < y; b++) {
- if (tab[a][b] == 0) {
- if (track[a][b] == 1) {
- button[a][b].setIcon(droga);
- } else {
- button[a][b].setIcon(puste);
- }
- }
- }
- }
- //gora
- if (i != 0) {
- if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
- button[i - 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //dol
- if (i != x - 1) {
- if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
- button[i + 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //lewo
- if (j != 0) {
- if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
- button[i][j - 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //prawo
- if (j != y - 1) {
- if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
- button[i][j + 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- t=1;
- }
- }
- //dol
- if (i != x - 1) {
- if (track[i + 1][j] == 1 ) {
- //czyszczenie
- for (int a = 0; a < x; a++) {
- for (int b = 0; b < y; b++) {
- if (tab[a][b] == 0) {
- if (track[a][b] == 1) {
- button[a][b].setIcon(droga);
- } else {
- button[a][b].setIcon(puste);
- }
- }
- }
- }
- //gora
- if (i != 0) {
- if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
- button[i - 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //dol
- if (i != x - 1) {
- if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
- button[i + 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //lewo
- if (j != 0) {
- if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
- button[i][j - 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //prawo
- if (j != y - 1) {
- if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
- button[i][j + 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- t=1;
- }
- }
- //lewo
- if (j != 0) {
- if (track[i][j - 1] == 1) {
- //czyszczenie
- for (int a = 0; a < x; a++) {
- for (int b = 0; b < y; b++) {
- if (tab[a][b] == 0) {
- if (track[a][b] == 1) {
- button[a][b].setIcon(droga);
- } else {
- button[a][b].setIcon(puste);
- }
- }
- }
- }
- //gora
- if (i != 0) {
- if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
- button[i - 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //dol
- if (i != x - 1) {
- if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
- button[i + 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //lewo
- if (j != 0) {
- if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
- button[i][j - 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //prawo
- if (j != y - 1) {
- if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
- button[i][j + 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- t=1;
- }
- }
- //prawo
- if (j != y - 1) {
- if (track[i][j + 1] == 1) {
- //czyszczenie
- for (int a = 0; a < x; a++) {
- for (int b = 0; b < y; b++) {
- if (tab[a][b] == 0) {
- if (track[a][b] == 1) {
- button[a][b].setIcon(droga);
- } else {
- button[a][b].setIcon(puste);
- }
- }
- }
- }
- //gora
- if (i != 0) {
- if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
- button[i - 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //dol
- if (i != x - 1) {
- if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
- button[i + 1][j].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //lewo
- if (j != 0) {
- if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
- button[i][j - 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- //prawo
- if (j != y - 1) {
- if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
- button[i][j + 1].setIcon(wybor);
- iloscWyboru++;
- }
- }
- t=1;
- }
- }
- if(t==1){
- button[i][j].setIcon(droga);
- track[i][j] = 1;
- licznik++;
- ostX=i;
- ostY=j;
- }
- //petla
- if(iloscWyboru==0){
- int p=0;
- //gora
- if (i != 0 && tab[i - 1][j] == 3) {
- p++;
- }
- //dol
- if (i != x - 1&& tab[i + 1][j] == 3) {
- p++;
- }
- //lewo
- if (j != 0 && tab[i][j - 1] == 3) {
- p++;
- }
- //prawo
- if (j != y - 1 && tab[i][j + 1] == 3 ) {
- p++;
- }
- if(p==0){
- petla();
- }
- }
- //System.out.println(licznik+" ");
- }
- }
- }
- }
- }
- }
- }
- };
- for (int i = 0; i < x; i++) {
- for (int j = 0; j < y; j++) {
- button[i][j].addActionListener(przycisk);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement