Advertisement
Guest User

Untitled

a guest
May 29th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.55 KB | None | 0 0
  1. public String obliczanieSciezki(int x, int y, int gracz){
  2.                
  3.             if(gracz==1){
  4.                 if(plansza[x][y]==1){
  5.                     if(x>=2&x<=13&&y>=2&&y<=13){
  6.                         if(plansza[x-2][y+1]==0 &&plansza[x-1][y]==0&&plansza[x-1][y+1]==0 && gora==0){
  7.                             return dodajRuch(x-2,y+1,1);
  8.                         }
  9.                         else if(plansza[x-2][y+1]==1){
  10.                             if(plansza[x-1][y]==2) return dodajRuch(x-1,y+1,1);
  11.                             else if(plansza[x-1][y+1]==2) return dodajRuch(x-1,y,1);
  12.                             else if(plansza[x-1][y]==0&&plansza[x-1][y+1]==0 && gora ==0) return obliczanieSciezki(x-2,y+1,1);
  13.                         }
  14.                         else if(plansza[x+2][y-1]==0 && plansza[x+1][y]==0&&plansza[x+1][y-1]==0){
  15.                             return dodajRuch(x+2,y-1,1);
  16.                         }
  17.                         else if(plansza[x+2][y-1]==1){
  18.                             if(plansza[x+1][y-1]==2) return dodajRuch(x+1,y,1);
  19.                             else if(plansza[x+1][y]==2) return dodajRuch(x+1,y-1,1);
  20.                             else if(plansza[x+1][y-1]==0&&plansza[x+1][y]==0) return obliczanieSciezki(x+2,y-1,1);
  21.                         }
  22.                         else if(plansza[x-1][y-1]==0 && plansza[x][y-1]==0&&plansza[x-1][y]==0){
  23.                             return dodajRuch(x-1,y-1,1);
  24.                         }
  25.                         else if(plansza[x-1][y-1]==1){
  26.                             if(plansza[x][y-1]==2) return dodajRuch(x-1,y,1);
  27.                             else if(plansza[x-1][y]==2) return dodajRuch(x,y-1,1);
  28.                             else if(plansza[x][y-1]==0&&plansza[x-1][y]==0) return obliczanieSciezki(x-1,y-1,1);
  29.                         }
  30.                         else if(plansza[x+1][y+1]==0 && plansza[x+1][y]==0&&plansza[x][y+1]==0){
  31.                             return dodajRuch(x+1,y+1,1);
  32.                         }
  33.                         else if(plansza[x+1][y+1]==1){
  34.                             if(plansza[x+1][y]==2) return dodajRuch(x,y+1,1);
  35.                             else if(plansza[x][y+1]==2) return dodajRuch(x+1,y,1);
  36.                             else if(plansza[x+1][y]==0&&plansza[x][y+1]==0) return obliczanieSciezki(x+1,y+1,1);
  37.                         }
  38.                         else if(plansza[x+1][y-2]==0 && plansza[x][y-1]==0&&plansza[x+1][y-1]==0){
  39.                             return dodajRuch(x+1,y-2,1);
  40.                         }
  41.                         else if(plansza[x+1][y-2]==1){
  42.                             if(plansza[x][y-1]==2) return dodajRuch(x+1,y-1,1);
  43.                             else if(plansza[x+1][y-1]==2) return dodajRuch(x,y-1,1);
  44.                             else if(plansza[x][y-1]==0&&plansza[x+1][y-1]==0) return obliczanieSciezki(x+1,y-2,1);
  45.                         }
  46.                         else if(plansza[x-1][y+2]==0 && plansza[x][y+1]==0&&plansza[x-1][y+1]==0){
  47.                             return dodajRuch(x-1,y+2,1);
  48.                         }
  49.                         else if(plansza[x-1][y+2]==1){
  50.                             if(plansza[x][y+1]==2) return dodajRuch(x-1,y+1,1);
  51.                             else if(plansza[x-1][y+1]==2) return dodajRuch(x,y+1,1);
  52.                             else if(plansza[x][y+1]==0&&plansza[x-1][y+1]==0) return obliczanieSciezki(x-1,y+2,1);
  53.                         }
  54.                        
  55.                     }
  56.                 else if(x==1&&y>=1&&y<=14){
  57.                     if(plansza[x-1][y]==1){
  58.                         gora=1;
  59.                         return obliczanieSciezki(x+2,y-1,1);
  60.                     }
  61.                     else if(plansza[x-1][y+1]==1){
  62.                         gora=1;
  63.                         return obliczanieSciezki(x+2,y-1,1);
  64.                     }
  65.                     else if(plansza[x-1][y]==0) return dodajRuch(x-1,y,1);
  66.                        else if(plansza[x-1][y+1]==0) return dodajRuch(x-1,y+1,1);
  67.                        else if(plansza[x][y-1]==0){
  68.                            return dodajRuch(x,y-1,1);
  69.                        }
  70.                        else if(plansza[x][y+1]==0){
  71.                            return dodajRuch(x,y+1,1);
  72.                        }
  73.                        else if(plansza[x][y-1]==1) return obliczanieSciezki(x,y-1,1);
  74.                        else if(plansza[x][y+1]==1) return obliczanieSciezki(x,y+1,1);
  75.                     }
  76.                     if(x==14&&y>=1&&y<=14){
  77.                         if(plansza[x-1][y]==0) return wynikD(x-1,y);
  78.                         if(plansza[x-1][y-1]==0) return wynikD(x-1,y-1);
  79.                         if(plansza[x][y-1]==0) return wynikD(x,y-1);
  80.                         if(plansza[x][y+1]==0) return wynikD(x,y+1);
  81.                     }
  82.                 }
  83.             }
  84.             else{
  85.                 if(plansza[x][y]==2){
  86.                     if(y>=2&y<=13&&x>=2&&x<=13){
  87.                         if(plansza[x+1][y-2]==0 && (plansza[x][y-1]==0&&plansza[x+1][y-1]==0)){
  88.                             return wynikD(x+1,y-2);
  89.                         }
  90.                         if(plansza[x+1][y-2]==2){
  91.                             if(plansza[x][y-1]==1) return wynikD(x+1,y-1);
  92.                             if(plansza[x+1][y-1]==1) return wynikD(x,y-2);
  93.                             if(plansza[x][y-1]==0&&plansza[x+1][y-1]==0) obliczanieSciezki(x+1,y-2,2);
  94.                         }
  95.                         if(plansza[x-1][y+2]==0 && (plansza[x-1][y+1]==0&&plansza[x][y+1]==0)){
  96.                             return wynikD(x-1,y+2);
  97.                         }
  98.                         if(plansza[x-1][y+2]==2){
  99.                             if(plansza[x-1][y+1]==1) return wynikD(x,y+1);
  100.                             if(plansza[x][y+1]==1) return wynikD(x-1,y+1);
  101.                             if(plansza[x-1][y+1]==0&&plansza[x][y+1]==0) obliczanieSciezki(x-1,y+2,2);
  102.                         }
  103.                         if(plansza[x-1][y-1]==0 && (plansza[x][y-1]==0&&plansza[x-1][y]==0)){
  104.                             return wynikD(x-1,y-1);
  105.                         }
  106.                         if(plansza[x-1][y-1]==2){
  107.                             if(plansza[x][y-1]==1) return wynikD(x-1,y);
  108.                             if(plansza[x-1][y]==1) return wynikD(x,y-1);
  109.                             if(plansza[x][y-1]==0&&plansza[x-1][y]==0) obliczanieSciezki(x-1,y-1,2);
  110.                         }
  111.                         if(plansza[x+1][y+1]==0 && (plansza[x+1][y]==0&&plansza[x][y+1]==0)){
  112.                             return wynikD(x+1,y+1);
  113.                         }
  114.                         if(plansza[x+1][y+1]==2){
  115.                             if(plansza[x+1][y]==1) return wynikD(x,y+1);
  116.                             if(plansza[x][y+1]==1) return wynikD(x+1,y);
  117.                             if(plansza[x+1][y]==0&&plansza[x][y+1]==0) obliczanieSciezki(x+1,y+1,2);
  118.                         }
  119.                         if(plansza[x-2][y+1]==0 && (plansza[x-1][y]==0&&plansza[x-1][y+1]==0)){
  120.                             return wynikD(x-2,y+1);
  121.                         }
  122.                         if(plansza[x-2][y+1]==2){
  123.                             if(plansza[x-1][y]==1) return wynikD(x-1,y+1);
  124.                             if(plansza[x-1][y+1]==1) return wynikD(x-1,y);
  125.                             if(plansza[x-1][y]==0&&plansza[x-1][y+1]==0) obliczanieSciezki(x-2,y+1,2);
  126.                         }
  127.                         if(plansza[x+2][y-1]==0 && (plansza[x+1][y-1]==0&&plansza[x+1][y]==0)){
  128.                             return wynikD(x+2,y-1);
  129.                         }
  130.                         if(plansza[x+2][y-1]==2){
  131.                             if(plansza[x+1][y-1]==1) return wynikD(x+1,y);
  132.                             if(plansza[x+1][y]==1) return wynikD(x+1,y-1);
  133.                             if(plansza[x+1][y-1]==0&&plansza[x+1][y]==0) obliczanieSciezki(x+2,y-1,2);
  134.                         }
  135.                     }
  136.                     if(y==1&&x>=1&&x<=14){
  137.                        if(plansza[x][y-1]==0) return wynikD(x,y-1);
  138.                        if(plansza[x+1][y-1]==0) return wynikD(x+1,y-1);
  139.                        if(plansza[x+1][y]==0){
  140.                            return wynikD(x+1,y);
  141.                        }
  142.                        if(plansza[x-1][y]==0){
  143.                            return wynikD(x-1,y);
  144.                        }
  145.                     }
  146.                     if(y==14&&x>=1&&x<=14){
  147.                         if(plansza[x][y+1]==0) return wynikD(x,y+1);
  148.                         if(plansza[x-1][y+1]==0) return wynikD(x-1,y+1);
  149.                         if(plansza[x+1][y]==0){
  150.                            return wynikD(x+1,y);
  151.                         }
  152.                         if(plansza[x-1][y]==0){
  153.                             return wynikD(x-1,y);
  154.                         }
  155.                     }
  156.                 }
  157.             }
  158.        
  159.         return wynikD(0,0);
  160.     }
  161.    
  162.     //<editor-fold defaultstate="collapsed" desc="Crtl + myszka najedz na algorytm">
  163.     /**
  164.      * Funkcja powinna zwracac <code>x,y</code>, przetworzone przez algorytm.
  165.      *
  166.      * <p>Wspolzedne, ktore wygenerujesz wrzuc do funkcji wynikD(int x, int y) i to zwroc:
  167.      * <pre>
  168.      *  return dodajRuch(x, y, gracz);
  169.      * </pre></p>
  170.      * @param gracz nasz pionek
  171.      * @return wynikD(x, y)
  172.      */
  173.     //</editor-fold>
  174.     public String algorytm(int gracz){
  175.         if(gracz==1){
  176.             for(int j=0;j<=15;j++){
  177.                 if(plansza[j][0]==2) pomocnicza1++;
  178.             }
  179.             if(pomocnicza1==0&&I<=15){
  180.                
  181.                 I++;
  182.                 pomocnicza1=0;
  183.                 return dodajRuch(I-1,0,1);
  184.             }
  185.            
  186.             else if(plansza[7][7]==0){
  187.                 return dodajRuch(7,7,1);
  188.             }
  189.             else if(plansza[7][7]==1){
  190.                 return obliczanieSciezki(7,7,1);
  191.             }
  192.             else if(plansza[7][8]==0){
  193.                 return dodajRuch(7,8,1);
  194.             }
  195.             else if(plansza[7][8]==1){
  196.                 return obliczanieSciezki(7,8,1);
  197.             }
  198.             else if(plansza[8][7]==0){
  199.                 return dodajRuch(8,7,1);
  200.             }
  201.             else if(plansza[8][7]==1){
  202.                 return obliczanieSciezki(8,7,1);
  203.             }
  204.             else if(plansza[8][8]==0){
  205.                 return dodajRuch(8,8,1);
  206.             }
  207.             else {
  208.             return obliczanieSciezki(8,8,1);
  209.         }
  210.            
  211.         }
  212.         else{
  213.             for(int j=0;j<=15;j++){
  214.                 if(plansza[15][j]==1) pomocnicza1++;
  215.             }
  216.             if(pomocnicza1==0&&I<=15){
  217.                
  218.                 I++;
  219.                 pomocnicza1=0;
  220.                 return dodajRuch(0,I-1,2);
  221.             }
  222.            
  223.             else if(plansza[7][7]==0){
  224.                 return dodajRuch(7,7,2);
  225.             }
  226.             else if(plansza[7][7]==2){
  227.                 return obliczanieSciezki(7,7,2);
  228.             }
  229.             else if(plansza[7][8]==0){
  230.                 return dodajRuch(7,8,2);
  231.             }
  232.             else if(plansza[7][8]==2){
  233.                 return obliczanieSciezki(7,8,2);
  234.             }
  235.             else if(plansza[8][7]==0){
  236.                 return dodajRuch(8,7,2);
  237.             }
  238.             else if(plansza[8][7]==2){
  239.                 return obliczanieSciezki(8,7,2);
  240.             }
  241.             else if(plansza[8][8]==0){
  242.                 return dodajRuch(8,8,2);
  243.             }
  244.             else {
  245.             return obliczanieSciezki(8,8,2);
  246.         }
  247.            
  248.         }
  249.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement