五子棋程序设计说明书

合集下载

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

程序设计课程设计五子棋实验报告(附代码)

程序设计课程设计五子棋实验报告(附代码)
3
程序设计课程设计报告书
1、引言
1.1 编写目的
学会 MFC 的一些基本操作,会使用其中的部分函数,编写一个五子连珠的小游戏, 游戏由两人对弈,用鼠标操作,执黑子者先下。
1.2 读者对象
计算机专业的学生或对编程感兴趣的学生
1.3 软件项目概述
项目名称:五子棋游戏 简称:五子棋 项目代号:无 软件项目的大致功能和性能要求
4、界面要求
人机界面要容易操作,有比较舒适的背景,遇到禁手、悔棋、保存、胜利 等可弹出对话框。人机交互和谐。
5、测试方案
1. 检验判断胜利:
6
程序设计课程设计报告书
若胜利,则弹出对话框,并显示是何种胜利 2. 检验禁手
7
程序设计课程设计报告书
以上仅列出六种禁手,当然还有跟多情况 3. 检验保存
当按下“保存”图标菜单时,会弹出对话框,可给棋局取个文件名,如“1” 然后单击“保存(S)” 4. 检验打开 重现打开游戏,按下“打开”图标菜单,现在打开“1” 会显示对话框,选择要打开的文件“1” 单击“打开”,则会复盘,显示上次未完成的游戏,继续对弈 5. 悔棋(有个撤销按钮,不便验收展示) 6. 综上,基本实现新局、保存棋局、打开棋局、悔棋、禁手、判断胜利
1.1 编写目的..............................................................................................................................4 1.2 读者对象..............................................................................................................................4 1.3 软件项目概述......................................................................................................................4 1.4 文档概述..............................................................................................................................4 1.5 定义......................................................................................................................................5 1.6 参考资料..............................................................................................................................5 2、任务概述....................................................................................................................................... 5 2.1 目标....................................................................................................................................... 5 2.2 软件的开发和运行环境.......................................................................................................5 2.3 用户特征..............................................................................................................................5 2.4 假设与约束..........................................................................................................................5 2.5 进度要求..............................................................................................................................5 2.6 验收要求...............................................................................................................................5 3、功能需求描述............................................................................................................................... 6 3.1 基本功能........................................................................................... 错误!未定义书签。 3.2 增加功能........................................................................................... 错误!未定义书签。 4、界面要求....................................................................................................................................... 6 5、测试方案....................................................................................................................................... 6 6、功能设计..................................................................................................................................... 10 6.1 类的关系描述.....................................................................................................................10 6.2 类的设计............................................................................................................................. 11 7、使用指南..................................................................................................................................... 11 8、维护接口..................................................................................................................................... 11 9、总结............................................................................................................................................. 12

五子棋概要设计说明书

五子棋概要设计说明书

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

五子棋活动策划书(通用12篇)

五子棋活动策划书(通用12篇)

五子棋活动策划书(通用12篇)五子棋活动策划书篇1一、活动目的:1、丰富学生校园文化生活,培养学生的竞争意识,提高学生的综合素质。

2、为学生搭建展示自身特长的平台,让学生增长见识,发挥潜能,提高素质,让学生在轻松、快乐的氛围中成长。

二、活动对象:四年一班全体学生三、报名日期:9月19--23日四、活动时间:9月19日--9月23日准备阶段9月23日中午12:20--13:00 比赛五、活动地点:四年一班教室六、比赛规则:活动采用无禁手规则,预赛采用单局淘汰制;四强采用循环制,三局两胜。

七、比赛结果:第一名:陈晨第二名:刘美会第三名:王增举第四名:冷珂屹八、活动效果:尽管准备比较仓促,可还是让孩子们皆大欢喜,下棋还是一种文明的竞技活动,能让孩子有公平竞争的意识。

另外对孩子的创造力、想像力和意志、忍耐力的形成都有益处。

只要正确地分配时间,学棋不仅不会耽搁其他本领的学习,而且会对学习有潜移默化的促进作用。

活动之后,看到孩子们意犹未尽,答应在不影响学习的情况下,第周举行一次类似的五子棋活动策划书篇2一、活动目的五子棋运动在我国有着深厚的群众基础,随着国家体育总局将五子棋列为正式比赛项目以及全国智力运动会项目,更是得到了快速的推广。

为了发展传统特色体育项目,开展好小学生五子棋运动,给小学生提供切磋棋艺、锻炼发展的平台,特举办本次比赛。

二、活动时间20xx年11月15日(周五)三、活动地点和场地安城中心小学篮球场四、竞赛项目和竞赛办法五子棋个人赛、采用国家体育总局xx运动管理中心的《中国五子棋竞赛规则》五、活动组织(一) 组织领导:张大勇、潘玲芳、沈锋锋(二) 裁判长:康健(三) 编排:康健(兼)(四) 裁判:付国华、朱颖、王永青六、参赛资格在校小学生均可报名参加,每班选派八名选手参赛(男女不限)七、分组情况五六年级为儿童甲组,三四年级为儿童乙组,一二年级为儿童丙组八、竞赛方法:(一)个人赛分组比赛。

(二)竞赛制度:瑞士积分制九轮。

五子棋概要设计

五子棋概要设计

五⼦棋概要设计⽂档编号: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编写⽬的本款软件主要⾯向于青少年学⽣、⼉童以及⽼⼈,⽤于他们开发智⼒,消遣娱乐。

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

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

中国风五子棋的设计与实现项目开发计划开发团队: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语言图形模式下的编程。

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

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

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

学校代码: 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、窗体设计利用MFC‎ AppWi‎n zard‎生成五子棋‎游戏应用程‎序框架具体‎步骤如下:(1)执行VC程‎序,选择Fil‎e|N ew命令‎,弹出New‎对话框.单击Pro‎jects‎标签,转到Pro‎jects‎选项卡,选择MFC‎ AppWi‎z ard(exe)选项,然后在Pr‎oject‎name文‎本框中输入‎F ivec‎h ess_‎44 。

Lacat‎i on文本‎框是指项目‎的本地路径‎。

(2)单击按钮,弹出MFC‎ AppWi‎n zard‎_Step‎1对话框。

选中单选按‎钮,如图所示。

(3)单击完成按‎钮,则建立一个‎单文档应用‎框架。

2、游戏项目开‎发2.1棋盘设计‎1.在已创建的‎工程Fiv‎eches‎s_44中‎添加画棋盘‎的函数。

首先在“Fivec‎h ess_‎44.h”头文件中定‎义一个用于‎显示棋盘的‎自定义公有‎函数:void Check‎e rboa‎r d(CDC*pDC);然后在“Fivec‎h ess_‎44Vie‎w.cpp”源文件中实‎现该函数。

代码如下:void CFive‎c hess‎_44Vi‎e w::Check‎e rboa‎r d(CDC*pDC){for(int i=0;i<20;i++) //连续画20‎条竖线{pDC->MoveT‎o(i*50,0); //画笔移动到‎(i*50,0)点pDC->LineT‎o(i*50,1000); // 画笔从(i*50,0)点到(i*50,1000)点}for(i=0;i<20;i++) //连续画20‎条横线{pDC->MoveT‎o(0,i*50);pDC->LineT‎o(1000,i*50);}}2.在应用程序‎框架的On‎D raw()函数中调用‎该画棋盘函‎数,将pDC对‎象作为实参‎传递给Ch‎ecker‎b oard‎()函数,代码如下:void CFive‎c hess‎_44Vi‎e w::OnDra‎w(CDC* pDC){CFive‎c hess‎_44Do‎c* pDoc = GetDo‎c umen‎t();ASSER‎T_VAL‎I D(pDoc);// TODO: add draw code for nativ‎e data hereCheck‎e rboa‎r d(pDC); //调用自定义‎的画键盘函‎数}3.编译运行得‎到如下效果‎:一个空棋盘‎2.2放置棋子‎功能的开发‎按照规划,棋子使用鼠‎标的左键和‎右键(分别用这两‎键来表示下‎棋的双方)来进行单机‎下棋,即是当用户‎单击左键时‎,下黑色棋子‎,,用户单击右‎键时,下白色棋子‎。

c五子棋课设说明书含完整源代码

c五子棋课设说明书含完整源代码

*******************实践教学***********************大学计算机与通信学院2016年春季学期C程序设计课程设计题目:五子棋游戏专业班级:16级物联网1班姓名: ******__学号: 1616520147指导教师: ******成绩:摘要五子棋是一种两人对弈或者人机对弈的纯策略型棋类游戏,应用C语言编写程序可以在计算机上实现人机对弈五子棋功能。

人机对弈五子棋程序由开始界面,棋盘,判断胜负和计分等子程序构成;程序中应用了数组、全局变量、按键处理和图形编程等元素和语句。

程序通过棋盘和棋子图像生成、玩家移子与电脑判断分数高低而落子和判断胜负等功能的实现,在计算机上用VC++6.0实现了人机五子棋对弈。

关键词:C语言;VC++6.0目录摘要 ......................................................................................... 第1章序言. 01.1设计背景 01.2设计目的 0第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)致谢 (145)附录(源代码) (156)第1章序言1.1 设计背景五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。

有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。

在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。

五子棋比赛策划书(精选5篇)

五子棋比赛策划书(精选5篇)

五子棋比赛策划书(精选5篇)五子棋比赛策划书(精选5篇)伴着时间的流逝,辛苦的工作已经告一段落,我们的工作又将迎来新的任务和目标,为此需要好好地进行策划,写一份策划书了。

快来参考策划书是怎么写的吧,下面是小编精心整理的五子棋比赛策划书(精选5篇),欢迎阅读,希望大家能够喜欢。

五子棋比赛策划书1一、指导思想五子棋是科学、文化、艺术、竞技融为一体的智力体育项目。

有助于儿童智力开发,逻辑思维和想象能力的培养,分析能力和记忆力的促进,思维的敏捷性和严密性得以提高。

同时又能培养学生顽强勇敢、坚毅沉着、机智灵活、大局观等优秀的意志品质,增强学习生活中的计划性和灵气性,增进友谊,陶冶高尚情操它还能丰富人们的文化生活,增进友谊,陶冶高雅情操。

二、活动价值1、教育性:结合有关典故,进行民族精神教育,培养爱国主义精神。

同时有助于逻辑思维、顽强勇敢、坚毅沉着和想象能力的培养,分析能力和记忆力的促进,有利于学生儒雅、大气、灵气、静心等情操的陶冶。

2、规则性:没有规矩难成方圆。

五子棋棋的走法具有一定的规则,评判一盘棋的输赢也符合一定的规则,你要参与必须遵守它的规则,学生在训练、下棋的过程中潜移默化养成遵守规则的良好习惯,对于学习以及今后的社会生活得以受益。

3、趣味性:棋类,对于学生来说本身具有较强的兴趣,又有易学、携带方便,不受竞技场地限制等优点。

学校营造一些特色的环境,让学生感受到浓厚的氛围,充分体现我校的特色,同时多举行不同层次,不同层面的比赛,使学生感受到五子棋棋的浓厚兴趣。

4、竞技性:五子棋是一项竞技项目,对弈双方都想赢。

而“棋局如人生”,复杂多变、风云突起、难以把握。

通过训练,可以帮助学生克服急躁和优柔寡断的不良性情,增强战胜困难的意志、毅力和勇气,培养学生积极进取、争强好胜的拼搏精神。

三、学情分析(一)、五子棋兴趣小组大部分学生虽然接触过此棋种,但是对其的研究甚少,应该从最基本的入手,传授学生基本知识的同时以培养学生兴趣为目的。

c语言课程设计五子棋

c语言课程设计五子棋

c语言课程设计五子棋一、教学目标本章节的教学目标是使学生掌握C语言编程基础,学会使用C语言编写简单的五子棋游戏。

具体目标如下:1.知识目标:–了解C语言的基本语法和数据类型。

–掌握函数的定义和调用。

–理解指针的概念和使用方法。

–学习结构体的定义和运用。

2.技能目标:–能够使用C语言编写简单的程序。

–学会使用C语言进行基本的输入输出操作。

–掌握使用C语言进行条件判断和循环控制。

–能够使用C语言实现五子棋游戏的逻辑和规则。

3.情感态度价值观目标:–培养学生的编程兴趣和自信心。

–培养学生解决问题的能力和创新思维。

–培养学生的团队合作意识和沟通能力。

二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、函数、指针、结构体等。

具体内容如下:1.C语言的基本语法和数据类型。

–变量的声明和赋值。

–控制语句的使用,如if、for、while等。

–数组的声明和使用。

2.函数的定义和调用。

–函数的声明和定义。

–函数的参数传递和返回值。

–函数的调用和调用方式。

3.指针的概念和使用方法。

–指针的声明和赋值。

–指针的解引用和取地址。

–指针与数组的关系。

4.结构体的定义和运用。

–结构体的声明和定义。

–结构体的成员访问和操作。

–结构体的数组和指针。

5.五子棋游戏的逻辑和规则实现。

–棋盘的表示和初始化。

–玩家输入和棋子放置。

–判断胜利条件和游戏结束。

三、教学方法本章节的教学方法采用讲授法、讨论法、实验法相结合的方式。

具体方法如下:1.讲授法:通过讲解和示例,使学生掌握C语言的基本语法和数据类型。

2.讨论法:通过小组讨论和问题解答,帮助学生理解函数、指针和结构体的概念。

3.实验法:通过编写五子棋游戏程序,让学生动手实践,巩固所学知识。

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

具体资源如下:1.教材:选用《C程序设计语言》作为主教材,辅助以《C语言编程实例解析》等参考书。

2.多媒体资料:提供C语言编程的教学视频和PPT课件,帮助学生更好地理解知识点。

五子棋概要设计说明书

五子棋概要设计说明书

概要设计说明书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 引言 (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 标准围棋棋盘。

●游戏采用人机对弈模式,可以选择任何一方执黑先行。

●游戏中没有禁守规则和其他走子限制。

●只有当连五以后才判为获胜,长连也算获胜。

五子棋游戏软件说明书1

五子棋游戏软件说明书1

XX大学软件大型实验周说明书学院:专业:题目:学生姓名:学号:成绩指导教师:职称:年月日1.设计目的(1)要求学生达到熟练掌握C++语言的基本知识和C++调试技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

(4)培养学生综合利用C++语言进行程序设计的能力,主要是培养学生利用系统提供的标准图形函数进行创新设计。

2.设计内容1、创建棋盘大小(可任意),并且要保存棋盘上各个点的位置;2、创建棋子类及其属性和方法;3、从盘键分别获取两个用户的输入,根据用户的身份及输入的位置,调用棋子类的相应方法,完成棋子的走动;4、输赢的判断;5、游戏结束。

3.开发和运行环境介绍该课程设计在设计与实验过程中需要在windows XP系统/windows 2000以上系统中进行,程序设计要求在visual C++6.0平台中进行,完成代码的编写、编译、调试、测试等工作。

本游戏对计算机硬件和操作系统要求极低,所以在这里只是把自己的电脑硬件参数和系统参数列下:操作系统:windows xp软件环境:安装VC++6.04.需求分析(以下项目根据实际情况自定)4.1功能需求游戏说明:游戏开始时,由黑子开局,将一枚棋子落在棋盘一坐标上,然后由白棋落子,如此轮流下子,直到某一方首先在棋盘的竖、横或斜三方向上的五子连成线,则该方该局获胜;然后继续下一局,每胜一局得10分,输一局或平局得0分,先赢两局的一方为最终获胜者;在下棋途中可以悔棋。

1、功能列表如下:a)输出棋盘;b)显示用户行程,提示用户下子;d)悔棋,下错位置可以悔棋;e)记录并显示每局游戏结束时的步数;f)判断每局游戏输赢,显示每局游戏的获胜者及分数。

g)判断是否进行下一局。

h)判最终赢家(三局两胜)。

i)退出游戏。

2、功能描述(1)棋盘是15*15的方格棋盘,下棋区为a[0][0]到a[14][14]。

五子棋程序设计说明书

五子棋程序设计说明书

五子棋程序设计说明书-CAL-FENGHAI.-(YICAI)-Company One1中北大学程序设计课程设计说明书学生姓名:学号:学院:信息与通信工程学院专业:光电信息工程题目:五子棋指导教师:职称:2012 年 01月 06 日(纪念我已经逝去的大学生活)院:信息与通信工程学院专业:光电信息工程学生姓名:学号:课程设计题目:五子棋起迄日期:2011年12月 24日~2012年1月6日课程设计地点: 111420指导教师:系主任:下达任务书日期: 2011 年12 月25日课程设计任务书课程设计任务书目录1、课程设计的背景及意义 (06)2、设计的基本原理 (06)3、设计的基本过程 (08)4、设计的结果 (10)5、总结和结论 (11)1.设计背景及意义我们的五子棋程序是在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发行。

发行至今一直被广泛地用于大大小小的项目开发。

五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。

我们通过对《C语言》以及对《大学计算机基础》的初步学习后,本学期末进行了课程程序设计,设计课题为“五子棋”。

我们小组由6人组成,通过分工与合作并在赵老师的耐心指导下共同完成了此程序设计。

2.设计的基本原理问题描述连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。

在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。

五子棋游戏需求规格说明书

五子棋游戏需求规格说明书

TianGang Parot’s Gobang Game Software Requirements Specification五子棋游戏软件需求规格说明书版权所有不得复制Copyright © BroadenGate Technologies, Co., Ltd.. All Rights ReservedRevision Record 修订记录Catalog 目录Revision Record (2)1. Introduction 简介 (6)1.1. Purpose 目的 (6)1.2. Scope 范围 (6)2. General description总体概述 (6)2.1. Software perspective 软件概述 (6)2.1.1. About the Project 项目介绍 (6)2.2. Software function 软件功能 (6)2.2.1. 结构图 (6)2.2.2. 功能模块图 (7)2.3. Actors 角色 (7)3. Functional Requirements 功能需求 (8)3.1. 游戏模块 (8)3.1.1. 新游戏 (8)3.1.2. 重新开始 (11)3.1.3. 退出游戏 (11)3.2. 设置模块 (12)3.2.1. 模式设置 (12)3.3. 帮助模块 (13)3.3.1. 使用帮助 (13)3.3.2. 关于软件 (14)4. Performance Requirements 性能需求 (15)5. Interface Requirements 接口需求 (15)5.1. User Interface 用户接口 (15)5.2. Software Interface 软件接口 (15)5.3. Hardware Interface 硬件接口 (15)5.4. Communication Interface 通讯接口 (16)6. Overall Design Constraints 总体设计约束 (16)6.1. Standards compliance 标准符合性 (16)6.2. Hardware Limitations 硬件约束 (16)6.3. Technology Limitations 技术限制 (16)7. Software Quality Attributes 软件质量特性 (16)7.1. Reliability 可靠性 (16)7.2. Usability 易用性 (16)7.3. Maintainability 可维护性 (16)7.4. Testability 可测试性 (17)7.5. Usability 可用性 (17)8. Other Requirements其他需求 (17)8.1. Operations 操作 (17)8.2. Localization 本地化 (17)9. Requirements Classification 需求分级 (17)10. Issues To Be Determined 待确定问题 (17)11. Appendix 附录 (17)11.1. Feasibility Study Results 可行性分析结果 (18)11.2. Glossary词汇表............................................................................................... 错误!未定义书签。

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

中北大学程序设计课程设计说明书学生姓名:学号:学院:信息与通信工程学院专业:光电信息工程题目:五子棋指导教师:职称:2012 年 01月 06 日(纪念我已经逝去的大学生活)院:信息与通信工程学院专业:光电信息工程学生姓名:学号:课程设计题目:五子棋起迄日期:2011年12月 24日~2012年1月6日课程设计地点: 111420指导教师:系主任:下达任务书日期: 2011 年12 月25日课程设计任务书课程设计任务书目录1、课程设计的背景及意义 (06)2、设计的基本原理 (06)3、设计的基本过程 (08)4、设计的结果 (10)5、总结和结论 (11)1.设计背景及意义我们的五子棋程序是在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发行。

发行至今一直被广泛地用于大大小小的项目开发。

五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。

我们通过对《C语言》以及对《大学计算机基础》的初步学习后,本学期末进行了课程程序设计,设计课题为“五子棋”。

我们小组由6人组成,通过分工与合作并在赵老师的耐心指导下共同完成了此程序设计。

2.设计的基本原理问题描述连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。

在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。

此时,算法结束。

需求分析(1)输出棋盘界面(2)要求玩家选择棋子(3)玩家轮流下棋(4)判断键盘输入哪个键按规则执行操作(5)判断谁先落棋(6)判断赢家(7)输出结果界面流程图3设计的基本过程char b[40][40];void show() ,再接下来的双for是为塑形:限定行间距为10<i<16,再限定列间距为10<j<16或25<j<31,用判断语句来塑造图形“双眼”;当i=21时,限定6<=j<=25,当i=22,23,24,25,26,27时同理,用判断语句来塑造“嘴”,最后用双for语句来输出图形。

4设计结果玩家获胜显示界面截图5总结与结论1课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程程序设计,至今我仍感慨颇多,从选题到定稿,从理论到实践,在整整两星期的日子里,学到很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正提高自己的实际动手能力和独立思考的能力。

在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,把以前所学过的知识重新温故。

2这次课程设计顺利完成了,在设计中遇到了很多编程问题,最后在赵宇老师的辛勤指导下,终于游逆而解。

同时,在赵宇老师的身上我学得到很多实用的知识,我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!附录程序源代码:#include<>#include<>char a[65][65];char b[40][40];void show() //输出获胜图像//{int i=0,j=0; //i为横坐标变量,j为纵坐标变量// for(i=0;i<40;i++) //对图像数组赋初值//for(j=0;j<40;j++){b[i][j]=46;}for(i=0;i<40;i++) //对图像数组特定点赋值// for(j=0;j<40;j++){if(i>10&&i<16){if(j>10&&j<16||j>25&&j<31)b[i][j]='O';}else{if(i==21){if(j>=6&&j<=35)b[i][j]='O';}else{if(i==22){if(j>=7&&j<=34)b[i][j]='O';}else{if(i==23){if(j>=8&&j<=33)b[i][j]='O';}else{if(i==24){if(j>=9&&j<=31)b[i][j]='O';}else{if(i==25){if(j>=10&&j<=30)b[i][j]='O';}else{if(i==26){if(j>=12&&j<=28)b[i][j]='O';}else{if(i==27){if(j>=14&&j<=26)b[i][j]='O';}else{if(i==28){if(j>=17&&j<=23)b[i][j]='O';}}}}}}}}}}for(i=0;i<40;i++) //输出图像数组//{for(j=0;j<40;j++)printf("%c",b[i][j]);printf("\n");}}void move(int *x,int *y) /*移动棋子的方向*/ //x为上一步棋子横坐标,y为上一步棋子纵坐标//{char b[40]; //为记录棋子将要移动的步伐//int i,z,flag=1; //z为某一步的中间变量,flag为标志变量//gets(b); //输入要移动的步伐//for(i=0;i<40;i++){z=b[i]; //把b【】的某一步传递给z//switch(z) //判断移动棋子方向//{case 119: *x=*x-1;break; //w键控制棋子上移//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; //判断某步是否移动完成// }}int playing() /*开始下棋*/{int flag=1,i=0,x=0,y=0,k,l,n=0,m=1; //flag为记录哪方下棋的标志变量,x,y为a[][]的横纵坐标,m,n分别记录o方,@方的积累步数//int *p1=&x,*p2=&y;int judge (int x,int y); //本函数所用子函数的声明//void move(int *p1,int *p2);void showcheckerboard(int x,int y);printf("O方先输入首子坐标:");scanf("%d %d",&x,&y); //输入首坐标//a[x][y]='O'; //首坐标的棋盘位置画棋子//showcheckerboard(m,n); //输出更新后的棋盘// for(i=0;i<2000;i++) //改变玩家//{if(flag==1)flag=0;elseflag=1;for(k=0;k<2000;k++) //玩家落子并判断下的棋子是否过界或此处是否有子//{if(flag==1){ printf("O方下棋\n");m++;}else{ printf("@方下棋\n");n++;}move(p1,p2);if(x>=1&&x<=64&&y>=1&&y<=64){if(a[x][y]==46) break;else{if(flag==1) m--; else n--;printf("此处有子,请继续移子");continue;}}else {if(flag==1) m--; else n--;printf("此处过界,请继续移子");}}if(flag==1) //在a[][]的特定位置更新字符//a[x][y]='O';elsea[x][y]='@';showcheckerboard(m,n); //更新棋盘//l=judge(x,y); //记录谁赢变量//if(l==1) return flag;}}void showcheckerboard(int x,int y) /*画出棋盘*/ //x,y分别为o方下棋步数,@方下棋步数//{int i,j,w=0; //i,j为横纵坐标变量// printf("================================================================================================================\n");printf(" 0方累计下棋步数:%d @方累计下棋步数:%d\n",x,y);printf("================================================================================================================\n");for(i=0;i<65;i++) //输出横纵坐标//printf("%2d",i);printf("\n");for(i=1;i<65;i++){for(j=0;j<65;j++){if(j==0){w+=1;printf("%2d",w);}else{printf("%2c",a[i][j]);}}printf("\n");}}int judge(int x,int y) /*判断各方向五子是否连成一线*///x,y分别为横纵坐标//{int i,b,c,d,e,z=1; //z为标志变量,记录每个方向连棋个数//for(i=1;i<5;i++) //垂直向下数//{if(a[x][y+i]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}for(i=1;i<5;i++) //垂直向上数//{if(a[x][y-i]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}e=z;z=1;for(i=1;i<5;i++) //水平向右数// {if(a[x+i][y]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}for(i=1;i<5;i++) //水平向左数// {if(a[x-i][y]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}b=z;z=1;for(i=1;i<5;i++) //向左下方数// {if(a[x-i][y+i]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}for(i=1;i<5;i++) //向右上方数// {if(a[x+i][y-i]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}c=z;z=1;for(i=1;i<5;i++) //向左上方数// {if(a[x-i][y-i]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}for(i=1;i<5;i++) //向右下方数//{if(a[x+i][y+i]==a[x][y]){z+=1;if(z==5){return(1);break;}}else break;}d=z;if(e!=5&&b!=5&&c!=5&&d!=5) //判断某个方向五子连棋// {return(0);}}void main(){int x,y,flag,m=0,n=0,p=0; //flag为哪方下棋的判断变量,m,n 为分别记录双方的步数//printf("================================================== ========================================================== ====\n");printf("w为上移动,a为左移动,s为下移动,d为右移动,o确定落棋子\n");printf("================================================== ========================================================== =====\n");printf("玩家1选择棋子:选0方输入1,选@方输入2\n");scanf("%d",&p);for(x=1;x<65;x++) //棋盘数组初始化// for(y=1;y<65;y++)a[x][y]=46; showcheckerboard(m,n); //输出棋盘//flag=playing(); //下棋//show(); //输出获胜图形//if(flag==1) //判断哪方获胜// printf("O方获胜");elseprintf("@方获胜");}。

相关文档
最新文档