五子棋游戏课程设计说明书

合集下载

C++课程设计说明书(五子棋)

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,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

中国风五子棋详细设计说明书

中国风五子棋详细设计说明书

中国风五子棋的设计与实现项目开发计划开发团队:BlastWe are Blast, we are at full blast!详细设计说明书1 引言1.1 编写目的本详细设计说明书是针对编程方面的课程作业而编写的。

目的是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细的介绍系统的各个模块,未进行后面的实现和测试做准备。

本详细设计说明书的预期读者为本项目开发小组的成员以及对该项目感兴趣、在以后想对该项目进行扩展和维护的人员。

1.2 背景说明:a.待开发软件系统的名称;中国风五子棋b.本项目的任务提出者:**、**、**本项目的开发者:**、**、**用户:所有对该项目感兴趣的并想通过该五子棋提高智力水平感受中国古风的人员1.3 定义中国风五子棋游戏:本项目拟开发的游戏软件,软件的整体风格属于中国风。

【对局相关术语】〖黑方〗执黑棋一方的简称。

〖白方〗执白棋一方的简称。

〖胜局〗有一方获胜的对局。

〖和局〗分不出胜负的对局。

〖终局〗对局结束。

〖复盘〗对局双方将本盘对局全过程的再现。

【行棋相关术语】〖阳线〗棋盘上可见的横纵直线。

〖阴线〗棋盘上无实线连接的隐形斜线。

〖交叉点〗阳线垂直相交的点,简称“点”。

〖落子〗棋子直接落于棋盘的空白交叉点上。

〖轮走方〗即“行棋方”,有权利落子的黑方或白方。

〖着〗在对局过程中,行棋方把棋子落在棋盘无子的交点上,不论落子的手是否脱离棋子,均被视为一着。

〖回合〗双方各走一着,称为一个回合。

〖开局〗在对局开始阶段形成的布局。

〖连〗在一条阳线或阴线上的同色棋子相邻成一排。

〖五连〗在一条阳线或阴线上的五枚同色棋子相邻成一排。

〖长连〗在一条阳线或阴线上的五枚以上同色棋子相邻成一排。

〖成五〗含有五枚同色棋子所形成的连,包括五连和长连。

〖四〗在一条阳线或阴线上连续相邻的5个点中有四枚同色棋子的棋型。

〖活四〗有两个点可以成五的四。

〖冲四〗只有一个点可以成五的四。

〖死四〗不能成五的四。

五子棋课程设计

五子棋 课程设计一、课程目标知识目标:1. 让学生掌握五子棋的基本规则,了解棋盘布局和棋子的走法。

2. 培养学生运用逻辑思维和策略分析进行五子棋对弈的能力。

3. 使学生了解五子棋的历史起源和发展,增强对传统文化的认识。

技能目标:1. 培养学生独立完成五子棋对弈的能力,提高观察能力和应变能力。

2. 培养学生团队协作精神,学会与同伴交流、探讨棋局,共同解决问题。

3. 培养学生运用所学知识解决实际问题的能力,提高五子棋竞技水平。

情感态度价值观目标:1. 培养学生对五子棋的兴趣,激发学生积极参与棋类活动的热情。

2. 培养学生尊重对手、公平竞争的体育精神,树立正确的竞技道德观念。

3. 通过五子棋的学习,引导学生体验团队合作的力量,培养集体荣誉感。

课程性质:本课程以实践性、趣味性和竞技性为主要特点,旨在培养学生逻辑思维、团队协作和竞技能力。

学生特点:考虑到学生年级的特点,他们在认知、情感和动手能力方面均有一定的基础,但独立思考和解决问题的能力有待提高。

教学要求:教师应关注学生的个体差异,因材施教,注重启发式教学,激发学生的学习兴趣和积极性,使学生在轻松愉快的氛围中掌握五子棋知识和技巧。

同时,注重培养学生的情感态度价值观,使他们在棋类活动中得到全面发展。

通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 五子棋基础知识:- 棋盘与棋子的认识- 基本走法与规则- 棋局的胜负判定2. 五子棋技巧策略:- 开局策略- 中局攻防- 残局决胜3. 五子棋对弈实践:- 单人对弈练习- 双人对弈实战- 团队合作交流4. 五子棋历史文化:- 五子棋的起源与发展- 我国五子棋的流派与特点- 五子棋与传统文化的联系5. 竞技道德与团队协作:- 公平竞争与尊重对手- 团队协作与沟通- 棋品与人品的培养教学内容安排与进度:第一课时:五子棋基础知识学习,认识棋盘棋子,了解规则第二课时:五子棋技巧策略学习,分析开局、中局、残局策略第三课时:五子棋对弈实践,进行单人和双人实战练习第四课时:五子棋历史文化学习,了解五子棋的发展及其与传统文化的联系第五课时:竞技道德与团队协作教育,培养正确的竞技观念和团队精神本教学内容与课本紧密相关,根据课程目标制定详细的教学大纲,明确教学内容的安排和进度。

c课程设计五子棋游戏

c课程设计五子棋游戏一、教学目标本课程的目标是让学生掌握五子棋游戏的基本规则和技巧,能够独立进行游戏,并理解游戏的算法和逻辑。

知识目标包括了解五子棋的历史和背景,掌握游戏的规则和技巧,理解游戏的算法和逻辑。

技能目标包括能够独立进行游戏,能够分析游戏局势,能够制定游戏策略。

情感态度价值观目标包括培养学生的团队合作精神,培养学生的竞技精神,让学生理解胜负的重要性。

二、教学内容本课程的教学内容主要包括五子棋的基本规则和技巧,游戏的算法和逻辑,以及游戏中的团队合作和竞技精神。

具体包括五子棋的历史和背景,游戏的规则和技巧,如何分析游戏局势和制定游戏策略,以及如何在游戏中展现团队合作和竞技精神。

三、教学方法本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

通过讲授法,让学生掌握五子棋的基本规则和技巧;通过讨论法,让学生深入理解游戏的算法和逻辑;通过案例分析法,让学生学会分析游戏局势和制定游戏策略;通过实验法,让学生在实际游戏中体验团队合作和竞技精神。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

教材和参考书将提供五子棋的基本规则和技巧,游戏的算法和逻辑,以及游戏中的团队合作和竞技精神的相关知识。

多媒体资料将提供五子棋游戏的示例和案例,帮助学生更好地理解游戏的相关知识。

实验设备将用于让学生在实际游戏中体验团队合作和竞技精神。

五、教学评估本课程的评估方式包括平时表现、作业和考试。

平时表现主要评估学生的出勤、课堂参与度和团队合作表现。

作业包括练习题和游戏设计项目,评估学生对五子棋规则和技巧的掌握程度,以及游戏的算法和逻辑的应用能力。

考试包括期中和期末考试,评估学生对课程知识的全面理解和应用能力。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排将在每周的一节课进行,共计10节课。

教学进度将按照教学大纲进行,确保在有限的时间内完成教学任务。

教学时间将安排在下午或晚上,考虑学生的作息时间。

五子棋游戏的设计说明书及源代码

*******************实践教学*******************软件学院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语言图形模式下的编程。

本程序中涉及很多图形函数,包括:坐标定位;颜色设置(背景色和文本颜色设置),线条颜色、填充颜色;直线风格、文本风格、填充风格;画线、画圆、画矩形函数;图形系统的初始化和关闭;图形屏幕和文字屏幕的消除;从键盘获取键值等。

五子棋游戏课程设计

五子棋游戏课程设计一、课程目标知识目标:1. 学生能理解五子棋的基本规则和棋盘布局,掌握基本的棋谱和战术。

2. 学生能运用数学逻辑思维,分析五子棋的胜负条件和策略。

3. 学生了解五子棋的历史背景和发展,认识到棋类游戏在我国的传统文化地位。

技能目标:1. 学生能运用所学知识进行五子棋对弈,具备一定的实战能力。

2. 学生能通过五子棋游戏,提高观察力、判断力和应变能力。

3. 学生能运用团队合作和沟通技巧,进行棋局分析和讨论。

情感态度价值观目标:1. 学生培养对五子棋游戏的兴趣,激发学习数学和逻辑思维的积极性。

2. 学生通过棋类游戏,学会尊重对手、公平竞争,培养良好的竞技道德。

3. 学生在团队协作中,学会互帮互助,增进同学间的友谊和信任。

课程性质:本课程以五子棋游戏为载体,结合数学逻辑思维,提高学生的综合素质。

学生特点:四年级学生具备一定的数学基础和逻辑思维能力,好奇心强,喜欢游戏和挑战。

教学要求:教师需结合学生的年龄特点和认知水平,设计生动有趣的教学活动,注重培养学生的实践操作能力和团队合作精神。

在教学过程中,关注学生的个体差异,因材施教,使每个学生都能在课程中取得进步。

通过课程目标的分解,确保教学设计和评估的针对性、有效性。

二、教学内容1. 五子棋基础知识:- 棋盘与棋子的认识- 五子棋的基本规则与胜负判定- 常见棋谱和基本战术介绍2. 数学逻辑思维在五子棋中的应用:- 逻辑推理与分析能力的培养- 胜负概率的计算与策略制定- 棋局走势的预测与判断3. 五子棋实战技巧:- 开局、中局、残局策略分析- 实战对弈与棋局复盘- 团队合作与战术讨论4. 棋文化与传统:- 五子棋的历史发展- 棋类游戏在我国的传统文化地位- 竞技棋类游戏的精神风貌教学大纲:第一课时:五子棋基础知识学习,认识棋盘与棋子,了解基本规则和胜负判定。

第二课时:学习常见棋谱和基本战术,初步运用数学逻辑思维分析棋局。

第三课时:五子棋实战技巧训练,分组进行对弈,培养团队合作精神。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学校代码: 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 结局判断模块 .............................. 错误!未定义书签。

总结 (12)参考文献 (13)附录 (14)引言五子棋是起源于中国古代的传统黑白棋种之一。

现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“G obang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。

五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。

它是中西文化的交流点,是古今哲理的结晶。

当我们一个人无聊时,五子棋无疑成为一个令人爱不释手的游戏,五子棋容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。

我的目的就是通过C++来创建一个网络对战的平台,可以让在电脑工作的人也有人人博弈的机会,开发自己的兴趣。

通过这次课设,我可以独立的利用学习的C++程序设计和Visaul C++6.0编写环境写程序,加强自己学习能力和解决问题的能力。

第一章任务概述1.1 问题概述设计一个五子棋,棋盘大小15*15,能实现人人对战。

采用面向对象程序设计语言C++进行程序开发选用一种C++语言的开发环境设计界面及程序在开发环境下,进行程序的运行及调试使用C++程序设计语言及其开发环境实现简单的五子棋游戏,完成程序的编写和调试。

1.2 需求分析明确五子棋游戏的游戏规则,编写程序实现其功能。

为了更好的实现游戏,需求分析如下:(1)选择游戏模式(2)进入游戏。

(3)开始游戏,一方开始下子。

(4)另一方下子。

(5)判断游戏输赢。

(6)游戏结束。

第二章概要设计2.1功能设计程序主要实现的功能如下所述:(1)启动程序(2)显示棋盘,并显示谁先开始下第一子(3)另一方下子,判断下子是否有棋子(4)判断输赢(5)重复上面步骤(3)(4)(6)游戏结束,显示胜利2.2 程序结构程序结构如下图:图2.1 程序结构图2.3 基本流程根据游戏规则及其结构图,画出如下程序基本流程图图2.2基本流程图第三章程序实现3.1主要变量及函数说明3.1.1 主要变量m_cSquare //棋盘坐标int m_x; //下棋的横坐标int m_y; //下棋的纵坐标3.1.2 主要函数void show(); //显示棋子isInChessBoard //玩家落子的坐标isLine //判断五子连线的方法isWin() //判断输赢3.2 主要功能实现3.2.1棋盘类的声明class ChessBoard//棋盘类{public:char m_cSquare[ROW][COL][2];public:ChessBoard();void show();};3.2.2玩家类的声明class Player{private:string m_name;char m_chessType;int m_x;int m_y;ChessBoard* m_ptBoard;public:Player(string name, char chessType) :m_name(name),m_chessType(chessType), m_ptBoard(NULL){}void attachToBoard(ChessBoard* ptBoard){ m_ptBoard = ptBoard; } bool isInChessBoard(int x, int y);bool isLine(int x, int y);bool isWin();void setChess();};3.2.3棋盘显示为方形void ChessBoard::show(){system("cls");For (int i = 0; i<ROW; i++){for (int j = 0; j<COL; j++)cout << m_cSquare[i][j] << ' '; [3]cout << endl;}}3.2.4判断棋子显示位置是否合理bool Player::isInChessBoard(int x, int y){if (x<ROW - 1 && x>0 && y<COL - 1 && y>0)return true;elsereturn false;}3.2.5判断输赢bool Player::isWin(){return isLine(m_x, m_y) ? true : false;}第四章结果与总结4.1.运行过程及截图4.1.1棋盘初始化模块开始游戏时游戏界面是没有旗子的,会显示让aaa玩家首先输入第一个旗子的坐标,如下图图3.1游戏开始界面所以当游戏开始始,必须做初始化,实现程序如下:#include"ChessBoard.h"ChessBoard::ChessBoard(){for (int i = 1; i<ROW - 1; i++)for (int j = 1; j<COL - 1; j++)m_cSquare[i][j] = ' ';for (int j = 0; j<COL; j++)m_cSquare[0][j] = m_cSquare[ROW - 1][j] = '-';for (int i = 1; i<ROW; i++)m_cSquare[i][0] = m_cSquare[i][COL - 1] = '|'; }void ChessBoard::show(){system("cls");for (int i = 0; i<ROW; i++){for (int j = 0; j<COL; j++)cout << m_cSquare[i][j] << ' ';cout << endl;}}4.1.2输入错误提示当某一方输入的棋子位置不合理时,会提示“输入有误,请玩家再次输入坐标”的提示。

结果如图3.2所示。

图3.2错误提示图4.1.3 结局判断模块如何判断输赢:当某一方下一子后,计算与当前棋子相邻的四个方向的同色棋子个数,大于四则分出胜负,否则继续,判断是否在同一个直线上的算法流程如下图:图3.3结局判断模块实现程序如下:bool Player::isLine(int x, int y)[4]{for (int direc = HORIZON; direc <= LEFTTOPTORIGHTBOTTOM; direc++) {int tempX, tempY, cnt = 1;for (int i = -4; i <= 4; i++){if (i == 0)continue;switch (direc){case HORIZON:tempX = x; tempY = y + i; break;case VERTICAL:tempX = x + i; tempY = y; break;case LEFTBOTTOMTORIGHTTOP:tempX = x - i; tempY = y + i; break;case LEFTTOPTORIGHTBOTTOM:tempX = x + i; tempY = y + i; break;}if (isInChessBoard(tempX, tempY) &&m_ptBoard->m_cSquare[tempX][tempY] == m_chessType)cnt++;elsecnt = 0;if (cnt == 5)return true;}}return false;}当程序认定某一方赢得比赛时,会提示这一方胜利,结果如图:图3.4胜利结果图总结编辑小游戏这在我以前认为是遥不可及的,但是通过这次的五子棋设计我明白了,所有的东西对我们来讲都不是遥不可及的。

通过课程设计,我们也对《C++程序设计》这门课程有了更深入的了解。

相关文档
最新文档