ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:98.96KB ,
资源ID:19314517      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19314517.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言五子棋源代码设计报告Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言五子棋源代码设计报告Word下载.docx

1、(1)功能模块2. 主流程图遇到的一个问题:图形一闪而过解决方法因为Win-TC的图形驱动程序EGAVGA.BGI文件安装路径为c:Win-TCprojectsint gdriver=DETECT, gmode;initgraph(&gdriver, &gmode, c:tc)改为initgraph(&Win-TCprojects)2程序代码#include #include stdio.hgraphics.h/*定义1号玩家的操作键键码*/#define W 0x1177/*上移-W*/#define S 0x1f73/*下移-S#define A 0x1e61/*左移-A#define D

2、 0x2064/*右移-D#define SP 0x3920/*落子-空格键*/*定义2号玩家的操作键键码*/ #define UP 0x4800/*上移-方向键up*/#define DOWN 0x5000/*下移-方向键down*/#define LEFT 0x4b00/*左移-方向键left*/#define RIGHT 0x4d00/*右移-方向键right*/#define ENTER 0x1c0d/*落子-回车键Enter*/#define ESC 0x011b#define X (getx()-140)/20 /*将棋盘上光标所在点的横坐标X转化为0-18的数*/#define

3、Y (gety()-70)/20 /*将棋盘上光标所在点的横坐标Y转化为0-18的数*/int k,w=DETECT,gmode,j,i;int a2020;void p1move(); /*定义函数*/void p2move();void win(); p1win(); p2win(); yellow(); white(); black(); heqi(); welcome(); help(); csz(); qipang(); p1turn(); p2turn(); p1del(); p1turn()/*画左上角的白棋*/setcolor(7);setfillstyle(1,7);circ

4、le(60,110,9);floodfill(60,110,7); p1del() /*将左上角白棋檫去*/setfillstyle(1,14); floodfill(60,110,14); p2turn() /*画右上角的黑棋*/setcolor(0);setfillstyle(1,0);circle(578,115,9);floodfill(578,115,0);p2del() /*画右上角的黑棋*/ floodfill(578,115,14); white() /*在当前位置画白棋*/circle(getx(),gety(),9);floodfill(getx(),gety(),7);b

5、lack() /*在当前位置画黑棋*/floodfill(getx(),gety(),0); yellow() /*补棋盘的颜色*/setcolor(6);setfillstyle(1,6);floodfill(getx(),gety(),6);setcolor(15);line(getx()-9,gety(),getx()+9,gety();line(getx(),gety()+9,getx(),gety()-9);qipang() /*画棋盘*/ setfillstyle(1,6); bar(120,50,520,450); setfillstyle(1,14); bar(540,50,6

6、20,150); bar(20,50,100,150); for(k=0;k19;k+) moveto(140+20*k,70);linerel(0,360); moveto(140,70+20*k);linerel(360,0); moveto(240,170);setcolor(5); settextstyle(3,0,4); outtextxy(50,60,P1); outtextxy(560,60,P2 welcome() /*欢迎界面*/ initgraph(&w ,&gmode,) ;clearviewport(); setcolor(4); settextstyle(0,0,6)

7、; outtextxy(180,180,Welcome settextstyle(0,0,2); outtextxy(280,440,press any key to begindelay(1000) ; /*delay(00) ; delay(00) ; */ help() /*帮助界面*/ initgraph(& clearviewport(); outtextxy(80,100,P1 move; W S A D outtextxy(80,120, set : space outtextxy(80,180,P2 move: up down left right outtextxy(80,2

8、00, set: Enter outtextxy(80,280,Whoever is first to gather five /*same color pieces in a line without any different color piece among them,then he win */ outtextxy(80,300,same color pieces in a line without outtextxy(80,320,any different color piece among outtextxy(80,340,them, then he win. outtextx

9、y(80,360,When you want to quit the game, outtextxy(80,380,press Esc. outtextxy(220,440,press any key to continue while(bioskey(1)=0);p1win() /*玩家1获胜界面*/P1 WIN main();p2win() /*玩家2获胜界面*/P2 WIN while(bioskey(0)!=0) main();heqi() /*和棋界面*/tiecsz() /*将所在位置的AXY赋初值6*/for(i=0;ii+) for(j=0;jj+) aij=6;void wi

10、n() /*判断输赢*/int sum1,sum2,sum3,sum4,sum=0,n,i,j;for(i=X-4,j=Y-4,n=0;=X,j=Y;i+,j+,n-=2)sum1=aiY+ai+1Y+ai+2Y+ai+3Y+ai+4Y;sum2=aij+ai+1j+1+ai+2j+2+ai+3j+3+ai+4j+4;sum3=aXj+aXj+1+aXj+2+aXj+3+aXj+4;sum4=aij+8+n+ai+1j+7+n+ai+2j+6+n+ai+3j+5+n+ai+4j+4+n;if(sum1=5|sum2=5|sum3=5|sum4=5)p2win();if (sum1=0|sum2

11、=0|sum3=0|sum4=0) for(i=0;18;for(j=0;sum=sum+aij;if(sum181)heqi();void p1move() /*玩家1的移动*/switch(bioskey(0) case ESC: closegraph(); exit(0);/*如果按键为ESC就退出游戏*/ case SP:/*落子*/ if(aXY=6) p1del();p2turn();aXY=0;white();win(); p2move(); else p1move(); case A: /*向左移*/ if(aXY=0) if(getx()=140) moveto(520,ge

12、ty();moverel(-20,0); else if(aXY=1)black(); else yellow();if(getx()=140) moveto(520,gety(); p1move(); case D: /*向右移*/ if(aXY=0) if(getx()=500) moveto(120,gety();moverel(20,0); else if(aXY=1) if(getx()=500) moveto(120,gety(); else yellow();if(getx()=500) moveto(120,gety();p1move(); case W: /*向上移*/ if

13、(aXY=0) if(gety()=70) moveto(getx(),450);moverel(0,-20); else if(aXY=1) if(gety()=70) moveto(getx(),450);if(gety()=70) moveto(getx(),450); case S: /*向下移*/ if(aXY=0) if(gety()=430) moveto(getx(),50);moverel(0,20); else if(aXY=1) if(gety()=430) moveto(getx(),50);if(gety()=430) moveto(getx(),50); p1mov

14、e(); default: p1move(); void p2move() /*玩家2的移动*/ switch(bioskey(0) /*如果按键为ESC就退出游戏*/ case ENTER: /*落子*/ if(aXY=6) p2del();p1turn();aXY=1;p1move(); else p2move(); case LEFT: if(aXY=1) if(getx()=140) moveto(520,gety(); else if(aXY=0) if(getx()=140) moveto(520,gety();if(getx()=140) moveto(500,gety(); p

15、2move(); case RIGHT: if(aXY=1) if(getx()=500) moveto(120,gety(); else if(aXY=0) if(getx()=500) moveto(120,gety();p2move(); case UP: if(aXY=1) if(gety()=70) moveto(getx(),450); else if(aXY=0) if(gety()=70) moveto(getx(),450); case DOWN: if(aXY=1) if(gety()=430) moveto(getx(),50); else if(aXY=0) if(ge

16、ty()=430) moveto(getx(),50); else if(gety()=430) moveto(getx(),50);main() /*主函数*/ welcome(); /*调用欢迎界面*/ /*调用帮助界面*/ /*清屏*/ /*调用棋盘*/ /*调用玩家1的移动*/ getch();1部分:以下是我负责的模块的函数,由于个人水平问题,我只负责画图部分。(1)画白棋棋子(white()(2)画黑棋棋子black()(3)补棋盘颜色 由于我们实现棋子在棋盘上移动的功能是用:某一色棋子覆盖棋盘上的点,当光标移动后,用白色圆圈将原本的棋子覆盖,再填上与棋盘相同的颜色,最后用十字线条

17、覆盖原本棋子所在的位置,然后再用棋子覆盖棋盘上新的点实现移动棋子和下棋的功能的,所以需要我编此函数。 yellow()(4)画棋盘这段函数的功能是画出棋盘及棋盘边左右上方的p1,p2字样。首先先画一块18*18的有色方块,然后利用循环及相对坐标在方块上画出棋盘的竖线和横线,接着移出棋盘设置背景色,再设置字体颜色,最后再在棋盘的左右上方写上p1、p1。qipang()bar(120,50,520,450); setbkcolor(14); setcolor(5);课设总结经过这次的选课,我最大的感觉就是遗憾,验证了一句话:书到用时方恨少啊!由于水平问题,我在这次的程序设计中承担的任务是画图。令人郁闷的任务。让我很后悔上学期没有把C学透,学好。虽然我考了99,但我自己知道,那是突击出来的结果,实际上我肚子里的东西没多少。还好,我的队友们水平都很不错,我们组才可以完成。其实我是有尝试负责判断胜负的部分,可是程序写出来了,却怎么改都不行。时间紧迫,其他3名组员毅然决定派给我另一个光荣而又神圣的任务画棋盘。至于画棋盘嘛,我的水平还够,完成得很快。但是我并没有因此而闲着,我还帮助其他组员出谋划策,检测程序的完整性,以及排错,我还是有发挥自己的余光余热的,希望老师不要让我不过啊2部分

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1