第一范文网 - 专业文章范例文档资料分享平台

中国象棋源代码-C语言知识学习小程序

来源:用户分享 时间:2025/7/18 6:20:51 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

* *

board[3][0]=BLACK_BIN; board[3][2]=BLACK_BIN; board[3][4]=BLACK_BIN; board[3][6]=BLACK_BIN; board[3][8]=BLACK_BIN;

board[9][0]=RED_JU; board[9][1]=RED_MA; board[9][2]=RED_XIANG; board[9][3]=RED_SHI; board[9][4]=RED_JIANG; board[9][5]=RED_SHI; board[9][6]=RED_XIANG; board[9][7]=RED_MA; board[9][8]=RED_JU; board[7][1]=RED_PAO; board[7][7]=RED_PAO; board[6][0]=RED_BIN; board[6][2]=RED_BIN; board[6][4]=RED_BIN; board[6][6]=RED_BIN; board[6][8]=RED_BIN;

* *

}

initdrawchess() { int i,j;;

for(i=0;i<10;i++) for(j=0;j<9;j++) {

if(board[i][j])

drawbmp(position[i][j].x,position[i][j].y,chessfile[board[i][j]]); } }

drawcursor(struct pos p) {

int i,j,n,m,x,y; long thisposition; x=position[p.x][p.y].x+20; y=position[p.x][p.y].y+25; for(j=13-1+x,m=13;j>=x;j--,m--) {

for(i=y,n=0;i<13+y;i++,n++) {

* *

thisposition=j*640l+i; /*计算要显示点的显存位置*/ page_new=thisposition/65536; /*计算显示页*/

if(page_new!=page_old) /*当显示页不同时更换页面,提高一定的输出速度*/ {selectpage(page_new);page_old=page_new;} if(cursor[m][n]!=1) if(cursor[m][n]==0)

pokeb(0xa000,thispositione536,0); else

if(turn==RED)

pokeb(0xa000,thispositione536,153); else

pokeb(0xa000,thispositione536,255); } } }

drawselecursor(struct pos p) {

int i,j,n,m,x,y; long thisposition; x=position[p.x][p.y].x+20; y=position[p.x][p.y].y+25;

* *

for(j=13-1+x,m=13;j>=x;j--,m--) {

for(i=y,n=0;i<13+y;i++,n++) {

thisposition=j*640l+i; /*计算要显示点的显存位置*/ page_new=thisposition/65536; /*计算显示页*/

if(page_new!=page_old) /*当显示页不同时更换页面,提高一定的输出速度*/ {selectpage(page_new);page_old=page_new;} if(cursor[m][n]!=1)

pokeb(0xa000,thispositione536,0); } } }

/*----------------------------------------------------*/ int getkey() { int press;

while(bioskey(1) == 0); press=bioskey(0); press=press&0xff00; return(press);

* *

}

/*--------------------红方操作--------------------*/ int redcanselect() { int x,y; x=redcurpos.x; y=redcurpos.y;

if(board[x][y]>=RED_JU&&board[x][y]<=RED_BIN) return 1; else return 0; }

int redcanmove() {

int i,j,min,max,oldx,oldy,x,y; oldx=redoldpos.x; oldy=redoldpos.y; x=redcurpos.x; y=redcurpos.y;

/*case1 目标位置是否是自己人*/

if(board[x][y]>=RED_JU&&board[x][y]<=RED_BIN) return 0;

中国象棋源代码-C语言知识学习小程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4088b0ygob0wk4t3v4f03ibqw7s1q700th2_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top