首页 中国象棋源代码-C语言小程序

中国象棋源代码-C语言小程序

举报
开通vip

中国象棋源代码-C语言小程序*--------------------chess.c----------------------*/ #include "dos.h" #include "stdio.h" /*----------------------------------------------------*/ #define RED 7 #define BLACK 14 #define true 1 #define false 0 #define SELECT 0 #define MOVE 1 #define RED...

中国象棋源代码-C语言小程序
*--------------------chess.c----------------------*/ #include "dos.h" #include "stdio.h" /*----------------------------------------------------*/ #define RED 7 #define BLACK 14 #define true 1 #define false 0 #define SELECT 0 #define MOVE 1 #define RED_UP 0x1100 #define RED_DOWN 0x1f00 #define RED_LEFT 0x1e00 #define RED_RIGHT 0x2000 #define RED_DO 0x3900 #define RED_UNDO 0x1000 #define BLACK_UP 0x4800 #define BLACK_DOWN 0x5000 #define BLACK_LEFT 0x4b00 #define BLACK_RIGHT 0x4d00 #define BLACK_DO 0x1c00 #define BLACK_UNDO 0x2b00 #define ESCAPE 0x0100 #define RED_JU 1 #define RED_MA 2 #define RED_XIANG 3 #define RED_SHI 4 #define RED_JIANG 5 #define RED_PAO 6 #define RED_BIN 7 #define BLACK_JU 8 #define BLACK_MA 9 #define BLACK_XIANG 10 #define BLACK_SHI 11 #define BLACK_JIANG 12 #define BLACK_PAO 13 #define BLACK_BIN 14 /*----------------------------------------------------*/ int firsttime=1; int savemode; char page_new=0,page_old=0; int finish=false,turn=BLACK,winner=0; int key; int redstate=SELECT,blackstate=SELECT; int board[10][9]; /*----------------------------------------------------*/ char *chessfile[15]={"", "bmp\\rju.wfb", "bmp\\rma.wfb", "bmp\\rxiang.wfb","bmp\\rshi.wfb", "bmp\\rjiang.wfb","bmp\\rpao.wfb","bmp\\rbin.wfb", "bmp\\bju.wfb", "bmp\\bma.wfb", "bmp\\bxiang.wfb","bmp\\bshi.wfb", "bmp\\bjiang.wfb","bmp\\bpao.wfb","bmp\\bbin.wfb" }; char *boardfile[10][9]={ {"bmp\\11.wfb","bmp\\1t.wfb","bmp\\1t.wfb","bmp\\14.wfb","bmp\\15.wfb","bmp\\16.wfb"," bmp\\1t.wfb","bmp\\1t.wfb","bmp\\19.wfb"}, {"bmp\\21.wfb","bmp\\2c.wfb","bmp\\2c.wfb","bmp\\24.wfb","bmp\\25.wfb","bmp\\26.wfb"," bmp\\2c.wfb","bmp\\2c.wfb","bmp\\29.wfb"}, {"bmp\\21.wfb","bmp\\3a.wfb","bmp\\3t.wfb","bmp\\34.wfb","bmp\\3t.wfb","bmp\\36.wfb"," bmp\\3t.wfb","bmp\\3a.wfb","bmp\\29.wfb"}, {"bmp\\41.wfb","bmp\\4t.wfb","bmp\\4a.wfb","bmp\\4t.wfb","bmp\\4a.wfb","bmp\\4t.wfb","b mp\\4a.wfb","bmp\\4t.wfb","bmp\\49.wfb"}, {"bmp\\51.wfb","bmp\\52.wfb","bmp\\5t.wfb","bmp\\54.wfb","bmp\\5t.wfb","bmp\\56.wfb"," bmp\\5t.wfb","bmp\\58.wfb","bmp\\59.wfb"}, {"bmp\\61.wfb","bmp\\62.wfb","bmp\\6t.wfb","bmp\\64.wfb","bmp\\6t.wfb","bmp\\66.wfb"," bmp\\6t.wfb","bmp\\68.wfb","bmp\\69.wfb"}, {"bmp\\71.wfb","bmp\\7t.wfb","bmp\\7a.wfb","bmp\\7t.wfb","bmp\\7a.wfb","bmp\\7t.wfb","b mp\\7a.wfb","bmp\\7t.wfb","bmp\\79.wfb"}, {"bmp\\81.wfb","bmp\\8a.wfb","bmp\\8t.wfb","bmp\\84.wfb","bmp\\85.wfb","bmp\\86.wfb"," bmp\\8t.wfb","bmp\\8a.wfb","bmp\\89.wfb"}, {"bmp\\91.wfb","bmp\\9t.wfb","bmp\\9t.wfb","bmp\\9t.wfb","bmp\\95.wfb","bmp\\9t.wfb","b mp\\9t.wfb","bmp\\9t.wfb","bmp\\99.wfb"}, {"bmp\\101.wfb","bmp\\102.wfb","bmp\\102.wfb","bmp\\104.wfb","bmp\\105.wfb","bmp\\10 6.wfb","bmp\\108.wfb","bmp\\108.wfb","bmp\\109.wfb"} }; char cursor[14][14]={ 0,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,1,1, 0,255,255,255,255,255,255,255,0,0,1,1,1,1, 0,255,255,255,255,255,255,0,0,1,1,1,1,1, 0,255,255,255,255,255,255,0,0,1,1,1,1,1, 0,255,255,255,255,255,255,255,0,0,1,1,1,1, 0,255,255,255,255,255,255,255,255,0,0,1,1,1, 0,255,255,255,255,255,255,255,255,255,0,0,1,1, 0,255,255,0,255,255,255,255,255,255,255,0,0,1, 0,255,0,1,1,0,255,255,255,255,255,255,255,0, 0,0,1,1,1,1,0,255,255,255,255,255,0,1, 0,1,1,1,1,1,1,0,255,255,255,0,1,1, 1,1,1,1,1,1,1,1,0,255,0,1,1,1, 1,1,1,1,1,1,1,1,1,0,1,1,1,1 }; struct pos{ int x; int y; }position[10][9],redcurpos,redtemppos,redoldpos,blackcurpos,blacktemppos,blackoldpos; /*----------------------------------------------------*/ selectpage(register char page) /*换页函数*/ { union REGS r; r.x.ax=0x4f05; r.x.bx=0; r.x.dx=page; /*选择页面*/ int86(0x10,&r,&r); } unsigned char set_SVGA_mode(int vmode) /*设置SVGA屏幕模式*/ { union REGS r; r.x.ax=0x4f02; r.x.bx=vmode; int86(0x10,&r,&r); return(r.h.ah); } unsigned int get_SVGA_mode() /*获取当前SVGA屏幕模式*/ { union REGS r; r.x.ax=0x4f03; int86(0x10,&r,&r); return(r.x.bx); } drawbmp(int start_x,int start_y,char filename[]) { char buffer[640]; int i,j,k,n,r,g,b,width,length; long position; FILE *fp; if((fp=fopen(filename,"rb"))==NULL) { printf("Error! Can't open file!"); getch(); return; } fseek(fp,28,SEEK_SET); fread(&i,2,1,fp); if(i!=8) /*检查是否为256色位图*/ { puts("Error!Can't find bitmap!"); fclose(fp); getch(); exit(0); } fseek(fp,18,SEEK_SET); fread(&width,4,1,fp); fread(&length,4,1,fp); if(firsttime) { fseek(fp,54,SEEK_SET); for(i=0;i<256;i++) /*按照该图片的DAC色 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 设置色彩寄存器*/ { b=fgetc(fp);g=fgetc(fp);r=fgetc(fp); /*获取R、G、B分量*/ outportb(0x3c8,i); outportb(0x3c9,r>>2); /*右移是要转化为VGA的6位寄存器形式*/ outportb(0x3c9,g>>2); outportb(0x3c9,b>>2); fgetc(fp); } } else fseek(fp,300,SEEK_SET); k=(width%4)?(4-width%4):0; /*宽度修正值*/ for(j=length-1+start_x;j>=start_x;j--) { fread(buffer,width,1,fp); for(i=start_y,n=0;i
本文档为【中国象棋源代码-C语言小程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079973
暂无简介~
格式:doc
大小:30KB
软件:Word
页数:12
分类:互联网
上传时间:2019-02-17
浏览量:129