Advertisement
Guest User

Untitled

a guest
May 30th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 23.03 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package pr;
  7.  
  8. import java.awt.Container;
  9. import java.awt.GridLayout;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import javax.swing.ImageIcon;
  13. import javax.swing.JButton;
  14. import javax.swing.JFrame;
  15. import javax.swing.JOptionPane;
  16. import javax.swing.JPanel;
  17. import javax.swing.WindowConstants;
  18.  
  19. /**
  20.  *
  21.  * @author Paulina
  22.  */
  23. public class okno extends JFrame {
  24.  
  25.     int licznik;
  26.     int ostX;
  27.     int ostY;
  28.     void koniec (int wz, int wd, int liczba){
  29.         if(wd==liczba){
  30.             JOptionPane.showMessageDialog(this,"Szukasz jak algorytm dynamiczny czyli:"+wd,"OK",JOptionPane.WARNING_MESSAGE);
  31.         }
  32.         if(wz==liczba&&wz!=wd){
  33.             JOptionPane.showMessageDialog(this,"Szukasz jak algorytm zachlanny czyli: "+wz+", optymalny wynik wynosił: "+wd,"Eee tam",JOptionPane.WARNING_MESSAGE);
  34.         }
  35.         if(liczba<wz&&liczba>wd){
  36.             JOptionPane.showMessageDialog(this,"Szukasz lepiej jak algorytm zachlanny ("+wz+"). Twoj wynik to "+liczba+",ale optymalny wynik wynosił: "+wd,"niech bedzie",JOptionPane.WARNING_MESSAGE);
  37.         }
  38.         if(wz<liczba){
  39.             JOptionPane.showMessageDialog(this,"SLABO","wtf",JOptionPane.WARNING_MESSAGE);
  40.         }
  41.         if(wd>liczba){
  42.             JOptionPane.showMessageDialog(this,"WOW LOL ERROR 404, Adam cos schrzanił ","ERROR",JOptionPane.WARNING_MESSAGE);
  43.         }
  44.     }
  45.     void petla(){
  46.         JOptionPane.showMessageDialog(this,"Koniec bo pętla","GAME OVER",JOptionPane.WARNING_MESSAGE);
  47.     }
  48.     public okno(labirynt lab) {
  49.         final JButton button[][];
  50.         final int x = lab.getX();
  51.         final int y = lab.getY();
  52.         final int[][] tab = lab.getMemory();
  53.         final int wynikZachlannie=lab.zachlannie();
  54.         final int wynikDynamicznie=lab.dynamicznie();
  55.         licznik = -1;
  56.         ostX= -2;
  57.         ostY= -2;
  58.         int butt;
  59.         button = new JButton[x][y];
  60.         JPanel panel;
  61.         setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  62.         Container c = getContentPane();
  63.         c.setLayout(new GridLayout(x, 1));
  64.         final ImageIcon puste = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\puste.png");
  65.         ImageIcon start = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\start.png");
  66.         ImageIcon meta = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\meta.png");
  67.         ImageIcon sciana = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\sciana.png");
  68.         final ImageIcon wybor = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\wybierz.png");
  69.         final ImageIcon droga = new ImageIcon("D:\\STUDIA\\II ROK\\IV SEMESTR\\SI\\miniprojekt\\pr\\droga.png");
  70.         for (int i = 0; i < x; i++) {
  71.             panel = new JPanel();
  72.             panel.setLayout(new GridLayout(1, y));
  73.             for (int j = 0; j < y; j++) {
  74.                 butt = tab[i][j];
  75.                 switch (butt) {
  76.                     case (0):
  77.                         button[i][j] = new JButton(puste);
  78.                         break;
  79.                     case (1):
  80.                         button[i][j] = new JButton(sciana);
  81.                         break;
  82.                     case (2):
  83.                         button[i][j] = new JButton(start);
  84.                         break;
  85.                     case (3):
  86.                         button[i][j] = new JButton(meta);
  87.                         break;
  88.                 }
  89.                 panel.add(button[i][j]);
  90.             }
  91.             c.add(panel);
  92.         }
  93.         pack();
  94.         setVisible(true);
  95.         final int[][] track = new int[x][y];
  96.         for (int i = 0; i < x; i++) {
  97.             for (int j = 0; j < y; j++) {
  98.                 track[i][j] = 0;
  99.             }
  100.         }
  101.         final ActionListener przycisk;
  102.         przycisk = new ActionListener() {
  103.             @Override
  104.             public void actionPerformed(ActionEvent e) {
  105.                 JButton source = (JButton) e.getSource();
  106.                 int parK = 0;
  107.                 for (int i = 0; i < x; i++) {
  108.                     for (int j = 0; j < y; j++) {
  109.                         if (source == button[i][j]) {
  110.                             System.out.println(i + " " + j);
  111.                             //poczatek
  112.                             if (licznik == -1) {
  113.                                 if (tab[i][j] == 2) {
  114.                                     licznik++;
  115.                                     track[i][j] = 1;
  116.                                     //gora
  117.                                     if (i != 0) {
  118.                                         if (tab[i - 1][j] == 0) {
  119.                                             button[i - 1][j].setIcon(wybor);
  120.                                         }
  121.                                     }
  122.                                     //dol
  123.                                     if (i != x - 1) {
  124.                                         if (tab[i + 1][j] == 0) {
  125.                                             button[i + 1][j].setIcon(wybor);
  126.                                         }
  127.                                     }
  128.                                     //lewo
  129.                                     if (j != 0) {
  130.                                         if (tab[i][j - 1] == 0) {
  131.                                             button[i][j - 1].setIcon(wybor);
  132.                                         }
  133.                                     }
  134.                                     //prawo
  135.                                     if (j != y - 1) {
  136.                                         if (tab[i][j + 1] == 0) {
  137.                                             button[i][j + 1].setIcon(wybor);
  138.                                         }
  139.                                     }
  140.                                 }
  141.                             } else {
  142.                                 //final
  143.                                 if (tab[i][j] == 3) {
  144.                                    
  145.                                     if (i != 0) {
  146.                                         //gora
  147.                                         if (track[i - 1][j] == 1 && ostX==i-1 && ostY == j) {
  148.                                             licznik++;
  149.                                             koniec(wynikZachlannie, wynikDynamicznie, licznik);
  150.                                             parK++;
  151.                                         }
  152.                                     }
  153.                                     //dol
  154.                                     if (i != x - 1) {
  155.                                         if (track[i + 1][j] == 1 && parK==0 && ostX==i+1 && ostY == j) {
  156.                                             licznik++;
  157.                                             koniec(wynikZachlannie, wynikDynamicznie, licznik);
  158.                                             parK++;
  159.                                         }
  160.                                     }
  161.                                     //lewo
  162.                                     if (j != 0) {
  163.                                         if (track[i][j - 1] == 1 && parK==0 && ostX==i && ostY == j-1) {
  164.                                             licznik++;
  165.                                             koniec(wynikZachlannie, wynikDynamicznie, licznik);
  166.                                             parK++;
  167.                                         }
  168.                                     }
  169.                                     //prawo
  170.                                     if (j != y - 1) {
  171.                                         if (track[i][j + 1] == 1 && parK==0 && ostX==i && ostY == j+1) {
  172.                                             licznik++;
  173.                                             koniec(wynikZachlannie, wynikDynamicznie, licznik);
  174.                                             parK++;
  175.                                         }
  176.                                     }
  177.                                 } else {
  178.                                     //droga
  179.                                     if (tab[i][j] == 0 && track[i][j] == 0 &&button[i][j].getIcon().equals(wybor)) {
  180.                                         int t=0;
  181.                                         int iloscWyboru = 0;
  182.                                         //gora
  183.                                         if (i != 0) {
  184.                                             if (track[i - 1][j] == 1) {
  185.                                                 //czyszczenie
  186.                                                 for (int a = 0; a < x; a++) {
  187.                                                     for (int b = 0; b < y; b++) {
  188.                                                         if (tab[a][b] == 0) {
  189.                                                             if (track[a][b] == 1) {
  190.                                                                 button[a][b].setIcon(droga);
  191.                                                             } else {
  192.                                                                 button[a][b].setIcon(puste);
  193.                                                             }
  194.                                                         }
  195.                                                     }
  196.                                                 }
  197.  
  198.                                                 //gora
  199.                                                 if (i != 0) {
  200.                                                     if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
  201.                                                         button[i - 1][j].setIcon(wybor);
  202.                                                         iloscWyboru++;
  203.                                                     }
  204.                                                 }
  205.                                                 //dol
  206.                                                 if (i != x - 1) {
  207.                                                     if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
  208.                                                         button[i + 1][j].setIcon(wybor);
  209.                                                         iloscWyboru++;
  210.                                                     }
  211.                                                 }
  212.                                                 //lewo
  213.                                                 if (j != 0) {
  214.                                                     if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
  215.                                                         button[i][j - 1].setIcon(wybor);
  216.                                                         iloscWyboru++;
  217.                                                     }
  218.                                                 }
  219.                                                 //prawo
  220.                                                 if (j != y - 1) {
  221.                                                     if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
  222.                                                         button[i][j + 1].setIcon(wybor);
  223.                                                         iloscWyboru++;
  224.                                                     }
  225.                                                 }
  226.                                                 t=1;
  227.                                             }
  228.                                         }
  229.                                         //dol
  230.                                         if (i != x - 1) {
  231.                                             if (track[i + 1][j] == 1 ) {
  232.                                                 //czyszczenie
  233.                                                 for (int a = 0; a < x; a++) {
  234.                                                     for (int b = 0; b < y; b++) {
  235.                                                         if (tab[a][b] == 0) {
  236.                                                             if (track[a][b] == 1) {
  237.                                                                 button[a][b].setIcon(droga);
  238.                                                             } else {
  239.                                                                
  240.                                                                 button[a][b].setIcon(puste);
  241.                                                             }
  242.                                                         }
  243.                                                     }
  244.                                                 }
  245.                                                 //gora
  246.                                                 if (i != 0) {
  247.                                                     if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
  248.                                                         button[i - 1][j].setIcon(wybor);
  249.                                                         iloscWyboru++;
  250.                                                     }
  251.                                                 }
  252.                                                 //dol
  253.                                                 if (i != x - 1) {
  254.                                                     if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
  255.                                                         button[i + 1][j].setIcon(wybor);
  256.                                                         iloscWyboru++;
  257.                                                     }
  258.                                                 }
  259.                                                 //lewo
  260.                                                 if (j != 0) {
  261.                                                     if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
  262.                                                         button[i][j - 1].setIcon(wybor);
  263.                                                         iloscWyboru++;
  264.                                                     }
  265.                                                 }
  266.                                                 //prawo
  267.                                                 if (j != y - 1) {
  268.                                                     if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
  269.                                                         button[i][j + 1].setIcon(wybor);
  270.                                                         iloscWyboru++;
  271.                                                     }
  272.                                                 }
  273.                                                 t=1;
  274.                                             }
  275.                                         }
  276.                                         //lewo
  277.                                         if (j != 0) {
  278.                                             if (track[i][j - 1] == 1) {
  279.                                                 //czyszczenie
  280.                                                 for (int a = 0; a < x; a++) {
  281.                                                     for (int b = 0; b < y; b++) {
  282.                                                         if (tab[a][b] == 0) {
  283.                                                             if (track[a][b] == 1) {
  284.                                                                 button[a][b].setIcon(droga);
  285.                                                             } else {
  286.  
  287.                                                                 button[a][b].setIcon(puste);
  288.                                                             }
  289.                                                         }
  290.                                                     }
  291.                                                 }
  292.                                                 //gora
  293.                                                 if (i != 0) {
  294.                                                     if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
  295.                                                         button[i - 1][j].setIcon(wybor);
  296.                                                         iloscWyboru++;
  297.                                                     }
  298.                                                 }
  299.                                                 //dol
  300.                                                 if (i != x - 1) {
  301.                                                     if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
  302.                                                         button[i + 1][j].setIcon(wybor);
  303.                                                         iloscWyboru++;
  304.                                                     }
  305.                                                 }
  306.                                                 //lewo
  307.                                                 if (j != 0) {
  308.                                                     if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
  309.                                                         button[i][j - 1].setIcon(wybor);
  310.                                                         iloscWyboru++;
  311.                                                     }
  312.                                                 }
  313.                                                 //prawo
  314.                                                 if (j != y - 1) {
  315.                                                     if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
  316.                                                         button[i][j + 1].setIcon(wybor);
  317.                                                         iloscWyboru++;
  318.                                                     }
  319.                                                 }
  320.                                                 t=1;
  321.                                             }
  322.                                         }
  323.                                         //prawo
  324.                                         if (j != y - 1) {
  325.                                             if (track[i][j + 1] == 1) {
  326.                                                 //czyszczenie
  327.                                                 for (int a = 0; a < x; a++) {
  328.                                                     for (int b = 0; b < y; b++) {
  329.                                                         if (tab[a][b] == 0) {
  330.                                                             if (track[a][b] == 1) {
  331.                                                                 button[a][b].setIcon(droga);
  332.                                                             } else {
  333.  
  334.                                                                 button[a][b].setIcon(puste);
  335.                                                             }
  336.                                                         }
  337.                                                     }
  338.                                                 }
  339.                                                 //gora
  340.                                                 if (i != 0) {
  341.                                                     if (tab[i - 1][j] == 0 && track[i - 1][j] == 0) {
  342.                                                         button[i - 1][j].setIcon(wybor);
  343.                                                         iloscWyboru++;
  344.                                                     }
  345.                                                 }
  346.                                                 //dol
  347.                                                 if (i != x - 1) {
  348.                                                     if (tab[i + 1][j] == 0 && track[i + 1][j] == 0) {
  349.                                                         button[i + 1][j].setIcon(wybor);
  350.                                                         iloscWyboru++;
  351.                                                     }
  352.                                                 }
  353.                                                 //lewo
  354.                                                 if (j != 0) {
  355.                                                     if (tab[i][j - 1] == 0 && track[i][j - 1] == 0) {
  356.                                                         button[i][j - 1].setIcon(wybor);
  357.                                                         iloscWyboru++;
  358.                                                     }
  359.                                                 }
  360.                                                 //prawo
  361.                                                 if (j != y - 1) {
  362.                                                     if (tab[i][j + 1] == 0 && track[i][j + 1] == 0) {
  363.                                                         button[i][j + 1].setIcon(wybor);
  364.                                                         iloscWyboru++;
  365.                                                     }
  366.                                                 }
  367.                                                 t=1;
  368.                                             }
  369.                                         }
  370.                                         if(t==1){
  371.                                             button[i][j].setIcon(droga);
  372.                                             track[i][j] = 1;
  373.                                             licznik++;
  374.                                             ostX=i;
  375.                                             ostY=j;
  376.                                         }
  377.                                         //petla
  378.                                         if(iloscWyboru==0){
  379.                                                 int p=0;
  380.                                                 //gora
  381.                                                 if (i != 0 && tab[i - 1][j] == 3) {
  382.                                                     p++;
  383.                                                 }
  384.                                                 //dol
  385.                                                 if (i != x - 1&& tab[i + 1][j] == 3) {
  386.                                                     p++;
  387.                                                 }
  388.                                                 //lewo
  389.                                                 if (j != 0 && tab[i][j - 1] == 3) {
  390.                                                     p++;
  391.                                                 }
  392.                                                 //prawo
  393.                                                 if (j != y - 1 && tab[i][j + 1] == 3 ) {
  394.                                                     p++;
  395.                                                 }
  396.                                                 if(p==0){
  397.                                                     petla();
  398.                                                 }
  399.                                                
  400.                                         }
  401.                                         //System.out.println(licznik+" ");
  402.                                     }
  403.  
  404.                                 }
  405.                             }
  406.                         }
  407.                     }
  408.                 }
  409.  
  410.             }
  411.         };
  412.         for (int i = 0; i < x; i++) {
  413.             for (int j = 0; j < y; j++) {
  414.                 button[i][j].addActionListener(przycisk);
  415.             }
  416.         }
  417.     }
  418.  
  419. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement