Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. public class Labyrinthe
  2. {
  3.     private int[][] aLab;
  4.  
  5.     public Labyrinthe()
  6.     {
  7.         this.aLab = new int[][] { { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
  8.             { 1 , 1 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 },
  9.             { 1 , 1 , 0 , 1 , 0 , 1 , 1 , 0 , 0 , 1 },
  10.             { 1 , 0 , 0 , 1 , 0 , 0 , 1 , 0 , 1 , 1 },
  11.             { 1 , 0 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 1 },
  12.             { 1 , 0 , 1 , 1 , 0 , 1 , 1 , 1 , 0 , 1 },
  13.             { 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 },
  14.             { 1 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 },
  15.             { 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 1 },
  16.             { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 } };
  17.     }
  18.  
  19.     public void afficher()
  20.     {
  21.         for(int[] ligne: this.aLab)
  22.         {
  23.             for(int chr: ligne)
  24.             {
  25.                 switch(chr)
  26.                 {
  27.                     case 0:
  28.                         System.out.print(" ");
  29.                         break;
  30.                     case 1:
  31.                         System.out.print("*");
  32.                         break;
  33.                     case 2:
  34.                         System.out.print(".");
  35.                         break;
  36.                     default:
  37.                 }
  38.             }
  39.             System.out.println("");
  40.         }
  41.     }
  42.  
  43.     public Point getSortie()
  44.     {
  45.         for(int x=0; x<this.aLab.length; x++)
  46.         {
  47.             if(this.aLab[0][x] == 0)
  48.             {
  49.                 return new Point(x, 0);
  50.             }
  51.             if(this.aLab[this.aLab.length - 1][x] == 0)
  52.             {
  53.                 return new Point(x, aLab.length - 1);
  54.             }
  55.             if(this.aLab[x][0] == 0)
  56.             {
  57.                 return new Point(0, x);
  58.             }
  59.             if(this.aLab[x][this.aLab.length - 1] == 0)
  60.             {
  61.                 return new Point(this.aLab.length - 1, x);
  62.             }
  63.         }
  64.         return new Point(-1, -1);
  65.     }
  66.  
  67.     public int getValue(Point p)
  68.     {
  69.         return this.getValue(p.getX(), p.getY());
  70.     }
  71.     public int getValue(int x, int y)
  72.     {
  73.         if(x < 0 || x >= this.aLab.length || y < 0 || y >= this.aLab.length)
  74.         {
  75.             return 1;
  76.         }
  77.         return this.aLab[y][x];
  78.     }
  79.     public void setValue(int x, int y, int val)
  80.     {
  81.         this.aLab[y][x] = val;
  82.     }
  83.     public void setValue(Point p, int val)
  84.     {
  85.         this.setValue(p.getX(), p.getY(), val);
  86.     }
  87.  
  88.     public boolean existeChemin(Point p)
  89.     {
  90.         return this.existeChemin(p.getX(), p.getY());
  91.     }
  92.  
  93.     public boolean existeChemin(int iX, int iY)
  94.     {
  95.         if(this.getValue(iX, iY) != 0)
  96.         {
  97.             return false;
  98.         }
  99.         else if(this.getSortie().getX() == iX && this.getSortie().getY() == iY)
  100.             return true;
  101.         else
  102.         {
  103.             this.setValue(iX, iY, 2);
  104.             if(existeChemin(iX + 1, iY))
  105.                 return true;
  106.             if(existeChemin(iX - 1, iY))
  107.                 return true;
  108.             if(existeChemin(iX, iY + 1))
  109.                 return true;
  110.             if(existeChemin(iX, iY - 1))
  111.                 return true;
  112.             return false;
  113.         }
  114.  
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement