Kurtbeyi
Misafir Editör
Kod:
//Bu program labirentte cikis yolu bulan programdir.\\
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
**** goster(int lab[100][100],int n)
{
int i,j;
printf(" \n");
for (i=1;i<=n-1;i++)
{
for (j=1;j<=n-1;j++)
{
printf(" %d ",lab[i][j]);
}
printf(" \n");
}
}
int initialize(int lab[100][100],int n)
{ int i,j;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (lab[i][j]==3)
lab[i][j]=0;
printf("\n");
return(-1);
}
int git(int lab[100][100],int n,int x,int y)
{
char yol;
if (lab[x+1][y]==0)
{
lab[x][y]=3;
printf("Aa§�.>");
x=x+1; y=y;
}
else if (lab[x-1][y]==0)
{
lab[x][y]=3;
printf("yukar�.>");
x=x-1; y=y;
}
else if (lab[x][y+1]==0)
{
lab[x][y]=3;
printf("Sa§a.>");
x=x; y=y+1;
}
else if (lab[x][y-1]==0)
{
lab[x][y]=3;printf("Sola.>");
x=x; y=y-1;
}
else if (x==n && y==n)
{
printf("Labirent tamamland�.");
}
else
{
lab[x][y]=8;
initialize(lab,n);
goster(lab,n);
return(-1);
}
git(lab,n,x,y);
}
main()
{
int sayac,x,y,n,i,j,lab[100][100],tempX[100],tempY[100];
char secim;
clrscr();
sayac=0;
printf("Bir sayi (Dizi Boyutu) giriniz.:");scanf("%d",&n);
/* ierisine rastgele sayi ekle*/
n++;
for (i=0;i<=n;i++)
for (j=0;j<=n;j++)
lab[i][j]=random(2);
/* kenarlari dse */
for (i=0;i<=n;i++)
lab[0][i]=1;
for (i=0;i<n;i++)
lab[n][i]=1;
for (i=0;i<=n;i++)
lab[i][0]=1;
for (i=0;i<n;i++)
lab[i][n]=1;
/* labirenti gster*/
printf(" \n");
for (i=1;i<=n-1;i++)
{
printf("\n\n");
for (j=1;j<=n-1;j++)
{
printf(" %d ",lab[i][j]);
}
printf(" \n");
}
git(lab,n,1,1);
secim='e';
while (secim=='E' || secim=='e')
{
printf("Alternatif Baska Bir Yol denemek istiyormusunuz.... [E/e]");
secim=getch();
if (secim=='E' || secim=='e')
git(lab,n,1,1); else break;
}
getch();
}