Soyez le premier à donner votre avis sur cette source.
Snippet vu 10 333 fois - Téléchargée 29 fois
//1ére source : public class labyrinthe {public static void main ( String arg[]) {char tab[][]; int l,c,i,j,n,p,nb[],balise[]; boolean trouve=false; nb=new int[4]; balise=new int[2]; for(i=0;i<4;i++) nb[i]=i+1; creerpermut(nb); System.out.println("Donner le nb de ligne"); n=Lire.i(); System.out.println("Donner le nb de cols"); p=Lire.i(); tab=new char[n][p]; for(i=0;i<n;i++) {tab[i][0]='7'; tab[i][p-1]='7';} for(i=0;i<p;i++) {tab[0][i]='7'; tab[n-1][i]='7';} for(i=1;i<n-1;i++) for(j=1;j<p-1;j++) tab[i][j]='0'; creation(tab,nb,aleat(1,n-2),aleat(1,p-2)); affiche(tab,n,p); do{ balise(balise,n,p); }while(tab[balise[0]][balise[1]]!='*'); do{ l=aleat(1,n-1); c=aleat(1,p-1); }while(tab[l][c]!='*'); System.out.println("départ"+l+c); System.out.println("balise"+balise[0]+balise[1]); trouve=false; trouve=recherche(balise,tab,l,c,trouve); affiche(tab,n,p); System.out.println(trouve); } public static void affiche(char[][]tab,int l,int c) {int i,j; for(i=0;i<l;i++) {for(j=0;j<c;j++) System.out.print(tab[i][j]); System.out.println();} } public static void coord(int i,int j,int num,int[]tab) {switch(num) { case 1: tab[0]=i; tab[1]=j-1; break; case 2: tab[0]=i-1; tab[1]=j; break; case 3: tab[0]=i; tab[1]=j+1; break; case 4: tab[0]=i+1; tab[1]=j; break; } } public static int aleat(int i,int j) {return ((int)Math.floor(Math.random()*j+i));} public static void permut(int t[]) {int i,j,a; i=aleat(0,3); j=aleat(0,3); a=t[i]; t[i]=t[j]; t[j]=a; } public static void creerpermut(int[] t) {int a,i; a=aleat(1,10); for(i=1;i<=a;i++) permut(t); } public static boolean valide(int i,int j, char tab[][],int voisin[]) {int s,k; if(tab[i][j]=='7'||tab[i][j]=='*') return false; else { s=0; for(k=1;k<=4;k++) {coord(i,j,k,voisin); if (tab[voisin[0]][voisin[1]]=='*') s++; } return(s<=1);} } public static void creation(char tab[][],int nb[],int i,int j) {int voisin[],k,nb2[],v; nb2=new int[4]; for(v=0;v<4;v++) nb2[v]=v+1; creerpermut(nb2); voisin=new int[2]; if(valide(i,j,tab,voisin)) {tab[i][j]='*'; for(k=0;k<4;k++) {coord(i,j,nb2[k],voisin); creation(tab,nb2,voisin[0],voisin[1]);} } } public static void balise (int[] balise,int n,int p) {balise[0]=aleat(1,n-1); balise[1]=aleat(1,p-1); } public static boolean recherche(int[] balise, char[][] tab,int l,int c,boolean trouve) {int voisin[],i; boolean cherche=false; voisin =new int[2]; if(trouve!=true) { if(tab[l][c]!='7') {if(l==balise[0]&&c==balise[1]) {tab[l][c]='e'; return true;} else if(tab[l][c]=='*') {tab[l][c]='_'; for(i=1;i<=4;i++) {if (cherche==false) {coord(l,c,i,voisin); cherche=recherche(balise,tab,voisin[0],voisin[1],trouve);} } if(cherche) return true; else {tab[l][c]='a';return false;} } } } return false; } } //2éme source : public class laby2 {public static void main(String args[]) { char lab[][]; int l,c,i,j; System.out.println("lign balise?"); i=Lire.i(); System.out.println("col balise?"); j=Lire.i(); System.out.println("nb lignes?"); l=Lire.i(); System.out.println("nb colonnes?"); c=Lire.i(); lab=new char[l][c]; lab[i][j]='B'; initialisation(c,l,lab); creer_laby(1,2,lab); affichage(c,l,lab); if(l==i||j==c){ } else {if(tab[i][j]=='*') creer_che(i,j,lab); if(tab[i][j]=='0'||tab[i][j]=='7') creer_laby(i,j,lab);} } public static void initialisation(int c,int l, char t[][]) {for(int i=0;i<l;i++) {for(int j=0;j<c;j++) if(i==0||j==0||i==(l-1)||j==(c-1)) t[i][j]='7'; else t[i][j]='0'; } } public static void affichage(int c,int l,char t[][]) {for(int i=0;i<l;i++) {for(int j=0;j<c;j++) System.out.print(t[i][j]+" "); System.out.println(); } } public static boolean test(int i, int j,char t[][]) {int s=0; if(t[i][j]=='0') {if(t[i][j-1]=='*'||t[i][j-1]=='1') s++; if(t[i][j+1]=='*'||t[i][j+1]=='1') s++; if(t[i-1][j]=='*'||t[i-1][j]=='1') s++; if(t[i+1][j]=='*'||t[i+1][j]=='1') s++; if(s>1) return false; else return true; } else return false; } public static void melange(int tab[]) {int i,j,a; for(i=0;i<4;i++) tab[i]=(i+1); for(j=4;j>1;j--) {i=(int)Math.floor(Math.random()*j); a=tab[i]; tab[i]=tab[j-1]; tab[j-1]=a; } } public static void creer_laby(int i,int j,char tab[][]) {int tab2[]=new int[4]; if(test(i,j,tab)) {tab[i][j]='*'; melange(tab2); for(int k=0;k<=3;k++) {switch(tab2[k]) {case 1:creer_laby(i-1,j,tab);break; case 2:creer_laby(i,j+1,tab);break; case 3:creer_laby(i+1,j,tab);break; case 4:creer_laby(i,j-1,tab);break;} } } } public static void creer_che(int i,int j,char tab[][]) {int tab2[]=new int[4]; if(test(i,j,tab)) {tab[i][j]='1'; melange(tab2); for(int k=0;k<=3;k++) {switch(tab2[k]) {case 1:creer_che(i-1,j,tab);break; case 2:creer_che(i,j+1,tab);break; case 3:creer_che(i+1,j,tab);break; case 4:creer_che(i,j-1,tab);break;} } } } } //3éme source : public class laby {public static void main(String args[]) { char lab[][]; int l,c; System.out.println("donner nombre de lignes?"); l=Lire.intData(); System.out.println("donner le nombre de colonnes?"); c=Lire.intData(); lab=new char[l][c]; initialisation_tableau(c,l,lab); creer_labyrinthe(1,2,lab); affichage(c,l,lab); } public static void initialisation_tableau(int c,int l, char t[][]) { for (int i=0;i<l;i++) {for (int j=0;j<c;j++) if(i==0||j==0||i==(l-1)||j==(c-1)) t [i][j]='7'; else t[i][j]='0'; } } public static void affichage(int c,int l,char t[][]) { for (int i=0;i<l;i++) {for (int j=0;j<c;j++) System.out.print(t[i][j]+" "); System.out.println(); } } public static boolean test(int i,int j, char t[][]) {int s=0; if(t[i][j]=='0') {if(t[i][j-1]=='x') s++; if(t[i][j+1]=='x') s++; if(t[i-1][j]=='x') s++; if(t[i+1][j]=='x') s++; if(s>1) return false; else return true; } else return false; } public static void melange(int tab[]) {int i, j, a; for (i=0;i<4;i++) tab[i]=i+1; for (j=4;j>1;j--) {i=(int)Math.floor(Math.random()*j); a=tab[i]; tab[i]=tab[j-1]; tab[j-1]=a; } } public static void creer_labyrinthe(int i,int j, char tab [][]) {int tab2[]=new int [4];int k; if(test(i,j,tab)) {tab[i][j]='x'; melange(tab2); for(k=0;k<=3;k++) {switch(tab2[k]) {case 1:creer_labyrinthe (i-1,j,tab);break; case 2:creer_labyrinthe (i,j+1,tab);break; case 3:creer_labyrinthe (i+1,j,tab);break; case 4:creer_labyrinthe (i,j-1,tab);break; } } } } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.