C语言程序源代码---中国象棋_第1页
C语言程序源代码---中国象棋_第2页
C语言程序源代码---中国象棋_第3页
C语言程序源代码---中国象棋_第4页
C语言程序源代码---中国象棋_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#include#include#include#include#includec:tcLIB1.c#define W 119#define S 115#define A 97#define D 100#define space 32#define UP 72#define DOWN 80#define LEFT 75#define RIGHT 77#define ENTER 13void qipan();void jiemian(int);void guangbiao1(int,int);void guangbiao2(int,int);void xuanzhong(int,int);void gaizi(int,int);char array(int,int);void xiazi(int,int,int,int);/*int panding(char,int,int,int,int);*/main() int gdriver,gmode,i=0,c=0,x=190,y=190,m,n; char p; FILE *fp; gdriver=DETECT; gmode=0; if(fp=fopen(file.txt,at) = NULL) printf(Cannot open file!);system(pause);exit(0); printf(%d,%d,gdriver,gmode); registerbgidriver(EGAVGA_driver); initgraph(&gdriver,&gmode,c:tc); cleardevice();while(c!=27) c=getch(); clrscr();jiemian(i);if(c=80) fputs(down ,fp); i+; if(i=4) i=0; if(i=1) if(c=13) fputs(enter ,fp); qipan(); c=getch();while(c!=27) c=getch(); if(c=115) fputs(S ,fp); y=y+40; guangbiao1(x,y); guangbiao2(x,y-40); if(c=119) fputs(W ,fp); y=y-40; guangbiao1(x,y); guangbiao2(x,y+40); if(c=97) fputs(An,fp); x=x-40; guangbiao1(x,y); guangbiao2(x+40,y);if(c=100) fputs(Dn,fp); x=x+40; guangbiao1(x,y); guangbiao2(x-40,y); if(c=13) fputs(entern,fp); xuanzhong(x,y); m=x;n=y; if(c=32) fputs(spacen,fp); xiazi(m,n,x,y); fputs(gaizin,fp); gaizi(m,n); if(x350|y390|x30|y30) x=190;y=30; getch(); closegraph(); fclose(fp); restorecrtmode(); return 0; void qipan()int i,j;setbkcolor(GREEN);cleardevice();setlinestyle(0,0,3);setcolor(1);rectangle(10,10,370,410);rectangle(30,30,350,390);for(i=1;i8;i+) setlinestyle(0,0,3); line(i*40+30,30,i*40+30,190); line(i*40+30,230,i*40+30,390); for(j=1;jshuai B-shi); outtextxy(420,80,C-xiang D-ma); outtextxy(420,110,E-ju F-pao); outtextxy(420,140,G-bing); setcolor(8); outtextxy(420,200,H-jiang I-shi); outtextxy(420,230,J-xiang K-ma); outtextxy(420,260,L-ju M-pao); outtextxy(420,290,N-zu);void jiemian(int i) setbkcolor(GREEN); cleardevice(); settextstyle(1,0,8); setcolor(BLUE); outtextxy(50,70,chinese chess); settextstyle(0,0,3); setcolor(RED); outtextxy(260,215,start); outtextxy(260,255,again); outtextxy(260,295,undo); outtextxy(260,335,exit); rectangle(250,210+i*40,390,240+i*40); void guangbiao1(int x,int y) setcolor(WHITE); setlinestyle(0,0,3); line(x-17,y-7,x-17,y-17); line(x-7,y-17,x-17,y-17); line(x+7,y-17,x+17,y-17); line(x+17,y-7,x+17,y-17); line(x-7,y+17,x-17,y+17); line(x-17,y+7,x-17,y+17); line(x+17,y+7,x+17,y+17); line(x+7,y+17,x+17,y+17); void guangbiao2(int x,int y) setcolor(GREEN); setlinestyle(0,0,3); line(x-17,y-7,x-17,y-17); line(x-7,y-17,x-17,y-17); line(x+7,y-17,x+17,y-17); line(x+17,y-7,x+17,y-17); line(x-7,y+17,x-17,y+17); line(x-17,y+7,x-17,y+17); line(x+17,y+7,x+17,y+17); line(x+7,y+17,x+17,y+17); void xuanzhong(int x,int y) setcolor(CYAN); setlinestyle(0,0,3); circle(x,y,15); void gaizi(int x1,int y1) setlinestyle(0,0,3); setcolor(GREEN); circle(x1,y1,15); setfillstyle(0,3); floodfill(x1,y1,GREEN); setcolor(1); setlinestyle(0,0,3); if(30x1350)&(y1=30)|(y1=230) line(x1-18,y1,x1+18,y1); line(x1,y1,x1,y1+18); if(30x1350)&(y1=390|y1=190) line(x1-18,y1,x1+18,y1); line(x1,y1-18,x1,y1); if(30y1390)&x1=30) line(x1,y1,x1+18,y1); line(x1,y1-18,x1,y1+18); if(30y1390)&(x1=350) line(x1-18,y1,x1,y1); line(x1,y1-18,x1,y1+18); if(x1=30)&(y1=30) line(x1,y1,x1+18,y1); line(x1,y1,x1,y1+18); if(x1=350)&(y1=30) line(x1-18,y1,x1,y1); line(x1,y1,x1,y1+18); if(x1=30)&(y1=390) line(x1,y1,x1+18,y1); line(x1,y1,x1,y1-18); if(x1=350)&(y1=390) line(x1,y1,x1-18,y1); line(x1,y1,x1,y1-18); else line(x1-18,y1,x1+18,y1); line(x1,y1-18,x1,y1+18); char array(int i,int j) char a1313; int c,b; c=i; b=j;for(c=1;c10;c+) for(b=1;b110|x230|x40|(x-a)40|(y-b)40|(b-y)40) return 0; else return 1; break; case B:if(x-a)=40&(y-b)=40)&y=110&230x150|(a-x)=40&(b-y)=40)&yx150) return 1; else return 0; break; case C:if(x-a)=80&(y-b)=80)&y=190)&(array(y+b)/2/40+1,(x+a)/2/40+1,)=Z)|(a-x)=80&(b-y)=80)&y=190)&(array(y+b)/2/40+1,(x+a)/2/40+1)=Z) return 1; else return 0; break;case D:if(x-a)=80&(y-b)=40&(array(y/40+1,(x-40)/40+1)=Z)|(a-x)=80&(b-y)=40)&(array(y/40+1,(x+40)/40+1)=Z)|(x-a)=40&(y-b)=80)(array(y-40)/40+1,x/40+1)=Z)|(a-x)=40&(b-y)=80)&(array(y+40)/40+1,x/40+1)=z) ) return 1; else return 0; break; case E:return 1; break; case F:return 1; break; case G:if(yb|x!=a) return 0; else return 1; else if(b-y)40|(a-x)40|(x-a)40|yb) return 0; else return 1; break; case H:if(y230|x40|(x-a)40|(y-b)40|(b-y)40) return 0; else return 1; break; case I:if(x-a)=40&(y-b)=40)&y=310&230x310&230x150) return 1; else return 0; break; case J:if(x-a)=80&(y-b)=80)&y=230)&array(y+b)/2/40+1,(x+a)/2/40+1)=Z)|(a-x)=80&(b-y)=80)&y=230)&(array(y+b)/2/40+1,(x+a)/2/40+1)=Z) return 1; else return 0; break; case K:if(x-a)=80&(y-b)=40&(array(y/40+1,(x-40)/40+1)=Z)|(a-x)=80&(b-y)=40)&(array(y/40+1,(x+40)/40+1)=Z)|(x-a)=40&(y-b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论