课程设计报告

发布 2022-10-01 05:43:28 阅读 9135

课。程。设。

计。报。

告。姓名:蒋博威。

班级:信息与计算科学09-1班。

学号:20096347

题目:简易五子棋游戏。

一、 课程设计目的:

综合运用编程语言以及数据结构的相关知识进行实际训练,培养及提高编程能力。

二、 课题要求:

设计程序实现一个人人对弈的简单五子棋游戏。游戏规则如下:在19×19的围棋棋盘的交叉点上,对弈双方轮流放子,最先在棋盘上摆成(按水平、垂直或对角线方向)连续放五个子的一方为胜方。

1、 五子棋游戏的基本功能:该功能为程序设计的最基本功能,程序有服务器端和客户端。但服务器端运行时会自动侦察是否有客户端运行,并自动接入开始游戏,当用户棋子五子连成一线时即胜出。

2、 游戏界面分析:良好的游戏界面对使用者来说是非常重要的。本程序设计的游戏拥有良好、美观的界面,和实际五子棋界面相似,给体验着予真实感。

同时游戏还设有提示图标(包括开始、悔棋、音效、结束等控制图标)。

是否。三、游戏程序说明:

主要成员变量说明。

1) 选择游戏模式标志——m_renren

用来表示当前玩家选择游戏的情况,当m_renren为false时,表示人机对战;为true时,表示人人对弈。

2) 游戏开始标志——begin

用来判断当前游戏是否开始。

3) 音效标志——sound

在下棋过程中,判断是否需要声音,当sound为true时,表示玩家需要声音,否则的话,玩家不需要声音。

4) 谁先下的标志——first

这个标志只对人机对弈时有效。当first为true时,表示人先下,否则,电脑先下。

5) 棋盘数据——points

points为棋盘情况数组,是用一个15*15的二维数组来表示的。points[i,j]=2表示此处无子,points[i,j]=1表示此处为黑子 points[i,j]=0表示此处为白子。

6) 棋子颜色标志——qzcolor

用来表示当前棋子的颜色,qzcolor=1时表示黑棋,qzcolor=0时表示百棋。

7) 棋子数据——qz

表示棋子所放的位子,是用一个15*15的picturebox类型的二维数组来表示。它还可以用来显示当前棋子的**。

8) oldmovepoint

用来记录鼠标经过后点的位置。

9) backstack

用于悔棋的栈。

10)backtrackstack

用于回溯的栈。

11)结局——result

用枚举类型来表示结局。如:

public enum result : int//结局。

回溯栈元素类——stackelement

成员变量:1) qzcolor 棋子的颜色。

2) bestfivepoints 最好点的位置。

3) pointscount 计算最好点的数目。

4)pointnumber 点的数目。

5)theresult 结局。

6)stepnumber **的步数。

棋子点属性类——qzdianshuxing

成员变量:1)blackconnect 黑棋子i个(包括活棋)的连接条数。

2)blackactive 黑活棋i个的连接条数。

3)whiteconnect 白棋子i个(包括活棋)的连接条数。

4)whiteactive 白活棋i个的连接条数。

5)tempactive3 活棋数为3的连接条数。

主要成员函数说明。

1) 初始化棋盘——initializeqp

初始化操作包括以下几个步骤:

设置棋子所在的位置。

设置棋子的大小。

初始化棋子的背景颜色。

将棋子的sizemode设置为 centerimage

将棋子的可见性设置为false

将棋子添加到form上。

2) 绘制棋盘——form1_paint

其主要是画出以40*40的大小为每一小格,**如下:

for (i = 0; i < 15; i++)

30 + i * 40, 50, 30 + i * 40, 610);

30, 50 + i * 40, 590, 50 + i * 40);

3) 绘制光标——form1_mousemove

当鼠标在棋盘上移动时,当前的显示画红方框,过去的显示和背景一样颜色的方框。

当前的红方框**如下:

if (10 < 10< &

x = 10) /40) *40 + 30;

y = 10) /40) *40 + 50;

x - 15, y - 15, x - 15, y - 5);

x - 15, y - 15, x - 5, y - 15);

x + 15, y - 15, x + 5, y - 15);

x + 15, y - 15, x + 15, y -5);

x - 15, y + 15, x - 15, y + 5);

x - 15, y + 15, x - 5, y + 15);

x + 15, y + 15, x + 15, y + 5);

x + 15, y + 15, x + 5, y + 15);

= x;= y;

过去的方框**如下:

if ( 1)

4) 下棋子——putqz

下棋子有两种可能性,一是知道一个点的横纵坐标;二是知道一个点。

下面我就说一说知道x,y坐标的情况,第二种情况只要调用第一种情况就行了。

假如下的是一个黑棋子,将qz的背景图设置为blackstone,并将此处标记为已下黑棋,并将此棋子标记为最后落子指示。如果悔棋的栈不为空,将其弹出栈,并将qz的图像设置为什么都没有,再将其压入栈。同理,白旗也跟这一样做。

**如下:

if (qzcolor==1)

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...