RadarURL Siskom Black 4rt: Source code permainan kuda di papan catur

Kamis, 23 Februari 2012

Source code permainan kuda di papan catur

Algoritma Program :
  1. Program menampilkan instruksi kepada user untuk memasukkan koordinat x awal kuda.
  2. Program menampilkan instruksi kepada user untuk memasukkan koordinat y awal kuda.
  3. Program mengisi kotak catur yang sesuai dengan koordinat dengan angka 1 sebagai detektor.
  4. Program memanggil fungsi awal.
  5. Fungsi awal akan membersihkan layar dan menampilkan koordinat kuda yang telah ditentukan user.
  6. Fungsi awal akan menampilkan papan catur dengan dimensi 8 x 8 dan menampilkan karakter ’o’ pada  koordinat yang telah ditentukan dan telah berisi angka1.
  7. Program memanggil fungsi rekursi.
  8. Fungsi rekursi akan memeriksa koordinat sesuai dengan 8 prioritas gerakan kuda yang telah ditentukan programmer secara berurutan dan berisi angka 0.
  9. Jika koordinat tersebut telah memenuhi syarat, fungsi rekursi akan mengisi koordinat tersebut dengan angka 1. Kemudian fungsi rekursi akan memanggil fungsi sekarang.
  10. Fungsi sekarang akan membersihkan layar, menampilkan koordinat kuda yang telah memenuhi syarat, dan papan catur dengan karakter ’o’ pada koordinat tersebut dan telah berisi angka 1, karakter ‘x’ pada koordinat lain yang telah berisi angka 1 saja, dan mengisi spasi pada koordinat lainnya.
  11. Fungsi rekursi akan melakukan  rekursi berulang kali hingga koordinat yang telah memenuhi syarat tidak bisa didapatkan lagi. Selanjutnya fungsi rekursi akan menampilkan informasi bahwa kuda tidak dapat bergrak lagi dengan statemen “There’s no way out for the knight>>”. 

Source Code :

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

int kotak[8][8];

void awal(int x1,int y1)

{

int a,b;

system("cls");


printf("Koordinat awal kuda adalah : %d,%d\n",(x1+1),(y1+1));

printf("   1   2   3   4   5   6   7   8   x\n");

printf("   --- --- --- --- --- --- --- ---\n");

for(a=0;a<=14;a++)

{

if(a%2==1)

printf("   --- --- --- --- --- --- --- ---\n");

else

{

printf("%d ",(a+2)/2);

for(b=0;b<=7;b++)

{

printf("|");

if(kotak[b][a/2]==1 && b==x1 && a/2==y1)

printf(" o ");

else

printf("   ");

}

printf("|\n");

}

}

printf("   --- --- --- --- --- --- --- ---\n");

printf("y\n");

getch();

}

void sekarang(int x1,int y1)

{

int a,b;

system("cls");

printf("Koordinat kuda sekarang adalah : %d,%d\n",(x1+1),(y1+1));

printf("   1   2   3   4   5   6   7   8   x\n");

printf("   --- --- --- --- --- --- --- ---\n");

for(a=0;a<=14;a++)

{

if(a%2==1)

printf("   --- --- --- --- --- --- --- ---\n");

else

{

printf("%d ",(a+2)/2);

for(b=0;b<=7;b++)



{

printf("|");

if(kotak[b][a/2]==1 && b==x1 && a/2==y1)

printf(" o ");

else

if(kotak[b][a/2]==1)

printf(" x ");

else

printf("   ");

}

printf("|\n");

}

}

printf("   --- --- --- --- --- --- --- ---\n");

printf("y\n");

getch();

}

void rekursi(int x2,int y2)

{

if(x2+1<=7 && y2+2<=7 && kotak[x2+1][y2+2]==0)

{

kotak[x2+1][y2+2]=1;

sekarang(x2+1,y2+2);

rekursi(x2+1,y2+2);

}

else

if(x2+2<=7 && y2+1<=7 && kotak[x2+2][y2+1]==0)

{

kotak[x2+2][y2+1]=1;

sekarang(x2+2,y2+1);

rekursi(x2+2,y2+1);

}

else

if(x2+2<=7 && y2-1>=0 && kotak[x2+2][y2-1]==0)

{

kotak[x2+2][y2-1]=1;

sekarang(x2+2,y2-1);

rekursi(x2+2,y2-1);

}

else

if(x2+1<=7 && y2-2>=0 && kotak[x2+1][y2-2]==0)

{

kotak[x2+1][y2-2]=1;

sekarang(x2+1,y2-2);

rekursi(x2+1,y2-2);

}

else

if(x2-1>=0 && y2-2>=0 && kotak[x2-1][y2-2]==0)

{

kotak[x2-1][y2-2]=1;


sekarang(x2-1,y2-2);

rekursi(x2-1,y2-2);

}

else

if(x2-2>=0 && y2-1>=0 && kotak[x2-2][y2-1]==0)

{

kotak[x2-2][y2-1]=1;

sekarang(x2-2,y2-1);

rekursi(x2-2,y2-1);

}

else

if(x2-2>=0 && y2+1<=7 && kotak[x2-2][y2+1]==0)

{

kotak[x2-2][y2+1]=1;

sekarang(x2-2,y2+1);

rekursi(x2-2,y2+1);

}

else

if(x2-1>=0 && y2+2>=0 && kotak[x2-1][y2+2]==0)

{

kotak[x2-1][y2+2]=1;

sekarang(x2-1,y2+2);

rekursi(x2-1,y2+2);

}

else

printf("\n<<There's no way out for the knight>>");

}

main(void)

{

int x,y,x0,y0;

printf("Masukkan koordinat x awal kuda : ");

scanf("%d",&x);

printf("Masukkan koordinat y awal kuda : ");

scanf("%d",&y);

x0=x-1;

y0=y-1;

kotak[x0][y0]=1;

awal(x0,y0);

rekursi(x0,y0);

getch();

}

Related Posts Plugin for WordPress, Blogger...
Coming Soon !!! System Computer Grand Event ( Screen ) Yang Akan Diselenggarakan Oleh Prodi Sistem Komputer Universitas Tanjungpura, Info Selanjutnya Akan Diposting Di Website Ini ... Ikuti Terus Berita - Berita SiskomBlack4rt ||||||| Presented By @ArMy