




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
伊 犁 师 范 学 院 高级语言课程设计报告 学 院: 电子与信息工程学院 学生姓名: 学 号: 专业届别: 指导教师: 完成时间: 五子棋游戏1 设计目的及要求目的:(1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。(2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计.(3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。(4)运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。要求:(1) 独自设计、编制、调试出一款五子棋游戏。(2) 要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等)(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。任务:五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一发展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原则:(1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。(2)可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。(3)规范性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量避免不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。2 开发工具 C语言3 应用平台Windows xp4 功能设计游戏分析: 五子棋是两人之间的竞技游戏,该五子棋程序基本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。游戏介绍: 该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标则会在棋盘上显示棋子,(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子),若输入则退出游戏。4.1 算法设计程序说明:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,则该方获胜。程序要求:按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出:输出棋盘、棋子,并能够进行相应的操作。4.2流程图模块图1:程序整体设计思路流程图开始黑白棋子交替出现移动当前棋子否选择位置后放置棋子判断是否有5个连成一线是结束图2:绘图过程的算法流程开始是结束否同颜色的五个连成直线放置棋子绘制棋盘(15*15)初始化图形设备5 程序调试及运行5.1 程序运行结果图1 初始化界面图2 运行游戏的界面5.2 程序代码#include “stdio.h”#include”graphics.h”#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b#define ENTER 0x1c0dint x=-1,y=0;int max_x,max_y;int board_flag1515;void draw_board();void show_init(int pat);void hide();void show(int pat);void move();int is_win(int pat);void main() int driver=DETECT,mode; int i,j; for(i=0;i15;i+) for(j=0;j15;j+) board_flagij=0; initgraph(&driver,&mode,”);draw_board();show_init(0);move();getch();closegraph();void draw_board() int i;max_x=getmaxx();max_y=getmaxy();setfillstyle(1,BLUE);bar(0,0,max_x,max_y); for(i=-7;i=8;i+) line(max_x/2-7*26,max_y/2+i*26,max_x/2+8*26,max_y/2+i*26);line(max_x/2+i*26,max_y/2-7*26,max_x/2+i*26,max_y/2+8*26);void show_init(int pat)setcolor(BLUE);if(pat=0) setfillstyle(1,BLACK);elsesetfillstyle(1,WHITE);x=-1;y=0;fillellipse(max_x/2-8*26+13,max_y/2-7*26+23,12,12);void hide()int m;m=board_flagxy;switch(m) case 0: setfillstyle(1,BLUE); break; case 1: setfillstyle(1,BLACK); break; case 2: Setfillstyle(1,WHITE); break; default: break;fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);void show(int pat)switch(pat) case 0: setfillstyle(1,BLACK); break; case 1: setfillstyle(1,WHITE); break; default: break; fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);void move()int key;int pat=0;for(;) key=bioskey(0); switch(key) case LEFT: if(x=-1) break;hide();x-;x=x14?14:x;show(pat);break;case DOWN:if(x=-1) break;hide();y+;y=y14?14:y;show(pat); break;case UP: if(x=-1) break;hide();y-;y=y0?0:y;show(pat); break;case ENTER: if(board_flagxy!=0) break;show(pat);board_flagxy=pat+1; if(is_win(pat) settextstyle(0,0,3); setcolor(RED);if(pat=0) outtextxy(max_x/2-80,max_y/2,”Black Win!”);else outtextxy(max_x/2-80,max_y/2,”White Win!”);setcolor(BLUE);getch();exit(1);if(pat=0) pat=1;elsepat=0;show_init(pat); break;case ESC: exit(1); break; default: break;int is_win(int pat)int i,j;int cnt=0;cnt=0;i=x;while(i=0) if(board_flagiy=pat+1)cnt+;elsebreak;i-;if(cnt=5)return 1;cnt=0;i=x;j=y;while(i15)if(j=0)if(j14)break;if(board_flagij=pat+1)cnt+;elsebreak;i-;j+;if(cnt=5)return 1;cnt=0;j=y;while(j=0)if(board_flagxj=pat+1)cnt+;elsebreak;j-;j=y+1;while(j=5)return 1;cnt=0;i=x;j=y;while(i=0)if(j0)break;if(board_flagij=pat+1)cnt+;else break;i-;j-;i=x+1;j=y+1;while(i14)break;if(board_flagij=pat+1)cnt+;elsebreak;i+;j+;if(cnt=5)return 1;return 0;6 结束语 在本次课程设计中,不仅让我认识到自己学习上的不足,也通过请教其他同学和老师,让我对程序进行了修改并运行,还让自己复习了编程的知识,对遇见的众多问题,通过思考,耐心动手解决问题。在设计五子棋游戏的过程中也让我明白合作的力量,设计在课程设计期间我也学到了课本中学不到的知识,明白了只有通过自己不断地动手实践才能找出不足、找出问题和提高自己的能力,发现课程设计是我学习和掌握专业知识的好方法,它可以让自己变得活跃,也会看明白程序问题,使自己受益匪浅。才能让自己的能力不断提高。 最后,感谢孙晓杰老师的悉心指导,教给我的程序设计的思想和知识。这次课程设计要感谢老师和同学为我提出了很多的宝贵意见,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合同法律制度课后测试题满分答案
- 急救护理模拟考试题(含参考答案)
- 人大档案学课件
- 低压受电装置基础知识培训课件
- 人内传播课件
- 陕西省咸阳市2024-2025学年高一下学期期末质量检测生物试卷
- 职业规划指南:南航大厦面试题目及答案深度解读
- 2025-2030工业视觉检测设备市场渗透率提升路径研究报告
- 2025-2030工业网络安全防护体系建设投资回报评估
- 2025-2030工业气体市场区域供需不平衡与价格波动影响因素报告
- 2025历年退役军人考试题库及答案
- 第一二单元月考综合试卷(试题)四年级上册数学沪教版
- 2025-2030中国土地估价行业标准体系完善与国际化发展研究
- 2025级新生军训开训仪式动员大会
- 2025年医院处方审核规范考核试题(附答案)
- 2025年天津市辅警招聘考试考试试题库附答案详解(黄金题型)
- 2025版旧房翻新基础装修合同范本
- 铅衣消毒管理办法
- 2025新村级后备干部考试题库(附含答案)
- 寄宿学校班主任培训课件
- 克痉方湿热敷:缺血性脑卒中后上肢肌肉痉挛康复新路径
评论
0/150
提交评论