收藏 分销(赏)

五子棋小游戏光电信息科学与工程c语言程序设计.doc

上传人:a199****6536 文档编号:2492311 上传时间:2024-05-30 格式:DOC 页数:20 大小:65.48KB
下载 相关 举报
五子棋小游戏光电信息科学与工程c语言程序设计.doc_第1页
第1页 / 共20页
五子棋小游戏光电信息科学与工程c语言程序设计.doc_第2页
第2页 / 共20页
五子棋小游戏光电信息科学与工程c语言程序设计.doc_第3页
第3页 / 共20页
五子棋小游戏光电信息科学与工程c语言程序设计.doc_第4页
第4页 / 共20页
五子棋小游戏光电信息科学与工程c语言程序设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、成 绩 评 定 表学生姓名郭雨佳班级学号1409060103专 业光电信息科学与工程课程设计题目五子棋小游戏评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院理学院专 业光电信息科学与工程学生姓名郭雨佳班级学号1409060103课程设计题目五子棋小游戏实践教学要求与任务:要求:1、进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。2、针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。3、掌握C语言的编程技巧和上机调试程序的方法。4、掌握程序设计中的常用算法。任务:1、联系已学过的内容,巩固所学的理论,增

2、强独立工作能力。2、通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。3、通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。工作计划与进度安排:第一周:查阅资料 、算法设计第二周: 第一、二天:算法设计 第三、四天:程序实现 第五天:答辩指导教师: 201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘要C语言是国际上广泛流行的计算机高级语言,它适合作为系统描述语言,即可以用来编写系统软件,也可以编写应用软件。在早期的操作系统软件主要是汇编语言编写的,但汇编语言依赖于计算机硬件程序的可读性

3、和可移植性级语言,而C语言兼具一般语言优点还能克服其他语言的缺点。五子棋是一种两人对弈的纯策略型棋类游戏,应用C语言编写程序可以在计算机上实现二人对弈五子棋功能。二人对弈五子棋程序由图像生成、光标移动与落子、判断胜负和系统帮助等子程序构成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。程序通过棋盘和棋子图像生成、二人移子与落子和判断胜负等功能的实现,在计算机上实现二人五子棋对弈。同时也对其他系统游戏的开发设计有一定的借鉴作用。关键词:C语言;数组;结构体;全局变量;按键处理目录1引言11.1五子棋介绍11.2程序需求分析11.3编程方案22五子棋游戏的设计与实现22.1模

4、块图22.2流程图33对应程序:44运行结果截屏:115总结146参考文献14161引言1.1五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修生养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源远流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。他是东西文化的交流点,是古今哲理的结晶。1.2程序需求分析根据功能需求将程序分为图形显示、玩家控制、胜负判断三个模块,以下分析各模块的需求。图形

5、显示模块:游戏开始后要求棋盘生成为15*15,游戏运行中要求显示已落棋子情况。玩家控制模块:游戏过程中玩家需移动光标选择落子。胜负判断模块:一旦某一颜色棋子出现物资连续,终止游戏,弹出改色游戏玩家胜出。1.3编程方案棋子的移动与落子在键盘上按键控制,本程序选取按键为、和空挡键。分别代表上移、左移、下移、右移和落子。在光标移动过程中,光标按照玩家按键移动;在玩家按下落子键后,程序自动调用棋子显示子程序和判断胜负子程序。2五子棋游戏的设计与实现五子棋游戏2.1模块图胜负判断图形显示玩家控制 是否有五子黑白棋落子棋盘的拼成2.2流程图开始画15*15界面开始游戏白子落子白子落子5? N白子获胜?输出

6、白方获胜! Y Y黑子落子 N黑子落子 黑子获胜?输出黑方获胜! Y N白子落子 输出平局!棋盘铺满? YN结束3对应程序:#include #include #include #include #define MAXIMUS 15 int pMAXIMUSMAXIMUS;char buffMAXIMUS*2+1MAXIMUS*4+3;int Cx,Cy;int Now;int wl,wp;char* showText;int count;char* Copy(char* strDest,const char* strSrc)char* strDestCopy = strDest;while

7、(*strSrc!=0)*strDest+=*strSrc+;return strDestCopy;void Initialize()int i,j;showText=;count=0;for(i=0;iMAXIMUS;i+)for(j=0;jMAXIMUS;j+)pij=0;Cx=Cy=MAXIMUS/2;Now=1;char* getStyle(int i,int j)if(pij=1)return ;else if(pij=2)return ;else if(i=0&j=0)return ;else if(i=MAXIMUS-1&j=0)return ;else if(i=MAXIMUS

8、-1&j=MAXIMUS-1)return ;else if(i=0&j=MAXIMUS-1)return ;else if(i=0)return ;else if(i=MAXIMUS-1)return ;else if(j=0)return ;else if(j=MAXIMUS-1)return ;return ;char* getCurse(int i,int j)if(i=Cx)if(j=Cy)return ;else if (j=Cy+1)return ;else if(i=Cx+1)if(j=Cy)return ;else if (j=Cy+1)return ;return ;voi

9、d write(char* c)Copy(buffwl+wp,c);wp+=strlen(c);void ln()wl+=1;wp=0;void Display()int i,l=strlen(showText);int Offset=MAXIMUS*2+2-l/2;if(Offset%2=1)Offset-;Copy(buffMAXIMUS+Offset,showText);if(l%2=1)*(buffMAXIMUS+Offset+l)=0x20;system(cls);for(i=0;iMAXIMUS*2+1;i+)printf(%s,buffi);if(iMAXIMUS*2)print

10、f(n);void Print()int i,j;wl=0;wp=0;for(j=0;j=MAXIMUS;j+)for(i=0;i=MAXIMUS;i+)write(getCurse(i,j);if(j=0|j=MAXIMUS)if(i!=MAXIMUS)write();elseif(i=0|i=MAXIMUS-1)write();else if(i!=MAXIMUS)write();if(j=MAXIMUS)break;ln();write();for(i=0;iMAXIMUS;i+)write(getStyle(i,j);if(i!=MAXIMUS-1)if(j=0|j=MAXIMUS-1

11、)write();elsewrite();ln();Display();int Put()if(pCxCy=0)pCxCy=Now;return 1;elsereturn 0;int Check()intw=1,x=1,y=1,z=1,i; for(i=1;i5;i+)if(Cy+iMAXIMUS&pCxCy+i=Now)w+;else break;for(i=1;i0&pCxCy-i=Now)w+;else break;if(w=5)return Now;for(i=1;i5;i+)if(Cx+iMAXIMUS&pCx+iCy=Now)x+;else break;for(i=1;i0&pCx

12、-iCy=Now)x+;else break;if(x=5)return Now;for(i=1;i5;i+)if(Cx+iMAXIMUS&Cy+iMAXIMUS&pCx+iCy+i=Now)y+;else break;for(i=1;i0&Cy-i0&pCx-iCy-i=Now)y+;else break;if(y=5)return Now;for(i=1;i5;i+)if(Cx+i0&pCx+iCy-i=Now)z+;else break;for(i=1;i0&Cy+i=5)return Now; return 0; int RunGame()int input;int victor;In

13、itialize();while(1) Print();input=getch();if(input=27)exit(0);else if(input=0x20) if(Put()victor=Check();Now=3-Now; count+;if(victor=1) showText=白方获得了胜利!;Print();if(getch()=0xE0)getch();return Now;else if(victor=2) showText=黑方获得了胜利!;Display();if(getch()=0xE0)getch();return Now;else if(count=MAXIMUS*

14、MAXIMUS) showText=平局!;Display();if(getch()=0xE0)getch();return 0;else if(input=0xE0) input=getch();switch(input) case 0x4B:/Cx-;break;case 0x48:Cy-;break;case 0x4D:Cx+;break;case 0x50:Cy+;break;if(Cx0)Cx=MAXIMUS-1; if(CyMAXIMUS-1)Cx=0;if(CyMAXIMUS-1)Cy=0;int main()system(title 简易五子棋 1409060103 郭雨佳);

15、system(mode con cols=63 lines=32);system(color A2f);while(1)RunGame();4运行结果截屏:5总结C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅

16、有一个星期,但确实使我受益非浅。给我们提供了一个既动手又动脑,独立实践的机会。通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境。本次课程设计,使我对五子棋设计的基本过程的设计方法、步骤、思路,有一定的了解与认识。在课程设计过程中,我基本能按照规定的程序进行,先对五子棋的设计收集,调查有关资料,期间进行方案的几次修改,最后确定方案。设计方案确定后,再用c语言实现了可视化的五子棋算法。整个过程周密有序,对我按照高质量完成课程设计十分有利。程序设计达到了预期的目的。程序设计完成后我觉得不仅动手能力有所提高,更重要的是激发了我对课程的兴趣,并能够运用其解决一些实际问题。6参考文献1

17、谭浩强. C程序设计(第四版).清华大学出版社.2010年6月2谭浩强.C程序设计(第四版)学习辅导.清华大学出版社.2010年七月3百度文库目 录第一章 总论1一、项目概况1二、项目提出的理由与过程6三、项目建设的必要性8四、项目的可行性12第二章 市场预测15一、市场分析15二、市场预测16三、产品市场竞争力分析19第三章 建设规模与产品方案22一、建设规模22二、产品方案22三、质量标准22第四章 项目建设地点25一、项目建设地点选择25二、项目建设地条件25第五章 技术方案、设备方案和工程方案28一、技术方案28二、产品特点30三、主要设备方案32四、工程方案32第六章 原材料与原料供

18、应35一、原料来源及运输方式35二、燃料供应与运输方式35第七章 总图布置、运输、总体布局与公用辅助工程37一、总图布置37二、 运输38三、总体布局38四、公用辅助工程39第八章 节能、节水与安全措施44一、主要依据及标准44二、节能44三、节水45四、消防与安全45第九章 环境影响与评价47一、法规依据47二、项目建设对环境影响48三、环境保护措施48四、环境影响评价49第十章 项目组织管理与运行50一、项目建设期管理50二、项目运行期组织管理52第十一章 项目实施进度55第十二章 投资估算和资金筹措56一、投资估算56二、资金筹措58第十三章 财务评价与效益分析61一、项目财务评价61二、财务评价结论65三、社会效益68四、生态效益68第十四章 风险分析70一、主要风险分析识别70二、风险程度分析及防范风险的措施70第十五章 招标方案72一、招标范围72二、招标组织形式72三、招标方式72第十六章 结论与建议74一、可行性研究结论74二、建议75附 件77一、附表77二、附件77三、附图77

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服