C İle İlgili Acil Yapılması Gerek Bir Ödev !
-
bizim bi öedvimiz vardı c de labirent oyunu yapcaktık
ben yaptım sayılır da
labirentin gittiği yolu
yıldızlarla belli etmek istiyorum
yani yolun koordinarlarıbelli
onları şekille göstermek istiyorum
nasıl yapabılırım
bu konuda bi bilgin varmı
çok sevgili bir dostum söyledi acil gerekirmis acıklamasını yaptı zaten nasıl yardımcı olabilriiz ben anlamam c den felan anlayanlar bi yardımcı olabilirmi
-
beyler çok acil bi el atın
#include
int main()
{
int matris[30][30]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0},
{1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0}};
int i,j,p,d;
int k=0,e;
int a[300]={0},b[300]={0},c[30]={0};
for(i=0;i<30;i++)
{
for(j=0;j<30;j++){
printf("%d",matris[i][j]);
}
}
j=0;
for(i=0;i<30;i++){
if(matris[i][0]==1){
c[j]=i;
j++;
}
}
for(d=c[0];c[d]!=0;d++)
{
k=0;
e=0;
j=0;
i=c[d];
matris[i][j]=4;
a[k]=i;
b[k]=j;
k++;
while(j<29&&e==0){
if(matris[i][j+1]==1)
{
printf("saga\n");
matris[i][j]=4;
j=j+1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i+1][j]==1)
{
printf("asagi\n");
matris[i][j]=4;
i=i+1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i-1][j]==1)
{
matris[i][j]=4;
printf("yukari\n");
i=i-1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i][j-1]==1)
{
printf("sola\n");
matris[i][j]=4;
j=j-1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i][j-1]==4)
{
printf("tekrar sola\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
j=j-1;
if(j==0)
e=1;
}
else if(matris[i+1][j]==4)
{
printf("tekrar asagi\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
i=i+1;
}
else if(matris[i-1][j]==4)
{
printf("tekrar yukari\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
i=i-1;
}
else if(matris[i][j+1]==4)
{
printf("tekrar saga\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
j=j+1;
}
}
}
printf("cikis yapildi.\n");
printf("ilerleme koordinatlari:\n");
for(k=0;k<300;k++)
if(a[k]!=0||b[k]!=0)
printf("%d,%d\n",a[k],b[k]);
return 0;
}
-
beyler inanın çok acil anlayan boş gecmesin lütfen
-
Birincisi bu kod labirenti doğru çizmiyor, ikincisi bende yazan çıktı (saga ,tekrar sola, çıkıldı) sence bu doğru bir çözüm mü?
Yani önce kodu doğru yazıp çıkma algoritmasını yaz, sonra gittiğin yolu * lamak kolay, ben bir gotoxy yazayım senin için.
************************** gotoxy
void gotoxy(int x,int y) {
COORD kord;
kord.X = x;
kord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kord);
}************************
Koordinata gidip * ı basacaksın, ayrıca sana düzenlediğim kodu veriyorum, satır silmekten ve tablamaktan ellerim uyuştu, sanırım hocanız belli bir satır altındaki programı kabul etmiyor :)
Senin programın çıktısı ..

Olması gereken çıktı ...

Düzenlenmiş program kodu...
***************************************
#include <stdio.h>
int main()
{
int matris[30][30]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0},
{1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0}};
int i,j,p,d;
int k=0,e;
int a[300]={0},b[300]={0},c[30]={0};
for(i=0;i<30;i++)
{
for(j=0;j<30;j++){
printf("%d",matris[i][j]);
}
printf("\n");
}
j=0;
for(i=0;i<30;i++){
if(matris[i][0]==1){
c[j]=i;
j++;
}
}
printf("\n\n");
for(d=c[0];c[d]!=0;d++)
{
k=0;
e=0;
j=0;
i=c[d];
matris[i][j]=4;
a[k]=i;
b[k]=j;
k++;
while(j<29 && e==0){
if(matris[i][j+1]==1)
{
printf("saga\n");
matris[i][j]=4;
j=j+1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i+1][j]==1)
{
printf("asagi\n");
matris[i][j]=4;
i=i+1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i-1][j]==1)
{
matris[i][j]=4;
printf("yukari\n");
i=i-1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i][j-1]==1)
{
printf("sola\n");
matris[i][j]=4;
j=j-1;
a[k]=i;
b[k]=j;
k++;
}
else if(matris[i][j-1]==4)
{
printf("tekrar sola\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
j=j-1;
if(j==0)
e=1;
}
else if(matris[i+1][j]==4)
{
printf("tekrar asagi\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
i=i+1;
}
else if(matris[i-1][j]==4)
{
printf("tekrar yukari\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
i=i-1;
}
else if(matris[i][j+1]==4)
{
printf("tekrar saga\n");
matris[i][j]=3;
a[k]=0;
b[k]=0;
k--;
j=j+1;
}
}
}
printf("cikis yapildi.\n");
printf("ilerleme koordinatlari:\n");
for(k=0;k<300;k++)
if(a[k]!=0||b[k]!=0)
printf("%d,%d\n",a[k],b[k]);
getchar();
return 0;
}
************************************ -
hocam * lamak olayını anlatırsa yani kodunu yazarsa ben eklerim diyo acil okula gitmesi gerekiyomus
-
Hoca o algoritmanın doğru çalışmadığını söyledim, zaten o kadar basit de değil, tek bir yol varken tamam, ama 10 dala ayrılıp, her birinin ucu kapalıysa onlardan dönüp tekrar doğru yolları test etmeye devam etmesi görüntüğü kadar kolay değil.
Ben sana istediğin programı, ve özyinelemeli algoritmayı yazdım, gotoxy kullanımı da içinde, yıldızladım yolu , ister kullanırsınız ister kullanmazsınız.
Ekran görüntüsü.

Bu da kaynak kodu
***********************************
#include <stdio.h>
#include <windows.h>
#define BOY 30
#define sag 1
#define sol 2
#define ust 3
#define alt 4
#define SON 5
int adim(int(*lab)[BOY] ,int gelis,int x,int y);
void gotoxy(int x,int y);
int main(){
int i,j,k,m;
int lab[BOY][BOY]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,1},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0},
{0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0},
{1,1,1,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0},
{0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0}};
for(i=0;i<BOY;i++){
for(j=0;j<BOY;j++)
printf("%d",lab[i][j]);
printf("\n");
}
adim(lab,0,8,0);
getchar();
return 0;
}
int adim(int(*lab)[BOY] ,int gelis,int x,int y){
static durum=0,art=0;
gotoxy(y,x);
putchar('*');
gotoxy(0,30+(++art));
printf("%d %d %d\n",x,y,gelis);
if(x==BOY-1 || y==BOY-1) {printf("Bitti\n"); getchar();}
if(y<BOY && lab[x][y+1] && gelis!=sag) adim(lab,sol,x,y+1);
if(x<BOY && lab[x+1][y] && gelis!=alt) adim(lab,ust,x+1,y);
if(x>1 && lab[x-1][y] && gelis!=ust) adim(lab,alt,x-1,y);
if(y>1 && lab[x][y-1] && gelis!=sol) adim(lab,sag,x,y-1);
gotoxy(y,x);
putchar('1');
gotoxy(0,30+(++art));
printf("tikandi : %d - %d -- %d\n",x,y,gelis);
return 0;
}
void gotoxy(int x,int y) {
COORD kord;
kord.X = x;
kord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kord);
}
******************************************** -
teşekkür edreim dostum
-
Küçük bir düzeltme ve basitleştirme yaptım, daha kolay anlarsınız. Hem de yıldızlarla ilgili küçük bir hatayı giderdim. Son hali..
************************************
#include <stdio.h>
#include <windows.h>
#define BOY 30
#define sag 1
#define sol 2
#define ust 3
#define alt 4
#define SON 5
int adim(int(*lab)[BOY] ,int gelis,int x,int y);
void gotoxy(int x,int y);
int main(){
int i,j,k,m;
int lab[BOY][BOY]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,1},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0},
{0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0},
{1,1,1,1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0},
{0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0}};
for(i=0;i<BOY;i++){
for(j=0;j<BOY;j++)
printf("%d",lab[i][j]);
printf("\n");
}
adim(lab,0,8,0);
getchar();
return 0;
}
int adim(int(*lab)[BOY] ,int gelis,int x,int y){
static durum=0,art=0;
gotoxy(y,x);
putchar('*');
gotoxy(0,30+(++art));
printf("%d %d %d\n",x,y,gelis);
if(x==BOY-1 || y==BOY-1) {printf("Bitti\n"); getchar();}
if(y<BOY && lab[x][y+1] && gelis!=sag) adim(lab,sol,x,y+1);
if(x<BOY && lab[x+1][y] && gelis!=alt) adim(lab,ust,x+1,y);
if(x>1 && lab[x-1][y] && gelis!=ust) adim(lab,alt,x-1,y);
if(y>1 && lab[x][y-1] && gelis!=sol) adim(lab,sag,x,y-1);
gotoxy(y,x);
putchar('1');
gotoxy(0,30+(++art));
printf("tikandi : %d - %d -- %d\n",x,y,gelis);
return 0;
}
void gotoxy(int x,int y) {
COORD kord;
kord.X = x;
kord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kord);
}
************************************ -
Tugberk bunu yazdı:
-----------------------------
Küçük bir düzeltme ve basitleştirme yaptım, daha kolay anlarsınız. Hem de yıldızlarla ilgili küçük bir hatayı giderdim. Son hali..
********************************
#include
#include
#define BOY 30
#define sag 1
#define sol 2
#define ust 3
#define alt 4
#define SON 5
int adim(int(*lab)[BOY] ,int gelis,int x,int y);
void gotoxy(int x,int y);
int main(){
int i,j,k,m;
int lab[BOY][BOY]={
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0},
{0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0},
{0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0},
{1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0},
{0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0},
{0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0},
{0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0}};
for(i=0;i
for(j=0;j
printf("%d",lab[i][j]);
printf("\n");
}
adim(lab,0,8,0);
getchar();
return 0;
}
int adim(int(*lab)[BOY] ,int gelis,int x,int y){
static durum=0,art=0;
gotoxy(y,x);
putchar('*');
gotoxy(0,30+(++art));
printf("%d %d %d\n",x,y,gelis);
if(x==BOY-1 || y==BOY-1) {printf("Bitti\n"); getchar();}
if(y
if(x
if(x>1 && lab[x-1][y] && gelis!=ust) adim(lab,alt,x-1,y);
if(y>1 && lab[x][y-1] && gelis!=sol) adim(lab,sag,x,y-1);
printf("tikandi : %d - %d -- %d\n",x,y,gelis);
return 0;
}
void gotoxy(int x,int y) {
COORD kord;
kord.X = x;
kord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),kord);
}
************************************
-----------------------------hocam allah razı olsun şuan okula gitti yetiştirmeye çalışacağım dosyayı ins iş işten gecmemiştir eline koluna sağlık
