五子棋概要设计说明书
c五子棋课设说明书含完整源代码解读
*******************实践教学***********************大学计算机与通信学院2016年春季学期C程序设计课程设计题目:五子棋游戏专业班级:16级物联网1班姓名:******__学号:1616520147指导教师:******成绩:摘要五子棋是一种两人对弈或者人机对弈的纯策略型棋类游戏,应用C语言编写程序可以在计算机上实现人机对弈五子棋功能。
人机对弈五子棋程序由开始界面,棋盘,判断胜负和计分等子程序构成;程序中应用了数组、全局变量、按键处理和图形编程等元素和语句。
程序通过棋盘和棋子图像生成、玩家移子与电脑判断分数高低而落子和判断胜负等功能的实现,在计算机上用VC++6.0实现了人机五子棋对弈。
关键词:C语言;VC++6.0目录摘要 (I)第1章序言 (1)1.1设计背景 (1)1.2设计目的 (1)第2章需求分析 (2)第3章程序总体设计 (3)3.1程序总体框架图 (3)3.2程序流程图 (4)第4章程序详细设计 (5)4.1各类头文件及自定义函数 (5)4.2棋盘数组 (5)4.3开始界面函数 (5)4.4棋盘界面函数 (5)4.5胜负判断函数 (6)4.6得分判断函数 (6)4.7主函数 (6)第5章系统测试 (7)5.1开始界面测试 (7)5.2棋盘界面测试 (8)5.3玩家输赢界面测试 (11)设计总结 (13)参考文献 (14)致谢 (155)附录(源代码) (166)第1章序言1.1 设计背景五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。
有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。
在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。
”李善注引三国魏邯郸淳《艺经》中曰:“棋局,纵横各十七道,合二百八十九道,白黑棋子,各一百五十枚”。
C++课程设计说明书(五子棋)
C++课程设计说明书(五⼦棋)课程设计说明书五⼦棋游戏The Game of Gobang学院名称:机械⼯程学院专业班级:测控10xx学⽣姓名:江x指导教师姓名:张xx指导教师职称:副教授2012年6⽉⽬录第⼀章需求分析 (5)1.1系统概述 (5)1.1.1概述: (5)1.2系统运⾏环境 (5)1.2.1运⾏环境 (5)1.3功能需求描述 (6)1.3.1功能需求 (6)第⼆章总体设计 (6)2.1开发与设计的总体思想 (6)2.1.1总体设计思路 (6)2.1.2屏幕的组成 (7)2.1.3形状的组成 (8)2.1.4形状的统⼀ (8)第三章概要设计 (9)3.1系统流程图 (9)3.2 软件功能模块 (10)3.3 系统功能模块 (11)第四章详细设计 (11)4.1.界⾯的设计 (11)4.1.1总体界⾯的设计 (11)4.1.2界⾯棋⼦的设计 (11)4.2.显⽰界⾯的准备 (13)4.2.1在窗体类中添加存放⿊⽩棋两维数组和背景棋盘、⿊棋、⽩棋位图对象 (13)4.2.2 在窗体构造函数中初始化wb,装⼊棋盘、⿊棋、⽩棋位图 (13)4.3. 显⽰棋盘和棋⼦代码 (13)4.4. 轮流下⼦代码 (14)4.5. 判断输赢 (17)4.5.1判断是否⽩棋胜代码 (17)4.5.2判断是否⿊棋胜代码 (18)4.5.3判断是否平局代码 (19)4.6. 悔棋 (19)4.7. 重新开始 (20)4.8. 背景⾳乐 (21)4.9. 保存读取游戏⽂件 (21)4.9.1保存⽂件: (22)4.9.2读取⽂件: (23)第五章测试分析 (24)结论和⼼得体会 (25)致谢 (26)参考⽂献: (27)课程设计任务书⼀、课程设计⽬的课程设计是⼯科各专业的主要实践性教学环节之⼀,是围绕⼀门主要基础课或专业课,运⽤所学课程的知识,结合实际应⽤设计⽽进⾏的⼀次综合分析设计能⼒的训练。
课程设计旨在培养学⽣在本课程范围内,初步掌握解决实际应⽤问题时所应具有的查阅资料、综合运⽤所学知识的能⼒,为课程设计及今后从事专业⼯作打下基础。
五子棋 游戏 设计文档
1引言1.1五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。
现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。
它是中西文化的交流点,是古今哲理的结晶。
1.2开发背景当前网络上流传的五子棋游戏功能并不尽善尽美,其中最主要的问题就是人机对战和网络对战不能够一起实现,所以我决定开发[1]一个既能够人机对战,又能够进行网络对战的五子棋系统。
1.3开发环境及运行环境1.3.1开发环境●Intel®Pentium®42.0GHz,512M内存,80G硬盘●Microsoft®Windows™2000Professional●Microsoft®Visual C++6.0●Microsoft®Developer Network for Visual 2003●Visual Assist X10.1.1301.01.3.2运行环境●Intel®Pentium®2及以上处理器,32M以上内存,4G以上硬盘●Microsoft®Windows™9X/NT操作系统●800*600或以上的屏幕分辨率2软件架构软件的总体架构如图2.1:图2.1软件架构考虑到整个的下棋过程(无论对方是电脑抑或其他网络玩家)可以分为:己方落子、等待对方落子、对方落子、设置己方棋盘数据这一系列过程,因此一人游戏类、二人游戏类和棋盘类之间的关系参考了AbstractFactory(抽象工厂)模式,以实现对两个不同模块进行一般化的控制。
五子棋游戏课程设计说明书
学校代码: 10128学号:************课程设计说明书题目:五子棋****:**学院:理学院班级:信计13-1****:***二〇一六年一月二十一日内蒙古工业大学课程设计(论文)任务书课程名称:面向对象的程序设计学院:理学院班级:信计13-1 学生姓名:杨震学号: 201320905020 指导教师:白莲花摘要随着经济的发展,社会竞争的激烈,现在社会进入了竞争的时代。
上班族为了完成公司业务,每天超负荷的工作;学生为了不落后他人每天早起晚睡不断地学习,压力巨大。
所以为了缓解大家的压力,使大家在工作、学习之余娱乐一下,活跃大脑,提高工作、学习效率,因此益智性游戏越来越受人们的关注,五子棋作为益智类游戏之一,倍受人们的喜爱,所以对于五子棋的开发也有了很多关注。
C++语言即是进行软件开发的直接工具,又是“数据结构”、“操作系统”、“编译原理”以及其他相关课程的先修课程,因此,在整个教学体系中占据十分重要的地位[1]。
本文主要讲的是利用VC++6.0软件开发一个界面简洁、直观、实用性比较高的AI功能的五子棋游戏,游戏程序实现人人对弈,在对弈过程中当用户和用户比赛时电脑利用搜索算法计算出落子的最佳位置,是先人人对弈,而且程序能够完成具有重新开始、认输、提示该轮到哪一方下棋的、游戏、判断胜负、悔棋等功能。
关键词:人工智能;自动处理;五子棋目录第一章任务概述 (1)1.1问题概述 (1)1.2 需求分析 (1)第二章概要设计 (2)2.1功能设计 (2)2.2 程序结构 (2)2.3 基本流程 (3)第三章程序实现 (4)3.1主要变量及函数说明 (4)3.1.1 主要变量 (4)3.1.2 主要函数 (4)3.2 主要功能实现 (4)3.2.1棋盘类的声明 (4)3.2.2玩家类的声明 (4)3.2.3棋盘显示为方形 (5)3.2.4判断棋子显示位置是否合理 (5)3.2.5判断输赢 (5)第四章结果与总结 (6)4.1.运行过程及截图 (6)4.1.1棋盘初始化模块 (6)4.1.2输入错误提示 (8)4.1.3 结局判断模块 .............................. 错误!未定义书签。
五子棋程序设计课程设计报告书
目录1、引言 (3)1.1 编写目的 (3)1.2 读者对象 (3)1.3 软件项目概述 (3)1.4 文档概述 (4)1.5 定义 (4)1.6 参考资料 (4)2、任务概述............................................................... 错误!未定义书签。
2.1目标 (4)2.2软件的开发和运行环境 (5)2.3 用户特征 (5)2.4 假设与约束 (5)2.5 进度要求 (6)2.6验收要求 (6)3、功能需求描述与测试方案: (7)4、界面要求 (20)5、功能设计 (21)5.1类的关系描述 (21)5.2类的设计 (21)6、使用指南 (23)7、总结 (23)8、附录 (24)1、引言1.1 编写目的本文档为用户和软件设计者提供一个交流的平台。
在其中包含了用户所要求完成的功能,软件设计师实现的初步设想并最终实现的代码。
同时,为用户提供了使用的约束条件、使用手册,方便用户更好的使用本软件。
1.2 读者对象本文档的读者是最终验收者(教员和辅导员)。
1.3 软件项目概述●项目名称:五子棋游戏●简称:五子棋●项目代号:无●软件项目的大致功能和性能要求为:1)设计一个五子连珠类;2)记录游戏双方的游戏过程,允许悔棋;3)实现保存棋谱和根据棋谱复盘的功能;4)判断双方输赢,先走出五子连珠的一方胜;5)响应用户的鼠标消息,并显示棋盘信息;6)判断先下者落子时不允许走禁手。
1.4 文档概述本文档向用户和验收人员提供了一个很好的了解效果。
在文档中,有用户提出的需求(功能),有整个框架的具体描述,有每一个添加功能的具体实现代码以及测试结果。
最终具体描述了软件使用的说明。
1.5 定义五1.6 参考资料【1】《程序设计课程设计》国防科大印刷厂【2】《面向对象程序设计与Visual C++ 6.0教程》清华大学出版社【3】《Visual C++ 6.0 》人民邮电大学出版社【4】《Visual C++ 实用教程》电子工业出版社2、任务概述2.1目标用户提出需要设计出一个五子棋游戏,可以在任何的情况下都可以独立的运行。
五子棋概要设计说明书
1引言 (2)1.1编写目的 (2)1.2背景 (2)1.3定义 (3)1.4参考资料 (3)2总体设计 (4)2.1需求规定 (4)2.2运行环境 (4)2.3基本设计概念和处理流程 (5)2.4结构 (6)2.5功能器求与程序的关系 (6)2.6人工处理过程 (6)2.7尚未问决的问题 (6)3接口设计 (7)3.1用户接口 (7)3.2外部接口 (11)3.3内部接口 (11)4运行设计 (12)4.1运行模块组合 (12)4.2运行控制 (13)4.3运行时间 (14)5系统数据结构设计 (14)5.1逻辑结构设计要点 (14)5.2物理结构设计要点 (15)5.3数据结构与程序的关系 (15)6系统出错处理设计 (17)6.1出错信息 (17)6.2补救措施 (17)6.3系统维护设计 (17)概要设计说明书1引言1.1编写目的本文档主要描述系统的模块的具体功能以及实现构想,明确标识了各功能的实现过程,阐述了系统使用范围及背景,提供达成用户需求的条件,为后续开发阶段提供一个衡量的标准。
本文档的预期读者为:软件工程师;测试工程师。
使得读者能够通过此文档快速准确地实现系统的各个模块功能,减少系统的BUG代码率,使各模块各部门之间衔接协调,接口一致。
1.2背景a.项目名称:enjoy五子棋b.项目提出者、开发者和用户:Project Proponent: Name: Cao Xiaopeng项目提出者:姓名:曹小鹏Project Develo per: Name:Xi yin,Ge Yimeng,Tian Hui,Cheng Binbin项目开发者:姓名:郗银戈艺萌田辉程彬彬Source of Staff人员来源:西安邮电大学1号软酷作业实验室Actors 用户:游戏玩家。
1.3定义List of abbreviations 缩略语清单:MFC:MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
五子棋概要设计说明书
五子棋概要设计说明书目录1 引言 (1)1.1 编写说明 (1)1.2 背景 (1)1.3 定义 (1)1.4 参考文献 (1)2 总体设计 (1)2.1 需求规定 (1)2.2 运行环境 (2)2.3 基本设计概念和处理流程 (2)2.4 结构 (3)2.5 功能需求与程序的关系 (4)2.6 尚未解决的问题 (4)3 接口设计 (5)3.1 用户接口 (5)3.2 外部接口 (5)3.3 内部接口 (5)4 系统数据结构设计 (5)4.1 逻辑结构和物理结构设计要点 (5)4.1.1 基本类型定义 (5)4.1.2 估值核心的棋盘数据结构设计 (6)4.1.3 搜索引擎的走法数据结构设计 (6)4.2 数据结构与程序的关系 (7)4.2.1 估值核心数据结构和程序的关系 (7)4.2.2 搜索引擎数据结构和程序的关系 (7)5 系统出错处理设计 (7)五子棋概要设计说明书1 引言1.1 编写说明本说明书提供了五子棋各个模块的概要设计说明,以供软件工程师和编码人员进行详细设计与具体实现。
1.2 背景软件名称:五子棋开发人员所在原校:漳州城市职业技术学院开发人员列表:郑艺杰预定完成日期:2003年5月1.3 定义禁守:对局中禁止使用的战术或被判负的行棋手段。
长连:相同颜色相连的六子或六子以上。
搜索:通过对博弈树进行完全遍历或者部分遍历找出一个最好或者较好落子点的过程。
估值:通过既有的棋类知识来评估一个局面优劣的过程。
委托:一种组合方法,它使组合具有与继承同样的复用能力,在委托方式下,有两个对象参与处理一个请求,接受请求的对象将操作委托给它的代理者。
聚合:一个对象拥有另一个对象或对另一个对象负责,一般我们称一个对象包含另一个对象或者是另一个对象的一部分。
2 总体设计2.1 需求规定●棋盘采用 19×19 标准围棋棋盘。
●游戏采用人机对弈模式,可以选择任何一方执黑先行。
●游戏中没有禁守规则和其他走子限制。
五子棋比赛策划书5篇
A man is not old until regrets take the place of dreams.精品模板助您成功!(页眉可删)五子棋比赛策划书5篇五子棋比赛策划书1一、活动简介:五子棋是科学、文化、艺术、竞技融为一体的智力体育项目,有助于学生智力开发,逻辑思维和想象能力的培养,分析能力和记忆力的促进,思维的敏捷性和严密性得以提高。
本次活动以十五号楼全体成员为基础,共计10天时间进行一对一的五子棋项目的比赛,最终决出冠军,亚军,季军。
在竞争激烈的比赛中,选手们将更好的诠释激情与活力,将当代大学生的风采更充分的展现,也体现了我们楼的良好风貌。
二、活动主题:1、棋乐无穷2、步步惊心3、棋局如人生三、活动宗旨:友谊第一,比赛第二1、培养学生顽强勇敢、坚毅沉着、机制灵活、大局观等优秀的意志品质。
2、增强学习生活中的计划性和灵气性,增进友谊,陶冶高尚情操。
3、帮助学生克服急躁和优柔寡断的不良性情,培养学生积极进取、争强好胜的拼搏精神。
五、活动意义:首先,活动的开展促进了大学生之间的互动,丰富了大学生活,增加了大学生之间的友谊,培养逻辑思维和想象能力,促进分析能力和记忆力,提高思维的敏捷性和严密性,从而促进大学生的全面发展。
其次,培养学生顽强勇敢、坚毅沉着、机制灵活、大局观等优秀的意志品质,增强学习生活中的计划性和灵气性,增进友谊,陶冶高尚情操,丰富学生的文化生活。
学生在活动过程中潜移默化的养成遵守规则的良好习惯,帮助学生克服急躁和优柔寡断的不良性情,培养学生积极进取、争强好胜的拼搏精神。
六、活动时间:20__年3月11日——20__年3月20日15号公寓楼和三教教室八、活动对象:十五号楼全体成员九、活动主办方:十五号楼党支部十、活动流程安排:1、以班级为单位,进行五子棋比赛,各班级先进行内部比赛决出第一、二名(比赛场地、道具由楼里出)。
2、制作十五号楼五子棋比赛海报,贴于十五号楼门口,宣传五子棋比赛。
五子棋概要设计
五⼦棋概要设计⽂档编号:GG-0002快乐五⼦棋系统设计说明书第⼗四⼩组2012年04⽉修改记录⽬录1引⾔ (5)1.1 编写⽬的 (5)1.2 项⽬背景 (5)1.3 定义 (5)1.4 参考资料: (5)2条件与限制 (5)3需求规定 (6)4运⾏环境 (6)4.1 硬件环境 (6)4.2 软件环境 (6)5体系架构 (7)5.1 系统结构 (7)5.2 物理结构 (7)6逻辑结构设计 (7)6.1 CSCI 列表 (8)6.2 CSCI 关系图 (8)6.3 CSCI-1 ⼈机界⾯ (8)6.3.1 模块名称 (8)6.3.2 模块功能 (8)6.3.3 接⼝描述 (9)6.3.3.1 输⼊接⼝ (9)6.3.3.2 输出接⼝ (11)6.3.4 流程描述 (12)6.4 CSCI-2 ⽤户包 (13)6.4.1 模块名称 (13)6.4.2 模块功能 (13)6.4.3 接⼝描述 (13)6.4.3.1 输⼊接⼝ (13)6.4.3.2 输出接⼝ (14)6.4.4 流程描述 (15)6.5 CSCI-3 对战包 (16)6.5.1 模块名称 (16)6.5.2 模块功能 (16)6.5.3 接⼝描述 (16)6.5.3.1 输⼊接⼝ (16)6.5.3.2 输出接⼝ (17)6.5.4 流程描述 (18)6.5.4.1 开始游戏流程描述 (18)6.6 CSCI-4 存储包 (18)6.6.1 模块名称 (18)6.6.2 模块功能 (18)6.6.3 接⼝描述 (19)6.6.3.1 输⼊接⼝ (19)6.6.3.2 输出接⼝ (19)6.6.4 流程描述 (20)6.6.4.1 战绩记录流程描述 (20)6.6.4.2 ⽤户落⼦记录流程描述 (20)7数据(库)结构设计 (21)7.1 逻辑结构设计要点 (21)基本类型定义: (21)7.2 物理结构设计要点 (22)7.2.1 估值核⼼的棋盘数据结构设计: (22)7.2.2 搜索引擎的⾛法数据结构设计 (22)7.3 数据结构与程序的关系 (23)7.3.1 估值核⼼数据结构和程序的关系 (23)7.3.2 搜索引擎数据结构和程序的关系 (23)8部署设计 (24)9运⾏设计 (25)9.1 运⾏模块组合 (25)9.2 运⾏控制 (25)9.3 运⾏⽬录结构 (26)10性能设计 (26)11系统出错处理设计 (26)12开发环境 (27)12.1 编辑器 (27)12.2 编译环境 (28)12.3 配置管理⼯具 (28)12.4 源代码⽬录 (28)13尚未解决的问题 (29)1引⾔1.1编写⽬的本款软件主要⾯向于青少年学⽣、⼉童以及⽼⼈,⽤于他们开发智⼒,消遣娱乐。
五子棋游戏总体设计与实现
五子棋游戏总体设计与实现4、系统总体设计与实现4、1 总体设计分析总体设计就是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求分析中提出的逻辑模型,科学合理地进行物理模型的设计。
这个阶段的主要目标就是将反映用户信息需求的逻辑方案转换成物理方案,并为下一阶段提供必要的技术资料。
4、1、1 总体设计原则(1)整体性:软件就是作为统一整体而存在的。
因此,在总体设计中要从整个软件的角度进行考虑。
(2)灵活性:为保持软件长久的生命力,要求该手机游戏软件具有很强的环境适应性。
为此,游戏软件应具有较好的开放性与结构的可变性。
(3)可靠性:可靠性就是指软件抵御外界干扰的能力及受外界干扰时的恢复能力。
(4)经济性:经济性就是指在满足游戏软件需求的前提下,尽可能地减小游戏软件的开销。
4、1、2 软件模块总体设计软件中各模块之间的关系通常利用层次图来表示。
它就是一种一系列多层次的用树形结构的矩形框描绘数据的层次结构框图。
一个单独的矩形框作为树形结构的顶层,各个数据的子集由下面的各层矩形框代表,最底层的各个矩形框代表组成这个数据的实际数据元素(不能再分割的元素),它代表完整的数据结构。
这模式非常适合于需求分析阶段的需要,层次方框图对数据结构描绘随着结构精细化也越来越详细。
反复细化沿着图中每条路径,从对顶层信息的分类开始,直到确定了数据结构的全部细节为止。
图4-1 游戏功能结构本研究中将游戏软件分为三大模块,如图4-1所示,包括:游戏选项、游戏设置与帮助。
按照在调研中搜集的资料对每个模块的功能进行编排制作。
依据上述功能的分析,本研究中,将游戏软件在三大模块的基础上又对每一大模块又分为几个子模块:游戏选项包括六个模块:开始游戏、重新游戏、悔棋、认输、背景音乐与退出游戏。
游戏设置包括三个模块:先后手设置、棋盘底纹颜色设置与棋盘大小设置。
帮助包括两个模块:游戏帮助与关于。
4、2 游戏设计4、2、1 游戏前的准备本游戏在开发之前需要做一些前期准备工作,尤其就是对于精通五子棋游戏的Java 游戏开发者来说。
中国风五子棋详细设计说明书
中国风五子棋的设计与实现项目开发计划开发团队:BlastWe are Blast, we are at full blast!详细设计说明书1 引言1.1 编写目的本详细设计说明书是针对编程方面的课程作业而编写的。
目的是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细的介绍系统的各个模块,未进行后面的实现和测试做准备。
本详细设计说明书的预期读者为本项目开发小组的成员以及对该项目感兴趣、在以后想对该项目进行扩展和维护的人员。
1.2 背景说明:a.待开发软件系统的名称;中国风五子棋b.本项目的任务提出者:**、**、**本项目的开发者:**、**、**用户:所有对该项目感兴趣的并想通过该五子棋提高智力水平感受中国古风的人员1.3 定义中国风五子棋游戏:本项目拟开发的游戏软件,软件的整体风格属于中国风。
【对局相关术语】〖黑方〗执黑棋一方的简称。
〖白方〗执白棋一方的简称。
〖胜局〗有一方获胜的对局。
〖和局〗分不出胜负的对局。
〖终局〗对局结束。
〖复盘〗对局双方将本盘对局全过程的再现。
【行棋相关术语】〖阳线〗棋盘上可见的横纵直线。
〖阴线〗棋盘上无实线连接的隐形斜线。
〖交叉点〗阳线垂直相交的点,简称“点”。
〖落子〗棋子直接落于棋盘的空白交叉点上。
〖轮走方〗即“行棋方”,有权利落子的黑方或白方。
〖着〗在对局过程中,行棋方把棋子落在棋盘无子的交点上,不论落子的手是否脱离棋子,均被视为一着。
〖回合〗双方各走一着,称为一个回合。
〖开局〗在对局开始阶段形成的布局。
〖连〗在一条阳线或阴线上的同色棋子相邻成一排。
〖五连〗在一条阳线或阴线上的五枚同色棋子相邻成一排。
〖长连〗在一条阳线或阴线上的五枚以上同色棋子相邻成一排。
〖成五〗含有五枚同色棋子所形成的连,包括五连和长连。
〖四〗在一条阳线或阴线上连续相邻的5个点中有四枚同色棋子的棋型。
〖活四〗有两个点可以成五的四。
〖冲四〗只有一个点可以成五的四。
〖死四〗不能成五的四。
五子棋游戏的设计说明书及源代码
*******************实践教学*******************软件学院2012年秋季学期C语言课程设计说明书题目:五子棋游戏的设计专业班级:姓名:学号:指导教师:成绩:目录目录 (I)摘要 (I)序言 (II)1、需求分析 (1)1.1总体分析 (1)1.2初始化 (1)1.3主循环控制模块 (1)1.4玩家下子 (1)1.5盘面分析填写棋型表 (2)1.6对方下子 (2)1.7胜负判断 (2)2、设计思路 (3)2.1五子棋的起源与发展 (3)2.2五子棋的基本术语及规则 (3)2.2.1五子棋的基本术语: (3)2.2.2五子棋的规则 (4)2.3功能描述 (5)3、详细设计 (6)3.1流程图 (6)4、运行调试与分析讨论 (7)4、运行调试与分析讨论 (8)4.1运行结果 (8)4.2分析讨论 (12)5、设计体会与小结 (13)5.1课设中的体会及小结 (13)参考文献 (14)致谢 (15)附录一源代码 (16)摘要游戏设计已经成为现在社会的一种热门行业。
五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,只需两人即可进行,非常富有趣味性和消遣性。
这里设计和实现了一个双人对下的黑白五子棋单机游戏。
主要应用了Visual C++编程来完成这个游戏的设计的。
本文主要介绍了本游戏开发环境Microsoft Visual C++ 6.0,使用当前优秀的开发工具VC++编程。
包含了五子棋程序的棋盘初始化、游戏规则、胜负判断方法,及帮助等。
关键词:五子棋;初始化;VC++编程;判断;单机游戏。
序言五子棋是起源于中国古代的传统黑白棋种之一,是一种训练人逻辑思维严密性的游戏。
该设计以五子棋游戏业务为背景,设计、开发一套“五子棋游戏”软件。
通过该题目的设计过程,可以提高基本编程能力和游戏开发的技巧,熟悉C语言图形模式下的编程。
本程序中涉及很多图形函数,包括:坐标定位;颜色设置(背景色和文本颜色设置),线条颜色、填充颜色;直线风格、文本风格、填充风格;画线、画圆、画矩形函数;图形系统的初始化和关闭;图形屏幕和文字屏幕的消除;从键盘获取键值等。
五子棋
public
void
mouseClicked(MouseEvent e) 事件
新开始游戏
mouseClicked(MouseEvent
e)
2.4.2 程序中类及成员变量的说明
程序中所含的各个类名、类的作用及其子类父类,如表 2 所示:
沈阳大学
课程设计说明书
类名 ChessFrame ChessModel MainPanel
一款小游戏的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实 际需求,其中玩家的实际需求最为重要.面对游戏拥有不同知识和理解层面的玩家,游戏 制作人对玩家需求的理解程度,在很大程度上决定了此类游戏开发的成败.因此如何更好 地的了解,分析,明确玩家需求,并且能够准确,清晰以文档的形式表达给游戏制作人, 保证开发过程按照满足玩家需求为目的正确开发方向进行,是每游戏游戏制作人需要面 对的问题。
NO.8
该文件生成了 ChessMap 类的一个实例,从而生成了五子棋游戏的界面 ChessMap 类将 所有的功能集中到菜单栏中,并通过调用其他模块来实现五子棋游戏的各个功能。 (2)机器人部分的设计
机器人部分的设计是由 ChessBot.java 类来实现的。该 java 类首先导入了三个函数, 分别是 math,lang 和 awt。该程序定义了棋盘的边长,棋盘的边长通过定义一个私有的 int 型变量来实现。将机器人定义成一个方法,通过 0 和 1 来确定按下的棋子是机器人 自己下的,还是敌人的棋子。该 ChessBot 类中还包括了重开一局的方法,该方法通过 for 循环语句来实现,即重置棋子。另外一个方法是悔棋,悔棋同样是通过 for 语句循环 来实现,首先通过二维数组算出最后一步棋下的位置,然后通过 Step--实现。最后一个 方法是计算当前位置 type 方是否有 nn 子相连,相连的情况。当横向五子连珠,纵向五 子连珠,左斜线五子连珠或者是右斜线五子连珠时,比赛结束,同时显示出获胜方的棋 子颜色。四种方向的连珠用 for 循环语句分别写出其二维数组也就是棋子的位置,从而 进行判断棋子有几个棋子相连。使用 endfor 语句结束 for 循环,利用 return 语句,重复 判断棋子的位置以及是否连珠。 (3)五子棋面板的设计
c++MFC五子棋_说明书
(面向对象程序设计)设计说明书MFC五子棋起止日期: 2012 年 12 月 30 日至 2013 年 01 月 05 日学生姓名*******班级********学号**********成绩指导教师 (签字)计算机与通信学院(部)年月日目录一、绪论 (2)1.1课题背景 (2)1.2需求分析 (2)2.1游戏流程 (2)2.2系统功能结构图 (3)三、详细设计 (4)3.1.1游戏界面的制作 (4)3.1.2游戏开始 (5)3.1.3游戏结束 (6)3.1.4排行榜 (7)3.2核心算法 (7)四、用户使用说明 (9)4.1游戏开始 (9)4.2游戏中 (9)4.3结束 (10)五、附录 (11)参考资料 (11)一、绪论1.1课题背景本课程设计是C++面向对象程序设计的重要的实践环节之一,是在学生学习完《C++面向对象程序设计》课程后进行的一次全面的综合练习,此次课程设计的题目是自拟的。
在和我的队友反复的讨论下,我们一致同意写以C++和MFC 为主要知识点的MFC人—人对战五子棋。
1.2需求分析(1)设计用户图形界面,用户通过鼠标就可以操作游戏。
(2)以二维数组的形式储存棋盘的下子信息,包括坐标和棋子类型。
(3)设置开始、结束和排行榜用于操作和查看下棋的信息。
(4)游戏有自动保存玩家输赢信息的功能。
(5)为了使算法简单,游戏中的棋盘、棋子等都以位图的形式操作。
二、概要设计2.1游戏流程三、详细设计3.1.1游戏界面的制作利用MFC AppWinzard生成五子棋游戏应用程序框架具体步骤如下:(1)执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFC AppWizard(exe)选项,然后在Project name文本框中输入Fivechess_44 。
Lacation文本框是指项目的本地路径。
(2)单击按钮,弹出MFC AppWinzard_Step1对话框。
五子棋概要设计说明书
概要设计说明书1引言五子棋是一种非常常见的双人游戏,规则为双方交替落子,直到有一方下出五子连续,五子连珠为赢。
1.1编写目的完成项目作业,锻炼编程能力,培养思维。
1.2背景说明:a.软件名称为“五子棋”;b.项目小组成员为:郭祥,李斌,冉庆国,朱琳;1.4参考资料参考资料:1.实验报告提示文档网络资源;2.网络资源:图片,人机对战算法参考;2总体设计2.1需求规定说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见附录C。
2.2运行环境简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,详细说明参见附录C。
2.3基本设计概念和处理流程1.界面以及落子处理1.使用二维数组Chessboard[15,15]储存棋盘的状态,以0表示没有放子的位置,以1表示放黑子的位置,以2表示放白子的位置;2.以鼠标的状态提示当前持子的一方;3.将棋盘作为图片的形式贴处在程序界面上;4.加载棋子资源(黑、白棋子),当鼠标在棋盘上点击的时候产生事件,处理鼠标的位置产生对应的棋盘坐标位置;5.判断落子出是否可以落子:不可以则不做任何处理,不改变鼠标的状态;可以落子,则打印对应的棋子图像,记录棋盘位置,并将位置传递给判定函数;6.交换持子方,重复落子过程,直到判定函数产生胜出结果;2.五子棋判胜本功能模块主要对游戏的胜负进行判定.1.由玩家输入棋子所在位置,由系统判定胜负,若胜,则游戏结束;否则,游戏继续.2.对胜负判定需先确定一个中心棋子位置.3.由一个中心棋子可以引出四条线形成五子连一线.4.判定过程中注意越界现象.概要设计1.五子棋的判胜条件即为5个相同的棋子连在一条线上.2.以一个棋子为中心,有4条线可以形成五子连线.如图所示:(描红的为中心棋子)3.中心棋子即为最后一步所下棋子.4.以1线为例,从中心棋子出发(设为白子),先向左进行判断,若棋子为白子,则计数器加1(初始值为1),否则(为黑子或无子),则返回中心棋子,向右进行判断,进行相同操作.5.1线判定结束后,若计数器为5,则判白子胜,否则,计数器归1,再从2,3,4线按顺序进行判定.6.棋盘的每个坐标有3个状态,分别为无子(标记为0),白子(标记为1),黑子(标记为2),对棋盘点进行判断时,只需判定其所在状态即可。
五子棋活动精品教案通用五子棋教学设计
五子棋活动精品教案通用五子棋教学设计一、教学内容本节课的教学内容主要依据教材第七章“益智游戏”中的第二节“五子棋”,详细内容包括五子棋的起源、基本规则、棋谱知识、开局策略、中局战术及残局技巧。
二、教学目标1. 让学生了解五子棋的起源和基本规则,掌握棋谱知识。
2. 培养学生运用策略进行五子棋对弈的能力,提高逻辑思维和判断力。
3. 激发学生对五子棋的兴趣,培养团队合作精神和竞技体育道德。
三、教学难点与重点1. 教学难点:五子棋的开局策略、中局战术及残局技巧。
2. 教学重点:五子棋的基本规则、棋谱知识及对弈实践。
四、教具与学具准备1. 教具:五子棋棋盘、五子棋棋子、多媒体教学设备。
2. 学具:五子棋棋盘、五子棋棋子、笔记本、教材。
五、教学过程1. 导入新课:通过讲解五子棋的起源,引起学生对五子棋的兴趣。
2. 讲解基本规则和棋谱知识:详细讲解五子棋的基本规则,演示棋谱知识。
3. 实践操作:学生分小组进行五子棋对弈,教师巡回指导。
4. 开局策略教学:通过例题讲解,引导学生学习开局策略。
5. 中局战术教学:通过例题讲解,教授中局战术。
6. 残局技巧教学:通过例题讲解,传授残局技巧。
7. 随堂练习:学生独立完成五子棋对弈,巩固所学知识。
六、板书设计1. 五子棋的起源和基本规则2. 棋谱知识3. 开局策略4. 中局战术5. 残局技巧七、作业设计1. 作业题目:(1)简述五子棋的基本规则。
黑:H8、J8白:I9黑:H8、I9、J10白:G7、I7、K72. 答案:(1)五子棋基本规则:双方各有黑白两色棋子,轮流在棋盘上放置棋子,先在横、竖、斜方向形成连续的五个棋子的一方为胜。
(2)开局策略:以防守为主,尽快形成自己的势力范围。
(3)中局战术:利用“活三”、“死四”等棋型进行进攻和防守。
八、课后反思及拓展延伸本节课通过讲解、实践和随堂练习,使学生掌握了五子棋的基本规则和策略。
课后,教师应反思教学效果,针对学生的掌握情况,进行有针对性的辅导。
五子棋-设计报告
五子棋完成日期 2017 年 05 月 30 日摘要程序说明:本程序是一款棋类益智游戏程序,是用CODE-BLOCKS编写在WINDOWS 系统下运行的娱乐游戏。
本程序可以实现人人对战,人机对战,操作采用用户输入棋子坐标下子。
游戏开始后,黑、白双方轮流下棋,程序会根据双方下棋的先后顺序自动显示不同颜色的棋子,提示当前下棋的棋手,任何一方由五子连成一线时,游戏结束,结束时会显示对战双方胜负情况以及分数。
关键词:五子棋游戏,C语言,CLI.目录第1章意义 (4)1.1 (4)1.2 (4)第2章系统功能需求分析 (4)2.1系统的基本要求 (4)2.2 (4)第3章系统设计 (6)第4章系统实现…………………………………………………………………错误!未定义书签。
第5章总结………………………………………………………………………错误!未定义书签。
第1章意义1.1意义通过游戏过程增加编程的兴趣,提高编程水平。
编制该程序我对以下的知识点进行的巩固和掌握:1.数组元素为结构体的数组应用。
2.全局变量应用。
3.按键的处理。
4.图形方式等等。
加深对所学知识的理解与掌握,增强自己对所学知识解决实际问题的能力,为以后的程序开发打下基础。
1.2 设计思路棋盘设计为15×15格,初始状态光标在棋盘的中央,玩家1先走,轮流落子,当一方连成五子或下满棋盘时,游戏结束(连成五子的一方获胜,下满棋盘为和棋)。
当游戏一方胜利后显示胜利信息。
从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表空格,1代表白棋,2代表黑棋。
这样程序的主要工作是接收棋手按键操作,棋手输入坐标信息表示落子。
一旦接收到信息,说明棋手落子,先判断是否是有效位置,也就是说已经有棋子的位置不能重叠落子。
落子成功后,马上判断以该位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。
五子棋程序设计说明书
}
printf("\n");
}
}
int judge(int x,int y) /*判断各方向五子是否连成一线*/ //x,y分别为横纵坐标//
设计背景及意义
我们的五子棋程序是在Visual C++ 环境下运行的。
Visual C++
Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++整合了便利的除错工具,特别是整合了微软视窗程式设计(Windows API)、三维动画DirectX API,Microsoft .NET框架。目前最新的版本是Microsoft Visual C++ 2010。Visual C++集成了,于1998发行。发行至今一直被广泛地用于大大小小的项目开发。
case 97: *y=*y-1;break; //a键控制棋子左移//
case 115: *x=*x+1;break; //s键控制棋子下移//
case 100: *y=*y+1;break; //d键控制棋子右移//
case 111: flag=0;break; //o键确定落子//
}
if(flag==0) break; //判断某步是否移动完成//
for(i=0;i<2000;i++) //改变玩家//{来自if(flag==1)
flag=0;
else
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多功能五子棋
的设计与实现
概要设计说明书
开发团队:Flying
We are flying, but not flies!
目录
1 引言 (3)
1.1编写目的 (3)
1.2背景 (3)
1.3定义 (3)
1.4参考资料 (4)
2 总体设计 (5)
2.1需求规定 (5)
2.2运行环境 (6)
2.3软件基本处理流程 (6)
2.4软件控制结构 (8)
2.5功能需求与程序的关系 (9)
2.6人工处理过程 (9)
2.7尚未解决的问题 (9)
3 系统数据结构设计 (11)
4 系统出错处理设计 (12)
1 引言
1.1编写目的
本文档是《多功能五子棋的设计与实现》(以下简称“本项目”)的概要设计说明书,为本项目的详细设计提供主要依据。
本文档描述系统在功能上的主要设计和思想;预先估计以后系统可能达到的目标。
本文档的预期读者为本项目的开发人员。
1.2背景
本项目所开发的软件系统全称为“多功能五子棋游戏”。
本项目为《高级软件工程》课程大作业选题,由项目客户(姜明老师)提出并由Flying团队组织开发,本项目开发主要目的为学习并熟悉软件工程项目开发流程,本项目的预期用户是中国科学技术大学软件学院软件工程专业06级(硕)嵌入式系统设计专业方向所有五子棋游戏爱好者。
本项目所开发游戏软件拟在Windows98及以上版本操作系统下运行,拟基于C/S架构提供网络对弈(二人对弈)模式在小型局域网运行。
1.3定义
本系统可能用到的专门术语的定义见表1.1。
1.4参考资料
[1] GB8567——88. 概要设计说明书.
[2] 王志新. 五子棋实战技巧. 江苏科学技术出版社, 2002.
[3] 中国五子棋网. /
2 总体设计2.1需求规定
系统需求规定见表2.1。
表2.1 系统需求规定
2.2运行环境
硬件环境
CPU:Intel x86 200Mhz以上,或其他处理器
内存:32MB 以上
显卡:标准VGA 256色显示模式以上
分辨率:1024×768
其他:声卡
软件环境
操作系统:Win98/2000/XP或更高版本
2.3软件基本处理流程
软件基本处理流程见图2.1。
图2.1 软件基本处理流程
软件首先执行初始化,然后由用户选择对弈模式:人机对弈或网络对弈(人人对弈)。
默认情况下为人机对弈。
在人机对弈模式中,首先初始化人机对弈数据结构,然后进入下棋主循环。
在主循环中,玩家下棋后,软件调用胜负判定函数判定当前棋局是否有胜负出现。
若有,则输出胜负信息,并询问玩家是否重新开局;若无,则执行计算机下棋函数,进行计算机下棋。
下棋后,再次调用胜负判定函数判定当前棋局是否有胜负
出现。
如此循环下去。
在网络对弈模式中,首先初始化网络对弈数据结构,然后由用户选择网络模式:服务器或客户机。
若选择服务器,则建立一个服务器socket在后台监听,等待客户机连接。
若由客户机请求连接且已准备好,则响应连接并向客户机发送已连接好的消息。
客户机接到此消息后,产生提示信息给玩家,以后服务器及客户机就可以进行下棋,传送文件,文字聊天,视频聊天等。
若选择客户机,则在玩家输入服务器ip后(端口由软件默认指定)发送连接请求到服务器。
若玩家不知道当前有哪些服务器可用,可以使用服务器扫描功能,获得局域网内哪些计算机已经打开服务器。
2.4软件控制结构
软件控制结构见图2.2。
图2.2 软件控制结构
从图2.2中可以看出,首先由玩家选择对弈模式,然后软件将控制权交给人机对弈模块或网上对弈模块。
人机对弈模块可以调用计算机下棋、胜负判定、交换角色、难易程度选择、保存棋局、打开棋局、悔棋及撤销悔棋等功能模块。
网上对弈模块可以调用传送下棋数据、传送文件、文字聊天、视频聊天及扫描服务器等功能模块。
2.5功能需求与程序的关系
功能需求与程序的关系见表2.2。
表2.2 功能需求与程序的关系
2.6人工处理过程
尚无
2.7尚未解决的问题
1. 传送文件原因:时间紧迫
2. 视频聊天原因:时间紧迫技术难度
3 系统数据结构设计
系统关键数据结构设计见表3.1。
表3.1 系统关键数据结构设计
4 系统出错处理设计
系统出错处理设计见表4.1。
表4.1系统出错处理设计
出错条目提示信息出错处理
在人机对弈时使用某些网络对弈功能提示用户选择网上对弈模式
扫描服务器时深入不正确的ip地址提示用户重新输入
扫描服务器时深入不正确的ip地址段提示用户重新输入
扫描服务器时深入的线程数过大或过小提示用户重新输入
玩家企图连续下两次棋取消下棋数据提示下棋失败
初始化socket失败提示用户检查网络配置
服务器socket监听错误提示用户服务器socket监听错误,并退出模块。