五子棋课程实训报告

五子棋课程实训报告
五子棋课程实训报告

一、设计内容与设计要求

1.设计内容:

在手机屏幕上设计一个五子棋游戏,屏幕有棋盘,可人与人对奕,人与机对弈。双方交替下棋,如果某方在水平、垂直或45度方向有连续的5个棋子,就算胜利,结束比赛,提示游戏得到的

分数。

2.设计要求:

(1)论述课题的性质、内容以及本次课程实训的目的和要求。

(2)说明Android系统对计算机软、硬件环境的基本要求,对Android应用程序作简要的说明。(3)界面设计和游戏操作设计:界面要求美观和友好(可使用图片资源文件),使用手机键盘上的2个方向键控制方向,按照手机上的操作习惯进行设计。

)游戏核心数据结构设计4(.

主要是界面控制信息:五子棋的位置信息,双方已经下棋子的具体位置。

逻辑控制信息主要双方交替下棋。下棋子和处理, 棋子只能下到棋盘的指定位置(棋盘的格子上)并不能下到已经有棋子位置,

(5)胜负判断:双方每个已下点的3个方向判断它们是否构成五连、五连就胜利。

(6)编写代码、上机输入、调试、修改并运行通过。

(7)编写实训说明书。说明书是总结性的技术文件,应全面叙述整个设计的内容及过程(可参考上述6条),发现的问题及解决方法等。

(8)源代码和参考书目应作为说明书的附录。

(9)说明书应采用A4纸张,文字说明不少于4000字。说明书中应包括系统结构示意图。

进度安排二、第十五周星期一上午8:30——11:30,

星期二下午2:30——5:00,

星期三上午8:30——11:30,

星期四上午8:30——11:30,

第十六周星期一一天,

星期二一天

星期三上午8:30——11:30,

星期四上午8:30——11:30,

目录

一、课程实训的目的及要求-------------------------------------------6

二、游戏设计思路---------------------------------------------------7

三、主要功能实现---------------------------------------------------9

四、程序调试-------------------------------------------------------12

五、程序源代码-----------------------------------------------------13

六、总结-----------------------------------------------------------21

七、课程设计评分表-------------------------------------------------22

一、课程实训的目的及要求

本次课程实训是专门针对大四学生的一次项目实践,当前3G移动互联网发展迅速,而Android系统已经成为当前时期移动终端设备的主流操作系统之一,在这样的条件下计算机与通信学院组织这次基于Android系统的手机项目实战,紧跟当前时代电子通信业的发展,让学生学习当前主流的新技术,扩展学生们的视野,为即将大学毕业的我们进入社会求职开辟了一条新道路。

通过这次课程实训我们主要了解和掌握了以下内容:

(1)会在eclipse下搭建Android系统的开发环境;

(2)熟悉Android系统应用程序架构和代码编写;

(3)了解游戏开发的原理,能够解决游戏在不同屏幕上的移植问题;

(4)熟悉Android系统的线程机制和绘图原理;

(5)能够在eclipse中对Android系统应用程序进行调试;

二、游戏设计思路

1、游戏功能介绍

五子棋游戏通过黑白双方在固定大小的方格棋盘上进行交替落子,直到有一方在落下一棋子后在该棋子的周围形成垂直方向、水平方向、左上到右下方向或左下到右上方向形成有大于等于5个同样颜色棋子的一条直线,则执该颜色棋子的玩家赢得该棋局。

在我所设计的游戏中,主要的功能为:人与人对弈,给出当前该谁进行落棋子的提示,在游戏结束时给出游戏结束的提示对话框,实现在游戏过程中(未结束)重新开始游戏的功能,实现游戏过程中退出游戏的功能。

2、游戏模块的划分

该游戏由于是人与人之间的对弈,因此逻辑比较简单,因而实现的模块划分也较简单。这里的主要的模块有三部分:一是坐标转换模块,将屏幕点击位置的像素坐标位置转换为棋盘上的棋子的坐标位置;二是绘图模块,根据用户点击屏幕的位置,判断应该做出的响应并进行屏幕的重绘;三是游戏结束的判断模块,当用户点击落下一个棋子后,立刻判断该棋子的落下是否决定了该棋局的胜负。其它的小模块还有游戏的初始化,游戏的重置,游戏的退出模块。

游戏运行的界面如下所示:、

3.

、游戏结束时的界面4.

五子棋Java实验报告

五子棋JAVA实验报告 目录 五子棋JA V A实验报告 (1) 一、实验目的和要求 (2) 二、五子棋的基本常识与原理 (2) 三、五子棋的系统设计 (3) 四、五子棋的实现与测试 (7) 五、分析与总结 (10) 六、附录 (12)

一、实验目的和要求 1、能够用编程语言实现一个简单的五子棋程序 2、在实际系统中使用、实现人工智能的相关算法 3、进一步加深对人工智能算法的理解 二、五子棋的基本常识与原理 1、五子棋的起源 五子棋,是一种两人对弈的纯策略型棋类游戏,亦称“串珠”、“连五子”;是中国民间非常熟知的一个古老棋种。相传,它起源于四千多年前的尧帝时期,比围棋的历史还要悠久。亦有传说,五子棋最初流行于少数民族地区,以后渐渐演变成围棋并在炎黄子孙后代中遍及开来。 五子棋发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。 传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为19X19,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。 2、五子棋的基本常识 与任何一种竞技棋一样,五子棋的每一局棋也分为三个阶段:开局,中局和残局。 五子棋的开始阶段称为开局,或称布局。其开局阶段是十分短暂的,大约在七着与十几着之间。在这一阶段的争夺中,双方的布局,应对将对以后的胜负起着极为关键的作用。在开局阶段取得的形势好坏,主动与被动,先手与后手的优劣程度,往往直接影响中局的战斗。因此积极处理好开局和开局向中局的过渡十分重要。 五子棋是从一至五,逐渐布子,发展连系,同时运用限制和反限制的智慧,在连子的过程中为自己的棋子争得相对的主动权和优势,逐步扩展优势,或者从劣势转化为优势,击溃对方的防线,最后连五取胜或抓禁手取胜或迫使对方投子认负。 3、五子棋比赛的相关规定 (1) 职业连珠规则 a. 黑方先下子,白后下,从天元开始相互顺序落子。 b. 最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。 c. 黑棋禁手判负,白棋无禁手。黑棋禁手包括“三三”(包括“四三三”)、“四四”(包括“四四三”)、

五子棋c课程设计

目录第一章:课程设计目的和要求 (2) 1.1数据结构课程设计的目的 (2) 1.2数据结构课程设计实现的要求 (2) 第二章:课程设计任务内容 (3) 2.1五子棋对弈系统 (3) 第三章:详细设计说明 (4) 3.1功能设计 (4) 3.2五子棋对弈系统流程图 (4) 3.3软件中实现各项功能的函数与程序代码 (5) 第四章:程序运行环境说明 (10) 4.1程序运行环境说明及出现的问题 (10) 4.2运行结果 (10) 第五章:课程设计心得与体会 (14) 附录 (15) 源程序: (16) 五子棋 第一章课程设计目的和要求 1.1数据结构课程设计的目的 进一步培养结构化程序设计的思想,加深对高级系统语言基本语言要素和控制结构的理解,针对数据结构中的重点和难点内容进

行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。 此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。 1.2数据结构课程设计实现的要求 使用C++语言编写一个基于控制台的简单程序,使学生掌握简单的程序设计技巧。同时设计一个简单的五子棋对弈系统,可以实现五子棋的基本功能,是一款娱乐用的小型程序。 第二章课程设计任务内容 2.1五子棋对弈系统 设计一个五子棋系统程序,实现对五子棋进行运行。 基本要求:五子棋是有两个人在一盘棋上进行对抗的竞技活动。在对局开始时,先由用户选择哪方开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围交叉点上落子,如此轮流落子,知道某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方程就算获胜。 此时算法结束,当有任何一方退时出,都可在算法中实现。 第三章详细设计说明 3.1功能设计 (1)由两个玩家分别下棋,当某一玩家五子相连,则赢。

五子棋实训报告

五子棋实训报告 五子棋实训报告 篇一: (3)棋子的绘制与存储棋子的绘制用实心圆模式,颜色为黑色及 白色两种。 棋子在内存中的存储方式: 因为表示各个棋子的数据类型都相同,所以考虑用数组存储,因 为棋盘是二维的,因此棋子用二维数组a存储。 a{ setTitle{ Objet obj = e.getSoure } toolbar = ne JPanel{ } publi int getX{ } publi int getY{ } publi Color getColor{ } return olor; return ; return x; this.x = x; this. = ; this.olor = olor;篇 四: 实习报告-五子棋 信息工程学院 201X年毕业实习报告 班级: 计科XX 姓名: XXX 实习地点: XXXXXX 实习12周-19周

一、实习目的 1. 夯实专业基础,提高动手能力。 把专业知识应用于实践,找出专业薄弱环节加强巩固。 3. 了解就业单位的计算机技术的应用情况、需求情况和发展方向及前景,培养实践能力、分析问题和解决问题的能力以及综合运用所学基础知识和基本技能的能力,同时也增强了适应社会的能力和就业竞争力。 4. 挖掘自身潜力,寻找自身不足,通过实践对未来做出合理规划。 二、实习任务 在MElipse的平台上运用java语言,学习开发一个常用小游戏:五子棋。 三、实习计划 5. 基础夯实,联系实践。 在信息高速发展的今天,计算机科学技术的重要性也在人们的日常生活中日益突显。不管是从事理论教学还是从事软件的设计和开发,基础都是最有力的保障。思想决定行动,认识决定成败。没有正确的思想作为指导,行动就会陷入盲目和被动。缺乏正确的认识基础,前途就会迷茫,方向就会迷失,机会就会丧失。所以说,理论学习是我增强行动自觉的重要保证。人常说:“经济基础决定上层建筑”专业基础对我来说就是经济基础,而上层建筑就是我们所从事的相关工作。但是只拥有专业基础还是不行的,所以,我必须要把理论应用于实践。这也是此次实习课程的重要所在,以专业基础知识为重要依托,以专

C语言图形五子棋课程设计报告

北京师范大学C语言课程设计汇报 课题名称:游戏五子棋 指导老师:尹乾 课题组员:罗福莉赵帅帅何虹达院系:信息科学和技术 时间:20XX.3.15-20XX.4.20

摘要 五子棋是一个两人对弈纯策略型棋类游戏,应用C语言编写程序能够在计算机上实现二人对弈五子棋功效。二人对弈五子棋程序由欢迎界面显示、游戏界面生成、光标移动和落子、判定胜败、悔棋功效、提供音效等子程序组成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。程序经过棋盘和棋子图像生成、二人移子和落子和判定胜败等功效实现,在计算机上实现了二人五子棋对弈。

目录 摘要-------------------------------------------------------------------------------------- 2 第1章:需求分析-------------------------------------------------------------------- 3 1.1五子棋背景-------------------------------------------------------------------- 3 1.2 五子棋需求分析和步骤设计 -------------------------------------------- 4 第2章:概要设计-------------------------------------------------------------------- 7 2.1 各类头文件和全局变量--------------------------------------------------- 7 2.2 画面显示模块---------------------------------------------------------------- 8 第3章:具体设计------------------------------------------------------------------ 11 3.1 玩家操作模块-------------------------------------------------------------- 11 3.2音效提供模块 -------------------------------------------------------------- 11 3.3 胜败判定模块-------------------------------------------------------------- 12 第4章:调试分析------------------------------------------------------------------ 13 4.1 图形模块 -------------------------------------------------------------------- 13 4.2 玩家操作模块-------------------------------------------------------------- 13 4.3 胜败判定模块-------------------------------------------------------------- 14 第5章:用户手册------------------------------------------------------------------ 14

五子棋课程设计实验报告

西南交通大学 程序语言综合课程设计 五子棋游戏 课程《程序语言综合课程设计》 学院信息科学与技术学 专业软件工程 姓名 学号 20119050 日期 2016年月日

目录 第一章课程设计的目的和要求 (3) 1.1 课程设计的目的 (3) 1.2 课程设计的要求 (3) 1.3 课程设计的实验环境 (3) 第二章功能描述 (4) 第三章总体设计 (5) 3.1 功能模块设计 (5) 3.1.1 任务执行流程图 (5) 3.1.2 下棋函数流程图 (6) 3.2 数据结构设计 (7) 3.2.1 定义结构体 (7) 3.2.2 定义数组 (7) 3.2.3 全局变量 (7) 3.3 函数功能描述 (7) 第四章程序实现 (8) 4.1源码分析 (8) 4.2运行结果及界面介绍 (25) 第五章后记 (30)

第一章课程设计的目的和要求 1.1 课程设计的目的 1.加深对C语言数据类型,运算,语句结构及其程序设计的基本方法理解和掌握; 2.熟练掌握流程图的绘制、程序设计文档的书写; 3.通过编写一个完整的程序,一方面可以检查我们这学期的学习情况,为以后的学习打下坚实的基础; 4.熟悉C语言游戏编程,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。 1.2 课程设计的要求 1、编写程序代码,调试所写程序使其能够正确运行; 2、能进行基本的五子棋操作,有图形界面,能够用键盘操作; 3、能够实现悔棋、存档和读档等附加功能 1.3 课程设计的实验环境 该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下: 硬件:Cpu:2.1GHZ,内存,2GB,硬盘:320GB,操作系统:windows xp 软件环境:安装VC++6.0

五子棋游戏实验报告

五子棋游戏实验报告 课程名称计算机程序设计(VB) 学号______________________ 姓名______________________ 班级______________________ 提交时间 五子棋软件设计 一、实验目的 1?通过五子棋软件设计或者自拟题目设计,巩固本课程所学的各个章节重点知识,自拟题目的同学需尽早向教师提岀自己的想法及设计方案。 2?通过开发一个较大的系统,增强软件开发能力。 3?通过调试系统,增强逻辑思维能力。 二、实验内容 1.基本要求: (1)输入两个对手名字,然后进入游戏界面。 (2)用鼠标点击的方式在棋盘上摆放棋子,黑白交替。(棋盘15*15 ) (3)可以悔棋。 (4)五子连在一起的时候能判断胜利,并且显示出胜利者的名字。 (5)能够将棋局的结果保存,保存该棋局

结束的状态、对手名字、棋局名字(棋局名字在保存时由用户在相应的界面下添入)(此功能要求用数据库和文件两种技术实现)。

因为棋盘上空点居多,大部分点的信息为0,因此只需保存有棋子的点的信息 用文件技术进行棋局保存,思路相同。 (7)五子棋恢复棋局 思路:首先从数据库文件中找到要恢复棋局的数据(即曾经保存的数据),然后把这些数据赋值给内存中相应的数组或者变量中,按照这些数据重新绘制棋盘和棋子,即完成了对棋局的恢复。 窗体启动事件应该完成的事情: 组合框中应该显示曾经保存的棋局名。因为每次保存棋局时,都是将棋局所有棋子的记录添加在表的最 后,因此表中关于棋局名的记录只能是类似于aaabbbbccccc的形式,而不可能是abbcacc的形式,根据 这个特点编程序取出表中不同的棋局名。 具体算法: 用一个字符串变量strfile初始值为空,从表的顶端向下依次移动记录指针,如果当前记录的棋局名字段和strfile不相等,说明进入另一个棋局的记录中,将该棋局记录的棋局名赋值给strfile,并加入到组合 框中,一直到表中最后一个记录 因为要从数据库中取岀相关数据到a数组中,因此要将a数组所有数据清零。 要建立一个data控件,与数据库连接起来,而后识别棋局(即表中的棋局名字段与在列表框中选择的棋 局名比较),将数据库该棋局中所有信息都赋值给a数组及相关变量。 刚才仅仅是数据的恢复,即将数据库中已经保存过的数据恢复到内存中,下一步应该根据内存中的数据重新绘制棋盘以及棋子。 重新绘制棋盘是独立的一块功能,因此考虑用全局子过程来实现,该子过程定义在模块中。思路如下: 清屏一绘制棋盘一根据a数组中的每一项的两个下标来决定绘制棋子的位置,根据每一项的值是1还是 2来决定在该位置绘制何颜色的棋子。 决定该黑白方走的blackwhite变量当时没有保存,可以采用在数据库中保存的方式来解决,本例中解决方法是通过数黑白棋子个数来决定恢复棋局后该谁走的。 因此设置了一个变量做计数器,每走一步棋计数器的值加一。 用文件技术实现棋局恢复,思路相同。 (8)悔棋 悔一步棋:用几个变量来表示关于一步棋的几个信息,每次下子都将该子的信息赋值给那几个变量,悔 一步棋即将那几个变量所表示的点的a数组信息清零。而后调用paint ()过程重画。 以上是教师带着学生完成的软件功能。 遗留问题:保存棋手姓名和棋局名并在恢复棋局的时候显示。(需要同学们自己完成)思路:在数据表中多建立两个字段,分别表示两个棋手姓名,同其它数据的保存类似。 三、设计日期 十二月 四、完成日期 十二月 五、实验体会 其实,一开始学习vb我就对它不抱有一定的热情,可能是因为要用到计算机以及编程问题,当时一想到有代码,就会无比的苦恼,但是为了让这门课顺利通过,我还是怀着一颗必须要学的心情。起初,我对待这门新课程和其他课

课程设计-c语言设计-五子棋游戏 0528

课程设计-c语言设计-五子棋游戏

河南城建学院 测绘与城市空间信息系 测绘程序设计 题目: 五子棋游戏 班级: 0614112 人数: 3人 成员: 学号: 指导老师: 时间:2012年6月

目录 1课程设计报告-------------------2 1.1问题描述----------------------2 1.2 任务分工- - - - - - - - - - - - - - - 2 1.3需求分析---------------------------3 1.4概要设计-----------------------3 1.5详细设计-----------------------4 1.6调试分析---------------------5 2源程序---------------------6 3程序的说明文件-------------------12 4课设总结-----------------------13

1.课程设计报告 1.1问题描述 连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。 1.2 五子棋的背景 传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为15×15,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。 1.2 任务分工 组长:赵哲武 负责小组程序的输入和创新部分,分配任务,使工作衔接有序,以

五子棋C++实验报告

(此文档为word格式,下载后您可任意编辑修改!)

一、需求分析 1.1开发背景 电脑游戏行业经过二十年的发展,已经成为与影视、音乐等并驾齐驱的全球最重要的娱乐产业之一,其年销售额超过好莱坞的全年收入。互联网的出现为电脑游戏行业发展注入了新的活力,凭借信息双向交流、速度快、不受空间限制等优势,让真人参与游戏,提高了游戏的互动性、仿真性和竞技性,使玩家在虚拟世界里可以发挥现实世界无法展现的潜能,改变了单机版游戏固定、呆板、与机器对话的状况。网络游戏的这些优势不仅使其在电脑游戏行业中异军突起并在某种程度上取代了单机版游戏,而且成为网络业三大(网上金融、网上教育和网络游戏)赢利且利润优厚的领域之一。 网络作为一种新兴的传播方式,主要包括三大内容:娱乐、资讯、通讯。提到网络娱乐,过去主要指的是单机版游戏,没有引入网络的概念但随着科技的发展,游戏娱乐产业也在成长目前,国内的游戏娱乐产业正处于起步阶段,特点表现为:第一,它是一种文化的传播。娱乐产业可以潜移默化地改变人的观念,当前,很多多媒体的播放已被电脑网络所取代。第二,网络游戏加强了人与人的沟通。第三,网络游戏具有一定的教育意义。网络游戏所具有的角色扮演的功能,使得玩家能通过互助更好地完成游戏中的各项任务。网络无国界,游戏在网络文化产业世界的发展中地位会越来越高。 目前在国外,休闲游戏如棋类等,玩家的年龄跨度非常大,这和我国目前网游市场以青少年为主要消费人群的状况截然不同。其实,网络可以解决空间的问题,网络和生活越来越息息相关,因此,开辟适合各个年龄层的游戏产品迫在眉睫。同时,这也涉及到一个企业开发的能力。娱乐产业发展到一定程度,通过不断锻炼和经验的积累,完全可以通过融入娱乐的成分把教条的东西深入浅出地展现给消费者。 就国内的发展来看,最近這两三年内国内的游戏公司如雨后春笋般的成立,所开发或代理的网络游戏更是不胜枚举。以全球游戏业界的发展来看,這几年韩国的表现最为突出,特別是在网络游戏的技术研发兴游戏制作,其所发行的网络游戏更成为全球游戏产业重要的指标之一。去年在美国洛杉矶所举行的 E3(Electronic Entertainment Exposition)展中,已经有几家的韩国厂商挤入世界第一线的游戏开发厂商之列。 近几年来,由于 3D 硬体绘图技术的突破,使得即时描绘的书面越来越精致,而且3D遊戏性更多元化更逼近真实世界,因此在遊戏产业中,3D 游戏已经逐渐取代2D游戏为游戏市场的主流,即使是网络游戏,也慢慢趋向3D化。然而游戏3D化将会带来的游戏开发上的困难等问题,这些问题以后都需要逐步解决。 人们面对电脑的时间越来越多,面对身边的人的时间越来越少,所以我们游戏所要达到的目的就是加大人们之间的沟通,让大家随时随地都可以体验到玩游戏的乐趣。而三子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。同样的,通过这个游戏,既能在休闲时刻娱乐一下,也能在压力面临的时候放松一刻。

五子棋系统实验报告

湖南工业大学 课程设计任务书 2015—2016学年第2 学期 计算机与通信学院(系、部)计算机科学与技术专业计算机1502班级课程名称:面向对象程序设计 设计题目:五子棋 完成期限:自2016年6月13日至2016年6月19日共1周

指导教师(签字):年月日 系(教研室)主任(签字):年月日

面向对象程序设计课程设计 设计说明书 五子棋 起止日期: 2016年6月13日至 2016年6月18日 学生姓名王回 班级计算机1502学号15408100209成绩 指导教师(签字) 计算机与通信学院 2016年 6 月 18日

五子棋 一、课题的介绍和课题的任务 设计的课题名称:五子棋 实现以下功能: 功能1、模拟真实棋盘棋子 功能2、模拟人与人对战下棋 功能3、模拟实时胜负判断 功能4、模拟棋局的存储与读取 二、设计的要求 具有动画功能(即图像能即时移动),能实现人与人进行简单的对玩,能实现简单的胜负判断 三、系统的分析和系统中类的设计 CWZQApp类作用:初始化应用程序及运行该程序的所需要的成员函数CWZQDoc类作用:存放应用程序的数据以及实现文件的保存,加载功能 CMainFrame类作用:管理应用程序的窗口,显示标题栏,状态栏,工具栏等,同时处理针对窗口操作的信息 CAboutDlg类作用:向导自动生成对话框类 CWZQView类作用:管理视图窗口,在框架窗口中实现用户数据的显示和打印,存放添加的功能模块

CWZQView类中的成员函数与数据成员: void Save(); //**** //保存文件 void OnOpen() //打开文件 void over(CPoint point);//**** //检查是否结束voidOnDraw(CDC* pDC) //画棋盘函数 void OnLButtonUp(UINT nFlags, CPoint point)//模拟下棋函数 HCURSOR hcursorwhite; //**** //两个鼠标 HCURSOR hcursorblack; //**** intwzq[19][19]; //**** //棋盘数组 boolcolorwhite; //**** // colorwhite TRUE时白棋下, 否则黑棋下 CBitmapm_bmblack; //**** //棋子位图 CBitmapm_bmwhite; //**** void CWZQView::OnDraw(CDC* pDC) //构造棋盘,显示白棋以及黑棋 GetDocument() //获取文档指针,在视图中显示文档内容 CBrush //用于构造CBrush对象,然后传给需要画 刷的CDC成员函数 pDC->FillRect(myrect1,&mybrush1) // 画黑框线 四、系统的实现及调试 添加的功能: 1.图标,光标以及位图的绘制 程序运行开始鼠标在进入棋盘界面未放下棋子时变为类似棋子光标,此处需要描绘2种棋子光标: 黑白鼠标Cursor以替换当前鼠标: IDC_CURSOR1 黑棋子 IDC_CURSOR2 白棋子 说明: 由于下棋时我们必须把鼠标热点设置在中间,点击下图(图3-1-3)最右边按扭,然后把鼠标移动到图像中你想设置为热点的地方,按下鼠标左键。

c语言程序设计五子棋

伊犁师范学院高级语言课程设计报告 学院:电子与信息工程学院 学生姓名: 学号: 专业届别: 指导教师: 完成时间:

五子棋游戏 1 设计目的及要求 目的: (1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。 (2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计. (3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。 (4)运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。 要求: (1)独自设计、编制、调试出一款五子棋游戏。 (2)要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等)(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。 任务: 五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一发展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原则: (1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。 (2)可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。

(3)规范性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量避免不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。 2 开发工具 C语言 3 应用平台 Windows xp 4 功能设计 游戏分析: 五子棋是两人之间的竞技游戏,该五子棋程序基本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。 游戏介绍: 该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标则会在棋盘上显示棋子,(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子),若输入则退出游戏。 4.1 算法设计 程序说明: 五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,则该方获胜。 程序要求: 按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出: 输出棋盘、棋子,并能够进行相应的操作。

C++课程设计——五子棋

《面向对象程序设计课程设计》 ————五子棋 学号:201201051738 学院:信息科学与工程学院 班级:网络工程2班 指导老师: 学生姓名: 日期:2013 年06 月24 日

C++课程设计——五子棋 一、功能描述 设计一个五子棋游戏,实现双人对战,通过鼠标进行操作,具有悔棋功能,可以多次进行游戏,界面美观,有音效。重要的是按键进行弹窗提醒,由用户进行确认。 二、概要设计 窗口注册:向系统注册窗口。 建立窗口:初始化并建立窗口。 处理消息:等待消息传入,调用处理函数。 POINT_类:记录一个点及其处理函数,包括点的位置规范化函数。 Chess类:记录棋子相关信息及其处理函数,包括落子,起子函数。 GameGolbal类:记录一个五子棋游戏的整体信息及其处理函数,包括定义了POINT_类,Chess类的成员,及一些游戏中 会用到的整体变量。主要函数包括如下: 窗口刷新函数:通过储存的数据重新绘制窗口。 新游戏函数:对游戏的变量进行初始化的处理。 悔棋函数:对储存数据修改,达到悔棋的目的,会调用 窗口刷新函数。 声音播放函数:播放效果声音。

结果判断函数:每次落子后判断结果。 结果显示函数:绘制游戏胜利的结果。 程序运行流程及函数调用关系如下: 建立窗口 绘制棋子 注册窗口 悔棋 ID_BACK 标准化并记录坐标 窗口刷新 判断并累加操作的棋子 判断是否棋子覆盖 修改数据 调用声音函数 关于 IDM_ABOUT 退出 IDM_EXIT 鼠标左单击 WM_LBUTTO DOWN 新的一局 ID_NEW 数据初始化 窗口菜单命令 WM_COMMAND 判断胜负 判断胜负 显示结果 等待信息

五子棋人人对战c五子棋课程设计报告

VC课程设计报告 设计题目:五子棋人人对战 学院:理学院 专业班级:信息与计算科学班 学生:***** 学生学号:12345 指导教师:### 提交时间:2013年 07 月 02 日成绩:

目录 第1章引言 (4) 第2章任务概述 (4) 2.1问题概述 (4) 2.1.1问题重述 (4) 2.1.2设计目的 (4) 2.2需求分析 (4) 2.2.1基本要求 (4) 2.2.2游戏功能介绍 (4) 第3章概要设计 (4) 3.1功能设计 (4) 3.2程序结构 (4) 3.3基本流程 (4) 第4章程序实现 (4) 4.1主要变量及函数的说明 (4) 4.1.1主要变量 (4) 4.1.2主要函数 (4) 4.2主要功能的实现 (4) 4.2.1类声明 (4) 4.2.2棋盘初始化 (4) 4.2.3开始下棋 (4) 4.2.4判断下棋合法 (4) 4.2.4判断输赢 (4) 第5章结果与总结 (4) 5.1 运行结果截图 (4) 5.2总结 (4) 参考文献: (4)

第1章引言 通过一学期的课程学习,对和Visual2010 C++编程环境有了一定程度的了解。根据课程要求,利用两周时间对所学知识加以巩固学习,用c++编译小游戏,初步了解程序设计与软件实现的思想。 该设计通过对“五子棋人人对战”游戏的编写对所学知识复习巩固。程序设计过程中,先对问题进行了全面分析,将“五子棋人人对战”划分成几个子问题后,逐步细化,最终归结成一个个函数的实现。 第2章任务概述 2.1问题概述 2.1.1问题重述 设计一个五子棋,能实现人人对战。(棋盘大小为13X13) 2.1.2设计目的 独立地利用所学的C++程序设计和Visaul C++6.0编程环境编写程序。 2.2需求分析 2.2.1基本要求 明确五子棋游戏的游戏规则,编写程序实现其功能。 2.2.2游戏功能介绍 为了更好地实现游戏,首先必须明确“五子棋”的游戏规则。大体的规则可描述如下:(1)进入主界面后,选择开始游戏。 (2)开始游戏后,一方开始下棋。 (3)再由另一方下棋 (4)判断输赢。 (5)玩家选择结束游戏时,结束游戏。

五子棋课程设计实验报告

C语言程序设计报告 题目: 五子棋 班级: 电气Q1041班 人数: 3人 小组成员: 周啸天、万广富、黄山奇

指导老师:桂超 时间: 2011.11.30

目录 第一章课程设计的目的和要求 (3) 1.1 课程设计的目的 (3) 1.2 课程设计的要求 (3) 1.3 课程设计的实验环境 (3) 第二章功能描述 (4) 第三章总体设计 (5) 3.1 功能模块设计 (5) 3.1.1 任务执行流程图 (5) 3.1.2 下棋函数流程图 (6) 3.2 数据结构设计 (7) 3.2.1 定义结构体 (7) 3.2.2 定义数组 (7) 3.2.3 全局变量 (7) 3.3 函数功能描述 (7) 第四章程序实现 (8) 4.1源码分析 (8) 4.2运行结果及界面介绍 (22) 第五章后记 (27)

第一章课程设计的目的和要求 1.1 课程设计的目的 1.加深对C语言数据类型,运算,语句结构及其程序设计的基本方法理解和掌握; 2.熟练掌握流程图的绘制、程序设计文档的书写; 3.通过编写一个完整的程序,一方面可以检查我们这学期的学习情况,为以后的学习打下坚实的基础; 4.熟悉C语言游戏编程,掌握五子棋游戏开发的基本原理,从而为以后的程序开发奠定基础。 1.2 课程设计的要求 1、编写程序代码,调试所写程序使其能够正确运行; 2、能进行基本的五子棋操作,有图形界面,能够用键盘操作; 3、能够实现悔棋、存档和读档等附加功能 1.3 课程设计的实验环境 该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下: 硬件:Cpu:2.1GHZ,内存,2GB,硬盘:320GB,操作系统:windows xp 软件环境:安装VC++6.0

java五子棋小游戏实验报告(附源代码)

手机五子棋游戏的设计与实 现 专业: 姓名: 班级: 学号: 指导教师:

J2ME(Java 2 Micro Edition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项开发技术。它因其“write once,run anywhere”的Java特性而提高了开发的效率。随着手机性能的不断提高,手机休闲娱乐应用将成为PC休闲娱乐应用之后又一重要业务增长点。棋类游戏规则单一,比较适合在手机等便携终端推广。 由于具有跨平台、易于移植、占用空间小的优势,J2ME成为移动应用开发平台的主流,并提供了很多用以支持移动应用软件的开发的API。现将该技术用于这次的手机游戏开发,可以实现游戏的快速开发,不但便于查看游戏运行过程中内存的占用量和程序的每一部分代码消耗了多少处理器时间,而且可以不断地优化代码,使代码具有高度的复用性、可扩展性、可维护性。 游戏的开发以J2ME为平台,利用Java技术,结合J2ME的MIDP技术,并对于程序设计思想,重要类、方法等展开讨论。在对弈部分,分析设计走棋算法,选择合适的方式组织成代码,实现基本的人工智能。过程中使用了J2ME中的CLDC/MIDP软件体系,主要运用了MID Profile的特定类的支持,来完成游戏的开发。 关键词:J2ME;CLDC;MIDP

J2ME is a kind of fast developing technology implemented on various devices especially mobile communication equipments. It improves the efficiency of the development process because of its "write once, run anywhere" nature. The development trend of the entertainment market based on the cell phone is very obvious because the handset performance enhances unceasingly. The entertainment market based on the cell phone will to be the new important business growth point follow the PC entertainment market. As the rules of a single chess game, it is more suitable for mobile phones and other portable terminal extension. J2ME has been the preferred platform for development because of its platform independent and compatibility, and provides a lot of APIs to support the development of mobile application software. The technology for mobile game development, can achieve the rapid development of the game. It is not only easy to observe the memory consumption and processor consumed time during the operation of the game, but also can optimize the code, so that the code has a high degree of reusability, scalability, maintainability. The game has designed by J2ME, the Java technology and the MIDP technology. I studied the procedure thought, the important class and the method. In the playing chess part, I have analyzed the algorithm, choosed the appropriate way to organize the code and realized the basic artificial intelligence. On the other hand,I learned software system of CLDC/MIDP and the specific class of the MID Profile to complete the game development. Key words: J2ME;CLDC;MIDP

(完整word版)数据结构课程设计-五子棋

姓名:刘旭 学院:计算机与通信学院班级:通信工程101班指导老师:文志诚

目录 一、需求分析 (3) 1.1 开发背景 (3) 2.2 功能简介 (3) 二、系统设计 (4) 2.1 函数一览 (4) 2.2 “封面”的设计 (4) 2.3 二维数组与控制台 (5) 2.4 键盘操作 (6) 2.5判定 (7) 2.6 悔棋的实现 (8) 三、调试运行 (9) 3.1 进入界面 (9) 3.2 棋盘的初始状态 (10) 3.3 激战中 (10) 3.4 游戏结束 (11) 四、解决问题的关键 (11) 五、课设总结 (11) 六、附录 (12) 6.1 画图代码.................................................................................................. 错误!未定义书签。 6.2 初始化...................................................................................................... 错误!未定义书签。 6.3 Play函数 .................................................................................................. 错误!未定义书签。

一、需求分析 1.1开发背景 学习了数据结构该门课程,对于枯燥无味的理论知识,我们是否能够通过所学的知识在课程设计中做出有趣味东西,然后让我们对于数据结构更加的感兴趣呢?于是我和我的室友陈明建开始酝酿着写些什么东西。上个学期就已经写了通讯录那之类的链式结构,这次我们决心有所改变,我们学习了栈、队列、树、图,字典树有人选了,我们就来写一个基于图的小程序,五子棋,对,图的简单应用,于是我们开始着手来写这个小小的程序,祝我们好运! 2.2 功能简介 既然是五子棋,我们要做的是时时刻刻的将整个图(以下称为棋局)的状态呈现出来,那么界面就是必不可少的。MFC不会?没关系,我们就用基于控制台的字符输出来构建这个棋局吧,当然这只是第一步,详细如下: ○1拥有一个良好的进入界面,以及必要的选项; ○2拥有一个二维的数组来记录和更新实时的状态,并且能够有一种方法在DOS界面下绘制出整个棋局的实时状态(包括棋盘和棋子); ○3能够通过键盘上的按键完成所选位置的移动和选定操作; ○4能够在每一次的走棋后判定是否游戏结束(棋盘走满或者是一方胜出); ○5能够完成悔棋的功能,并保证这之间的棋局绘图能够与二维数组数据同步,做到真正意义上的悔棋。

数据结构课程设计实验报告五子棋

湖南科技学院实验报告 系部:计算机与通信工程系 专业:软件工程 姓名:范清文 学号:201008003113 班级:软件1001班 课程名称:数据结构程序课程设计 指导老师:卿武明 实验项目:制作简单的五子棋 课程设计目的:1:对本学期所学的专业知识进行实践运用 2:制作五子棋并实现它的图示化 实验环境:Visual C++6.0 实验内容(算法、程序、步骤和方法): #include #include using namespace std; int x,y,Step=0; bool flag=0; char Switch; char map[20][20][3]={ {"┌","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┬","┐"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"├","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┼","┤"}, {"└","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┴","┘"}}; char copymap[20][20][2]; float Player[20][20][1]; int Table[20][20] ,Showboard(),Play(),Interface(),Initboard(),Judgewin(),Deuce() ,Initdata(); bool legal(),Overflow(); int Interface() { char a; cout << "\n\n五子棋\n \t\t─\n 制作人:范清文(201008003113)\n\t\t────\n"; cout << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl; cout << " ~~ ~~" << endl; cout << " ~~ 1:人人对战~~" << endl; cout << " ~~ ~~" << endl; cout << " ~~ 2:退出~~" << endl; cout << " ~~ ~~" << endl; cout << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl; cout << "\n 请选择:"; cin >> a; if(a=='2') {

相关文档
最新文档