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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言图形五子棋课程设计报告Word下载.docx

1、传统五子棋的与围棋相同,分为黑白两色,棋盘为1515,棋子放置于棋盘线上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。 程序设计 本程序设计为人与人对弈,一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己的棋子五子相连,首先实现五子相连的一方获胜。程序执行过程中,要求棋盘、棋子时时可见,并且人可以通过按键盘按键移动光标,摆放棋子。 程序需求分析根据功能需求,将程序分为图形显示、玩家控制、胜负判断和玩家计分四个模块,以下分析各模块的需求。图形显示模块:程序开始运行

2、时,给出欢迎及帮助界面;游戏开始后要求生成1919的棋盘图像,并在棋盘上方提示当前落子方棋子颜色,游戏进行过程中,要求实时显示棋盘上已落下的棋子;分出胜负后,要求给出游戏结束画面。玩家控制模块:程序开始时,需玩家确定而后开始游戏;游戏过程中,两个玩家通过不同的按键移动光标,选择落子;游戏结束时,有玩家选择是否开始新棋局。胜负判断模块:实时监测棋盘上棋子,一旦某一色棋子出现五子连线,终止游戏程序,并着色连成一线的五子,弹出该色玩家胜出界面。玩家计分模块:一方玩家再胜利后通过对文件的操作进行计分,并输出于计分板上。程序流程设计根据程序需求分析结果,可以得出程序的总体结构图如图1,程序总体流程图如图

3、2。图1第2章:概要设计 各类头文件,变量及宏定义#include#include #include #include#define closegr closegraph/*定义1号玩家的操作键键码*/#define W 0x1177/*上移-W*/#define S 0x1f73/*下移-S#define A 0x1e61/*左移-A#define D 0x2064/*右移-D#define SP 0x3920/*落子-空格键*/*定义2号玩家的操作键键码*/ #define UP 0x4800/*上移-方向键up*/#define DOWN 0x5000/*下移-方向键down*/#def

4、ine LEFT 0x4b00/*左移-方向键left*/#define RIGHT 0x4d00/*右移-方向键right*/#define ENTER 0x1c0d/*落子-回车键Enter*/#define ESC 0x011b/*退出*/#define Y 0x1579/*YES*/#define N 0x316e/*NO*/#define BACK 0xe08 /*悔棋*/#define DEL 0x5300 /*删除比分*/ 全局变量int ch,dh,del;/*文件操作计分变量*/int k,i,j,n,t;/*控制变量*/int a2020;/*棋盘数组*/ 图形模块棋盘的显

5、示由游戏开始与结束部分控制,棋子以及棋子定位框的显示与保留由玩家操控部分决定,本章只列写棋盘与棋子的显示程序。图形模块主要由以下函数组成:initgr();/*图形界面初始化函数*/Welcome();/*欢迎界面*/Help();/*帮助界面*/board();/*画棋盘*/white();/*画白棋子*/black();/*画黑棋子*/bye();/*结束界面*/green();/*连珠时着色相应棋子*/show();drawmat();/*显示中文的点阵图函数,以及产生动态变色效果*/border();/*棋子定位框函数*/delborder();/*删除当前位置棋子定位框函数*/p1t

6、urn();/*轮到1p时在左边边框画出白棋以及输出white turn以提示1p进行操作*/p2turn();/*轮到2p时在右边边框画出黑棋以及输出black turn以提示2p进行操作*/p1del();/*轮到2p时去除p1turn();函数的效果*/p2del();/*轮到1p时去除p2turn(); 玩家操作模块棋子的移动与落子有键盘上按键控制,本程序选取1P按键为W、S、A、D和空格键,2P按键为、和回车键,分别代表上移、下移、左移、右移光标和落子。在光标移动的过程中,光标按照玩家按键移动;在玩家按下落子按键后,程序自动调用棋子显示子程序和判断胜负子程序。1P、2P的落子后,程序

7、会为落子处的数组元素赋一个特定值,用于判定胜负。玩家操作模块主要由以下函数构成:P1move();/*玩家1移动函数*/P2move();/*玩家2移动函数*/Back();/*悔棋函数*/ 胜负判断模块胜负判断模块是程序的关键,该模块的设计直接关系到程序的运行速率和运行结果的正确与否。本函数根据每次落子的位置,分别向上、下、左、右、左上、左下、右上、右下八个方向判断是否有相同颜色的棋子连成五子,如果成立,游戏就结束,并显示提示信息,否则继续落子。以下简析本程序流程:,由获胜条件可以知,通过判断上、下、左、右、斜上、斜下八个方向上是否有连续的5个子即可得出是否获胜结果。在游戏开始时,将棋盘初始

8、化,即将棋盘抽象为一个19*19的数组,数组中每个元素数值设为6。1P落子时,将数组内相应坐标处元素赋值为0;2P落子时,将数组内相应坐标处元素赋值为1。通过循环扫描棋盘数组,如果 上、下、左、右、斜上、斜下八个方向某5个连续的子所对应的数组中元素之和等于5时,1P获胜;当上、下、左、右、斜上、斜下八个方向某5个连续的子所对应的数组中元素之和等于0时,2P获胜。胜负判断模块主要由以下几个函数构成:Win();/*主要函数,判断胜负*/P1win();/*p1胜利时调用,用于告知p1玩家胜利及询问是否继续*/*p2胜利时调用,用于告知p2玩家胜利及询问是否继续*/restart();/*询问是否

9、重新开始新的一局比赛的函数*/initialization();/*初始化棋盘对应数组所有值为6*/玩家计分模块 为了能使1p和2p更直观更便捷地看到双方对战的比分,所以做了此计分模块,因为分数不能因为重新调用main()函数就丢失了,所以采用对文件的操作,通过文件来记录双方的比分,这里对和文件进行操作,用来计1p和2p的分数。 玩家计分模块主要由以下几个函数构成:Point();/*整合所有文件操作的模块*/ p1_point_input();/*1p计分文件读取*/ p1_point_input2();/*1p计分文件写入*/ p1_point_output();/*1p计分文件输出*/

10、p2_point_input();/*2p计分文件读取*/ p2_point_input2();/*2p计分文件写入*/ p2_point_output();/*2p计分文件输出*/delscore1() ; /*删除当前1p分数*/delscore2(); /*删除当前2p分数*/ 各模块之间调用关系如下第3章:详细设计initgr() /* BGI初始化 */ int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */ registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运

11、行 */ initgraph(&gd, &gm, );welcome() /*欢迎界面*/ initgr() ; /*初始化*/clearviewport(); /*清屏*/ setcolor(2); /*设置颜色*/ settextstyle(0,0,6); /*样式*/ outtextxy(180,180,Welcome/*位置以及内容*/ settextstyle(0,0,2); /*文本样式*/ outtextxy(240,420,press any key to continue getch(); /*press any key to continue*/help() /*帮助界面,基本操作同welcome();函数*/ initgr(); clearviewport(); outtextxy(60,100,P1 move; W S A D outtextxy(60,120, set : space outtextxy(60,180,P2 move: up down left right outtextxy(60,200, set: Ent

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

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