资源描述:
《四子棋游戏程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、武汉理工大学《微机原理与接口技术》课程设计四子棋游戏程序设计1设计任务及要求1.1设计任务设计一个四子棋游戏程序,棋盘为8X8(64格),先达到4子成一条线即结束游戏。(该程序在DOS下运行)。1.2任务要求(1)画出棋盘界面。(2)定义键盘的功能,可以实现棋子左右移动及落子。(3)棋子不能悬空,落子后不能再移动。(4)人、人分别落子。(5)用不同的颜色区分各方的棋子。(6)撰写设计说明书及调试心得。22武汉理工大学《微机原理与接口技术》课程设计2程序设计思路2.1主程序及模块链接四子棋的程序中包含许多模块,其中有棋盘的绘制,棋子的绘制以及棋子坐标位置的计算,棋
2、子胜负的算法等等,在主程序中需要将这些模块链接起来。程序主流程图:流程图开始画棋盘控制游戏开始,并且玩家落子写棋子并计算棋子的位子判断棋盘中是否有横,竖,斜线上是否有四子练成直线。是结束继续落子,直到下完否22武汉理工大学《微机原理与接口技术》课程设计程序运行界面图图2-1程序运行界面截图22武汉理工大学《微机原理与接口技术》课程设计2.2棋盘的绘制本次课程设计要求是绘制8x8格的棋盘,在绘制过程中,需要调用dos功能调用中的int10h命令,利用该命令中的多项功能可以完成绘制棋盘中所需要的划线和填充颜色,从而绘制出8x8格棋盘!开始划线划横线画竖线完成格子颜色
3、的填充完成划线绘制棋盘程序代码:rorcolor,rrow,rcol,endcol;调用划线的命令localrline1;linehorizonmovdx,rrowmovcx,rcolrline1:moval,rcolor;调用int10h中的och功能movah,0chint10hinccx;累加1的功能cmpcx,endcol;比较cx和endcol的大小jlrline1;小于就再循环执行一次22武汉理工大学《微机原理与接口技术》课程设计endm段程序中,dx的值没有变化,不断的累加cx的值,不断的写像素,从而达到画横线的功能.clinemacrocolor
4、,crow,ccol,endrow;画竖线localcline1;lineverticalmovdx,crowmovcx,ccolcline1:;和上一段的程序相似moval,colormovah,0chint10hincdxcmpdx,endrowjlcline1endmdx的值没有变化,不断的累加cx的值,不断的写像素,从而完成画横线的功能。mainfrmprocnear;主框架的设计rline1,65,1,640;画横线rline1,415,1,640cline1,65,480,415;画竖线blockpos9,64,640,1,1;forupbackgr
5、ound;在整个的界面中有8个颜色区,程序的功能就是在横向-纵向分别写像素,可以使的整块都有颜色.linechessprocnear;画棋盘movdx,90;initrowhline:movcx,90;initcolumnhdot:moval,0fh;setcolor22武汉理工大学《微机原理与接口技术》课程设计;调用的int10h的0f功能,使的画出的线可以用颜色.moval,0fhint10hinccxcmpcx,250jlehdot;小于或等于就跳转,重新执行adddx,20;距离为20再画一条线cmpdx,250jlehline;不断的画,一共9条;en
6、dof15hlinemovcx,90;和上面的相似vline:movdx,90vdot:moval,0fhmovah,0chint10hincdxcmpdx,250jlevdotaddcx,20cmpcx,250jlevline;endof15vlineretlinechessendp22武汉理工大学《微机原理与接口技术》课程设计2.3绘制棋子绘制棋子模块的作用是根据鼠标返回的象素坐标写一级棋行表和界面对应的棋子,以准备进入二级棋行表进行判断。首先确定一个圆心,定义cx、dx,确定棋子半径R,将棋子半径R赋值给cx、dx,cx²+dx²-R²≤0则添加象素,否则
7、dx减1,继续判断,直至dx为0,dx=R,cx依次减1,直至为0,如此作出的是1/4圆,其余3/4圆按对称的方法作出。程序流程图:开始在(X+Si,Y+Di)(X-Si,Y+Di)(X+Si,Y-Di)(X—Si,Y—Di)这四点写象素DECSiSi=0?DECDiSi=R结束(X+Si)*(X+Si)+(Y+Di)*(Y+Di)—R*R<0Di=R;si=RDi22武汉理工大学《微机原理与接口技术》课程设计程序源代码:showbchessprocnear;showblackchessinpanpushbppushsipushdimovchessrad,10m
8、ovax,si;calc