![]() |
|
| Hızlı Erişim | Menü | Kişisel |
| Görevliler: | Administrator, |
TurkeyForum.info BİLGİSAYAR & DONANIM & YAZILIM PROGRAMLAMA DİLLERİ C,C+ |
By_P!sSToN
Acemi Üye no: 5472 Cinsiyet: Erkek , A Rh + Konum: Gediz 12.Aralık.2008 Mesaj: 37 ![]()
|
![]() Konu: Santranç ayı programı Zaman: 30.Haziran.2009 Saat 18:01
Font Boyut: |
|||
Santranç ayı programıProgram, satranç tahtası üzerinde, istenilen noktadan başlatılan satranç atının istenilen sayıda bastığı yere basmamak kaydıyla hamle yapmasını sağlıyor. İşlem süresi uzun sürmektedir. Çünkü program olası tüm yolları belirli bir algoritmaya göre denemektedir. Programın derlenmiş şeklini http://www.lordtek.com/db/Satranc_ati.exe adresinden indirebilirsiniz. Hayırlara vesile olmasını dilerim...
#include <stdio.h> #include <conio.h> int d[30][30], i, j, a, b, r[100], c=62, e[100], f[100], g=1, m=1, n=2; int main(****) { clrscr(); err1: printf("\n\n\n\n\n Programa hos geldiniz. \n Simdi satranc atinin, santranc tahtasi uzerindeki baslangic noktasini seciniz. \n\n NOT: 1,2 veya 3,8 gibi girilecek..."); scanf("%d,%d", &m, &n); if ( m<1 || m>8 || n<1 || n>8 ) { printf("\n\n Yanlis girdin, dogru gir!!!"); getch(); goto err1; } err2: clrscr(); printf("\n\n\n\n Simdi Bastigi yere bir daha basmadan kac hamle oynasin? "); scanf("%d",&c); if (c==64) { printf("\n\n\n 64 hamle oynamasi icin yuksek hesaplama yapilacaktir, OK?"); getch(); } if (c<1 || c>64) { printf("\n\n\n Yanlis girdin, dogru gir!!!"); getch(); goto err2; } c-=1; clrscr(); printf("\n\n Programin duzgun calismasi icin hicbir tusa basmadan bekleyiniz."); printf("\n\n\n\n HESAPLANIYOR......"); for (i=0; i<30; i++) for (j=0; j<30; j++) d[i][j]=1; for (i=11; i<=18; i++) for (j=11; j<=18; j++) d[i][j]=0; for (i=0; i<100; i++) { e[i]=0; f[i]=0; r[i]=0;} g=1; a=m+10; b=n+10; e[g]=a-10; f[g]=b-10; d[a][b]=1; art1: a=a+2; b=b+1; if ( d[a][b]==0 ) { r[g]=1; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a-2; b=b-1; } art2: a=a+1; b=b+2; if ( d[a][b]==0 ) { r[g]=2; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a-1; b=b-2; } art3: a=a-2; b=b-1; if ( d[a][b]==0 ) { r[g]=3; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a+2; b=b+1; } art4: a=a-1; b=b-2; if ( d[a][b]==0 ) { r[g]=4; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a+1; b=b+2; } art5: a=a+2; b=b-1; if ( d[a][b]==0 ) { r[g]=5; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a-2; b=b+1; } art6: a=a-2; b=b+1; if ( d[a][b]==0 ) { r[g]=6; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a+2; b=b-1; } art7: a=a+1; b=b-2; if ( d[a][b]==0 ) { r[g]=7; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a-1; b=b+2; } art8: a=a-1; b=b+2; if ( d[a][b]==0 ) { r[g]=8; d[a][b]=1; g+=1; e[g]=a-10; f[g]=b-10; goto art1; } else { a=a+1; b=b-2; } son1: if ( g>c ) goto son2; if (g==0) goto son2; d[a]=0; r[g]=0; g-=1; a=e[g]+10; b=f[g]+10; /*if (g==25) goto son2;*/ if(r[g]==1) goto art2; if(r[g]==2) goto art3; if(r[g]==3) goto art4; if(r[g]==4) goto art5; if(r[g]==5) goto art6; if(r[g]==6) goto art7; if(r[g]==7) goto art8; if(r[g]==8) goto son1; son2: clrscr(); printf("\n\n\n\n"); for (i=1; i<65; i++) { printf(" %d--> %d:%d ",i,e[i],f[i]); if(i==4) printf("\n"); if(i==8) printf("\n");if(i==98) printf("\n");} /*printf("\n\n g=%d a=%d b=%d\n\n",g,a,b); for (i=0; i<65; i++) printf(" r[%d]=%d ",i,r);*/ printf("\n\n\n\n\n LORDTEK LORDTEK LORDTEK LORDTEK LORDTEK"); if (g==64) printf("\n\n\n BRAVO!!! SUPER BIR SISTEMIN VAR HERHALDE \n\n lutfen printscreen yapip ... adresine gonderir misiniz?\n\n LUTFEN..."); getch(); return(0); } ::Alıntıdır...
Kaynak Belirtilmedi.
|
||||
|
||||
|
||||
|
|
||
Forum Atla |
||
| TurkeyForum.info - Paylaşmak Özgürlüktür
|