五子棋对弈系统设计

合集下载

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现五子棋是一种双人对弈的棋类游戏,也是一种非常经典的游戏类型。

设计一个基于JAVA的五子棋游戏系统,需要考虑到以下几个方面:游戏规则、游戏界面和游戏功能的实现。

一、游戏规则的设计:五子棋的规则非常简单,双方轮流下棋,先连成五子的一方为胜。

游戏区域是一个15x15的棋盘,棋盘上有黑白两种棋子。

玩家可以通过点击棋盘的不同位置来下棋。

二、游戏界面的设计与实现:1. 创建一个游戏主界面,并在界面上绘制棋盘。

可以使用JAVA Swing来创建界面,并使用Graphics类来实现绘制棋盘的功能。

2.在棋盘上绘制出15x15的格子,并设置鼠标点击事件,以便玩家可以通过点击棋盘的不同位置来下棋。

3. 在玩家下棋后,使用Graphics类来在棋盘上绘制出对应的棋子。

可以使用不同的颜色来区分黑白两种棋子。

三、游戏功能的实现:1.实现轮流下棋的功能。

通过一个变量来记录当前轮到哪个玩家下棋,玩家可以通过鼠标点击事件来确定落子的位置。

2.实现判断胜负的功能。

在每次下棋后,判断是否已经有五子连线的情况出现。

可以使用一个二维数组来保存棋盘上每个位置的棋子情况,并根据棋子位置来判断是否满足胜利条件。

3.实现悔棋功能。

当玩家点击悔棋按钮时,可以将最后一步下的棋子清除,并将轮到下棋的玩家切换至上一步下棋的玩家。

4.实现重新开始的功能。

当游戏结束后,可以通过点击重新开始按钮来重新开始游戏。

以上是一个基于JAVA的五子棋游戏系统的设计与实现的简要思路。

在实际的开发过程中,还需要考虑到异常处理、界面美化、多人对战等更多的细节。

希望以上内容能够帮助您完成五子棋游戏系统的设计与实现。

《JAVA五子棋程序设计》课程设计

《JAVA五子棋程序设计》课程设计

计算机与信息工程系《JAVA程序实训》设计五子棋游戏摘要:计算机人机对弈作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。

它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。

五子棋人机对弈是计算机博弈中的一种。

研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。

五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。

关键词:人工智能,计算人机对弈,五子棋,算法 , java1.课程设计介绍1.1课程设计目的通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、NetBeans等开发工具的运用,拓宽常用类库的应用。

使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

本次课程设计每人一组,自行设计并实现共功能模块。

1.2课程设计任务实现五子棋游戏,要求:使用图形用户界面,实现人人对战,人机对战。

能够判断输赢,有“开始”按钮,当出现棋盘后,按此按钮进入对战状态。

当有胜利者(垂直、水平、对角线连续5子),显示对话框,提示谁(黑还是白)胜利了。

若当棋盘满了还无胜利者,显示平局对话框。

有“悔棋”按钮,玩家可以点击悔棋,回到上一步。

1.3课程设计论文编写要求(1)要按照书稿的规格打印与写课程设计论文;(2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录(源代码)等;(3)课程设计论文装订按学校的统一要求完成。

2.系统设计2.1需求分析2.1.1性能需求一款小游戏的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求,其中玩家的实际需求最为重要.面对游戏拥有不同知识和理解层面的玩家,游戏制作人对玩家需求的理解程度,在很大程度上决定了此类游戏开发的成败.因此如何更好地的了解,分析,明确玩家需求,并且能够准确,清晰以文档的形式表达给游戏制作人,保证开发过程按照满足玩家需求为目的正确开发方向进行,是每游戏游戏制作人需要面对的问题。

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现

基于JAVA的五子棋游戏系统设计与实现引言五子棋是一种古老而又受欢迎的棋类游戏,在目前的计算机科学中,由于其算法的多样性和难度的适中,成为了很多程序员学习和思考的对象。

在本篇文章中,我们将介绍基于JAVA的五子棋游戏系统的设计与实现,包括系统的整体结构、主要功能模块、技术选型和实现细节等方面。

一、系统整体结构五子棋游戏系统的整体结构,可以分为三个层次:显示层、逻辑层和数据层。

其中,显示层负责绘制游戏界面和处理用户交互事件;逻辑层实现游戏规则和策略,负责判断胜负并给出提示;数据层则维护游戏状态和棋局数据。

如图所示,五子棋游戏系统的整体结构如下:二、主要功能模块1.游戏开始和重置当用户点击“开始游戏”按钮时,系统会开始初始化游戏状态和棋局数据,同时展示游戏界面。

当用户在游戏中点击“重新开始”按钮时,系统会清空棋盘数据并重新初始化游戏状态。

2.用户交互和落子用户可以通过鼠标点击来操作棋盘,并在可落子点上落下自己的棋子。

落子后,系统需要检测当前状态下是否已经有五子连珠的情况出现。

3.胜负判断和提示当一方落下五子连珠时,系统会弹出胜利提示,并停止游戏。

同时,游戏界面上会显示当前胜方的姓名和胜利棋局的情况。

4.游戏设置系统提供了一些游戏设置的选项,例如棋盘大小、棋子颜色、先手后手等。

用户可以自由设置游戏参数并开始游戏。

5.游戏记录和回放系统支持对游戏过程的记录和回放功能,用户可以查看任意一局棋局的走法、时间、胜负等情况。

6.本地游戏和联网对战用户可以选择本地游戏(双人游戏)和联网对战两种模式。

在联网对战中,两位玩家可以通过互联网进行远程对战。

三、技术选型1.编程语言:JAVA由于JAVA是一种跨平台的编程语言,在开发五子棋游戏系统时,可以保证相对的兼容性和应用范围。

同时,JAVA还具有良好的面向对象编程特性,代码复用性高,易于维护。

2.图形界面:SwingSwing是JAVA自带的图形界面库,可以用来实现各种复杂的图形界面。

五子棋系统分析

五子棋系统分析

1 系统分析1.1系统功能本次设计的是一款基于HTML5、Node.js、Mongodb的一款多人在线五子棋游戏。

由于HTTP协议的无状态性,所以不利于建立客户端和服务器之间的通信,所以传统的网页游戏都是基于flash技术。

本系统利用HTML5提供的Web Socket功能可以方便的实现游戏数据的事实传输功能,服务端采用Node.js开发,Node.js是一个javascript运行环境,使得Javascript能够在服务器端运行。

Node.js的非阻塞特性,使得它非常利于大量数据的高并发处理,目前已在很多网页游戏和手机端游戏的服务器有所应用。

用户游戏过程中的数据采用MongoDB进行存储,MongoDB是一款性能优越的NoSQL 数据库,它以一种二进制JSON(BSON)进行存储,而本系统的客户端和服务器端都是使用javascript作为开发语言,javascript对于JSON的支持非常好,能方便的在JSON数据类型和Javascript对象之间进行灵活转换。

1.2系统总体结构该系统分为服务器端程序和客户端程序、服务器端主要由消息转发处理模块组成,客户端主要由通信模块、五子棋游戏逻辑与绘制模块和用户消息处理模块组成。

系统结构如图所示。

1.3系统功能模块分析1.3.1消息转发处理模块消息转发处理模块是服务器端的核心模块,游戏服务器端程序通常只进行对用户消息的接受转发,数据存储等核心功能,其他功能交由客户端处理,这样可以减轻多人同时在线时的服务器压力,消息转发处理模块接受客户端通过HTML5 Web Socket建立的链接,处理客户端发送的消息,并向客户端发送消息进行通讯。

1.3.2 通讯模块通信模块包括了HTML5 Web Socket对象初始化、消息接收、消息发送、界面显示等子功能模块。

HTML5 Web Socket对象初始化模块:WebSocket protocol 是HTML5一种新的协议(protocol)。

五子棋人机博弈实验报告

五子棋人机博弈实验报告

五子棋人机博弈实验报告目录一(课程设计目的............................................. 2 二(课程设计要求............................................. 2 三(课程设计内容............................................. 2 四(课程设计思想............................................. 2 五(系统实现 (2)设计平台 (2)数据结构设计 (3)程序流程图设计 (3)主要算法设计 (4)程序调试及运行结果.............................. 4 六(课程设计总结............................................. 5 七(参考资料................................................... 6 八(附录:五子棋博弈算法源代码 (7)1一( 课程设计目的通过上学期学习的《人工智能》学科,运用推理技术、搜索方法和决策规划和博弈树设计五子棋人机博弈系统,以此进一步深化对理论知识技术的了解,培养学生编程能力以及实践水平。

二(课程设计要求通过本次课程设计要求学生掌握以下内容:1.深入了解博弈树和alpha-beta剪枝算法。

2.设计出适合五子棋算法的启发式函数。

3.熟练掌握启发式的搜索方法。

三(课程设计内容本系统实现的是五子棋博弈算法,运用java语言实现了图形用户界面,方便用户使用。

算法采用了博弈算法和启发式函数进行搜索,人机对弈可自动判断输赢,结束后可重新开局。

四(课程设计思想本系统实现的是五子棋博弈算法,为了方便用户的使用,采用的是java图形用户界面技术。

为了记录棋盘的每一个下棋点,定义数组array[19][19]。

五子棋游戏程序设计

五子棋游戏程序设计

五子棋游戏程序设计五子棋游戏程序设计1、引言在本文档中,我们将介绍一个五子棋游戏的程序设计方案。

五子棋是一种非常古老的策略性棋类游戏,玩家通过在一个棋盘上下子,目标是先在横、竖、斜线上连成五个子的一方获胜。

2、需求分析在这一部分,我们将详细描述五子棋游戏的功能需求和技术限制。

2.1 游戏规则- 棋盘是一个 15x15 的格子矩阵,玩家轮流在格子中下子。

- 黑方和白方交替进行下子。

- 当任意一方在横、竖、斜线上连成五个子时,获得胜利。

- 如果棋盘填满且没有任何一方连成五个子,则游戏平局。

2.2 用户界面- 游戏应提供一个交互式的用户界面,玩家可以通过鼠标或键盘进行操作。

- 游戏界面应友好,清晰地显示当前的棋盘状态和玩家轮次。

- 游戏应提供一些额外的功能(如悔棋、重新开始等)来增加用户体验。

2.3 技术限制- 本程序设计使用面向对象的方法实现。

- 棋盘的显示和用户交互部分应采用图形界面。

- 游戏应具备较好的性能,可以在合理的时间内响应用户操作。

3、模块设计在这一部分,我们将详细描述五子棋游戏的各个模块,并给出相应的设计方案。

3.1 棋盘模块- 这个模块负责管理棋盘的状态和提供相关的操作方法。

- 棋盘可以表示为空、为黑子、为白子的状态,并提供下子和撤销子的方法。

- 这个模块还需要提供检查胜利条件的方法。

3.2 玩家模块- 这个模块负责管理玩家的状态和提供相关的操作方法。

- 玩家可以选择下黑子或白子,并提供下子的方法。

- 这个模块还需要提供获取玩家输入的方法。

3.3 用户界面模块- 这个模块负责显示棋盘和处理用户交互。

- 用户界面应提供可视化的棋盘,并允许玩家通过鼠标选择下子的位置。

- 这个模块还需要处理玩家的输入,并将其转发给棋盘和玩家模块。

4、测试计划在这一部分,我们将描述五子棋游戏的测试计划,以确保游戏的正确性和稳定性。

4.1 单元测试- 棋盘模块应进行单元测试,测试其提供的下子和撤销子的方法是否正确。

QT-五子棋游戏设计-课程设计报告

2013-2014学年秋季学期《Windows程序设计》课程设计报告学院:计算机与信息学院序号: 56姓名:周春雷学号: 2012112302指导教师:王安慧完成时间 2014 年 05月29日目录一、课程设计的目的 (1)二、课程设计的容及要求 (1)三、关键技术及相关原理介绍 (1)四、系统的总体设计 (2)五、设计思路及关键问题的解决方法 (3)六、设计模块分类 (4)1. 输入模块 (4)2. 输出模块 (6)3. 判断模块 (7)①判断输赢模块 (7)②判断命令模块 (11)七、运行结果截屏 (13)一、课程设计的目的通过所学的知识和技术,在老师的帮助下以及自己查询资料,完成对五子棋游戏的编程实现,使程序支持人人战,并且可以完成判断输赢,悔棋,从新开始等基本功能。

本次课程设计的课题简单,且娱乐性强。

在完成课题的过程中可以很好的复习学过的知识和技术,并且在完成设计编程后,可以很大程度上提高自信心和好学心,同时在做的过程中遇到难题能主动查阅资料、寻求帮助,对团队协作以及对网络资源的有效利用有了更深的体会。

二、课程设计的容及要求课程设计的容:本次设计将提供一个“五子棋”的游戏程序,可完成的功能有“人与人对战”、悔棋、开始新游戏。

课程设计的要求:使用QT软件开发,语言使用C++。

三、关键技术及相关原理介绍本系统主要分为输入模块、输出模块和判断模块这三大块。

各模块依据所属功能的不同来划分。

输入模块主要实现用户对数据的输入,输出模块则是完成对用户输入到系统的数据在棋盘上的显示,而判断模块这是系统的主要模块,完成对用户输赢的判断和对用户悔棋和从新开始等操作命令的响应。

本次采用了QT进行程序设计,对于图形界面有较好的处理方法和环境。

四、系统的总体设计图1:系统功能模块图图1是系统的总体模块图,依据系统的不同功能包含3个大的模块:输入模块,判断模块和输出模块。

各个模块的具体代码实现和功能描述在后面将详细的解释。

五子棋人机对战设计任务书

五子棋人机对战设计任务书目录1.系统需求分析 ............................................................................................................... 错误!未定义书签。

2.总体设计 ....................................................................................................................... 错误!未定义书签。

3.详细设计 ....................................................................................................................... 错误!未定义书签。

4.系统调试 ....................................................................................................................... 错误!未定义书签。

5.使用说明 ....................................................................................................................... 错误!未定义书签。

6.编程体会 ....................................................................................................................... 错误!未定义书签。

Java五子棋毕业设计论文

(2)棋局回放:用户根据自己的需求回放自己以前下过的棋局。
(3)玩五子棋:用户在点击playgame后会进入游戏界面玩游戏。
(4)悔棋功能:在下棋过程中,用户根据自己的需求,选择悔棋。
(5)更改密码:用户可以根据自己的需求更改自己的密码。
(6)管理普通用户:可以对普通用户进行添加和删除。
3.1.3 系统用例图:
2.1 五子棋系统设计思路
五子棋系统基本设计思路是把系统按照实现模块进行分解,利用java进行编程。
2.2 经济可行性分析
主要是对项目的经济效益进行评价,本系统开发费用对于学员在经济上是可以接受的,并且本系统实施后可以让用户很好的对五子棋进行更加深入的研究,有助于开发用户智力。
2.3技术上的可行性
技术上的可行性分析主要技术条件是否顺利完成开发工作,硬、软件是否满足开发者的需要等。该系统采用的简单的二层结构,数据库选用MySQL,它相对于其他的数据库来说,安装简单,灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,棋硬件平台完全能满足此系统的需求。
3.1 用户需求分析
根据老师提出的要求,我们把系统的用户分为两类:普通用户、系统管理员用户,下面是我们对两种用户的需求进行的分析:
3.1.1 普通用户主要需要:
根据分析,普通用户具有的功能:
(1)用户登录:用户根据自己的密码登录本系统。
(2)棋局回放:用户根据自己的需求回放自己以前下过的棋局。
(3)玩五子棋:用户在点击playgame后会进入游戏界面玩游戏。
关键词:人工智能; 计算人机对弈;五子棋;JSP

五子棋游戏总体设计与实现

五子棋游戏总体设计与实现4、系统总体设计与实现4、1 总体设计分析总体设计就是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求分析中提出的逻辑模型,科学合理地进行物理模型的设计。

这个阶段的主要目标就是将反映用户信息需求的逻辑方案转换成物理方案,并为下一阶段提供必要的技术资料。

4、1、1 总体设计原则(1)整体性:软件就是作为统一整体而存在的。

因此,在总体设计中要从整个软件的角度进行考虑。

(2)灵活性:为保持软件长久的生命力,要求该手机游戏软件具有很强的环境适应性。

为此,游戏软件应具有较好的开放性与结构的可变性。

(3)可靠性:可靠性就是指软件抵御外界干扰的能力及受外界干扰时的恢复能力。

(4)经济性:经济性就是指在满足游戏软件需求的前提下,尽可能地减小游戏软件的开销。

4、1、2 软件模块总体设计软件中各模块之间的关系通常利用层次图来表示。

它就是一种一系列多层次的用树形结构的矩形框描绘数据的层次结构框图。

一个单独的矩形框作为树形结构的顶层,各个数据的子集由下面的各层矩形框代表,最底层的各个矩形框代表组成这个数据的实际数据元素(不能再分割的元素),它代表完整的数据结构。

这模式非常适合于需求分析阶段的需要,层次方框图对数据结构描绘随着结构精细化也越来越详细。

反复细化沿着图中每条路径,从对顶层信息的分类开始,直到确定了数据结构的全部细节为止。

图4-1 游戏功能结构本研究中将游戏软件分为三大模块,如图4-1所示,包括:游戏选项、游戏设置与帮助。

按照在调研中搜集的资料对每个模块的功能进行编排制作。

依据上述功能的分析,本研究中,将游戏软件在三大模块的基础上又对每一大模块又分为几个子模块:游戏选项包括六个模块:开始游戏、重新游戏、悔棋、认输、背景音乐与退出游戏。

游戏设置包括三个模块:先后手设置、棋盘底纹颜色设置与棋盘大小设置。

帮助包括两个模块:游戏帮助与关于。

4、2 游戏设计4、2、1 游戏前的准备本游戏在开发之前需要做一些前期准备工作,尤其就是对于精通五子棋游戏的Java 游戏开发者来说。

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

(此文档为word格式,下载后您可任意编辑修改!)南京理工大学毕业设计说明书(论文)作者: 李国防准考证号:教学点: 南京信息职业技术学院专业: 电子工程专业题目: 五子棋对弈系统设计指导者:(姓名) (专业技术职务)评阅者:(姓名) (专业技术职务)2012年 05 月毕业设计说明书(论文)中文摘要毕业设计说明书(论文)外文摘要目次1引言 (1)2五子棋概述 (2)2.1五子棋背景及规则 (2)2.2开发工具下图形界面函数的介绍 (2)3设计思想 (4)3.1总体模版的设计 (4)3.2五子棋程序框架总图 (4)4模块介绍 (5)4.1初始化模块 (5)4.2接收处理信息模块 (8)4.3走棋控制模块 (9)5数据测试 (15)6 对人工智能对弈模式的设想 (17)6.1棋型的定义 (17)6.2棋型价值的定义及计算 (19)结论 (21)致谢 (22)参考文献 (23)附录(源程序) (24)1 引言随着人工智能的发展,越来越多的软件游戏应运而生,伴随着其庞大功能的同时,给出了各种越来越多的规则限制,更多的局限于游戏的竞技能力,逐步忽略了其原始为大众所追捧的趣味性,简单性。

因此,富有各种规则的棋类游戏渐渐淡出,而让我们迷恋追捧的却是那些简简单单,无太多章法,却趣味十足的软件游戏,如:“愤怒地小鸟”、“汤姆猫”等。

而本文则摆脱了棋类游戏的各种附带限制,将传统的五子棋游戏,通过DOXBOX系统给大家展示,将规则交给玩家,可塑性强。

与此同时,本文尽管基于TC工具来实现,但却别开生面,遗弃了复杂模糊的字符界面,完全体现了图形库函数的应用,呈现了简洁、大方的图形界面。

在论文的进展过程中,首先遇到的最大的难题就是对于图形库函数的认知不够全面,一些细致的东西,没抓到点的要求,从而导致程序一次次的编译失败。

在经过多次研究,比对和尝试后,最终才得以成功。

其次,因在win7下无法实现win-tc的全屏显示,多次失败后选择更换XP系统来完成,最后论文的书写过程中,因为全屏后无法剪切图片,而导致无法顺利完成论文,后经查询,确定用DOXBOX来实现,才得以成功完成。

本设计将程序分为3个主要模块,针对每一模块为实现其预期功能,而分开去构思研究,确定其在整个程序中的位置,最后完善。

另外,在实现本文设计内容之余,还展示了个人对人工智能实现人机对战的构想。

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

发展于日本,流行于欧美。

容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富有哲理,有助于修身养性。

2.1五子棋的背景及规则五子棋是起源于中国古代的传统黑白棋种之一。

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

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

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

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

五子棋的规则如下:棋盘:采用同围棋盘一样的15 路或19 路线的棋盘,为了实现传统的五子棋棋盘,本系统将采用19路线的棋盘。

下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子。

无子的交叉点又被称为空点。

输赢判断:黑、白双方有一方的5个棋子在横、竖或斜方向上连接成一线即为该方赢。

2.2开发工具下图形界面函数的介绍应用Turbo C工具中的库函数graphics.h图形界面的画法,可以实现各种基本图形的绘制,比如说:圆、椭圆、方框、线、点、文本框等,本文主要介绍设计中会用到的一些图形界面函数的应用方法。

2.2.1画线函数这类函数提供了从一个点到另一个点用设定的颜色画一条直线的功能,起始点的设定方法不同,因而有下面不同的画线函数。

1)两点之间画线函数。

2)void far line(int x0,int y0,int x1,int y1);从(x0,y0)点到(x1,y1)点画一直线。

3)从现行画笔位置到某点画线函数。

void far lineto(int x,int y);将从现行画笔位置到(x,y)点画一直线。

4)从现行画笔位置到一增量位置画线函数void far linerel(int dx,int dy);2.2.2画(椭)圆函数在画图的函数中,有关于角的概念。

在Turbo C 中是这样规定的:屏的x 轴方向为0 度,当半径从此处逆时针方向旋转时,则依次是90 度、180 度、270 度,当360 度时,则和x轴正向重合,即旋转了一周。

1)画椭圆函数2)void ellipse(int x,int y,int stangle,int endangel,int xradius,int yradius);该函数将以(x,y)为中心,以xradius 和yradius 为x 轴和y 轴半径,从起始角stangle开始到endangle 角结束,画一椭圆线。

当stangle=0,endangle=360 时,则画出的是一个完整的椭圆,否则画出的将是椭圆弧。

当然,满足一定条件的椭圆也就是圆,应用椭圆的画法可以实现棋子的画法。

3)画圆函数4)void far circle(int x,int y,int radius);5)该函数将以(x,y)为圆心,radius 为半径画个圆。

2.2.3颜色设置函数象素的显示颜色,或者说画线、填充面的颜色既可采用缺省值,也可用一些函数来设置。

与文本方式一样,图形方式下,象素也有前景色和背景色。

按照CGA、EGA、VGA 图形适配器的硬件结构,颜色可以通过对其内部相应的寄存器进行编程来改变。

1)前景色设置函数2)void far setcolor(int color);3)该函数将使得前景以所选color 颜色进行显示,对CGA,当为中分辨模式只能选0,1,2,3。

4)选择背景颜色的函数5) void far setbkcolor(int color)6)该函数将使得背景色按所选16 种中的一种color 颜色进行显示7)本文则根据传统五子棋的基本下法,运用所学的库函数图形界面的画法,设计了一篇简单的五子棋对弈系统,界面简洁美观,可塑性强且趣味性十足。

3 设计思想传统的五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为19x19,棋子一般放置棋盘线交叉点上。

两人对局,各执一色,轮流下子,先将横、竖或斜线上5个同色棋子连成不间断的一排着为胜。

而本文设计通过程控,实现2人对弈的五子棋界面。

主要通过库函数的应用画制棋盘棋子,函数定义及判定循环方式来决定棋子是否可下,移动更新游标位置,同时根据下子后棋型扫描,判断是否赢棋,具体实现构思如下:3.1总体的模板设计按照设计思路,将整个程序根分为3个模块,即初始化模块、接受处理信息模块以及走棋控制模块,具体如图3-1所示。

图3-1总体模块设计图3.2五子棋程序框架总图本设计重在五子棋双人对战程序的编译实现,根据3.1总体模板的构思,初步涉论,提出各模块组合顺序、涉及具体内容,绘出本程序所需的总体流程方向及全局构架,见图3.2;玩游戏判断落子键的有效性更新数组与棋盘显示判断是否走成五子相连图3-2五子棋程序框架总图根据此框架流程图,逐次研究各模块为实现其对应的功能,所要采用的方法,每个模块涉及的思路以及编写技巧,将于下章详细介绍。

4 模块介绍4.1初始化模块游戏开始,首先显示的是棋盘界面,及一些操作键等提示信息的定义说明,简单的来讲就是一幅未下子的空界面,另外,一次游戏结束后的开局界面,也是在考虑初始化的过程中必然要研究的,总结分为以下3个方向:4.1.1画棋盘棋盘采用19*19的矩形棋盘,即应用19*19的二位数组fivemap[19][19],用来保存当前棋盘的落子资料组,其中对每个成员来说,0表示无子,1表示落1号玩家棋子,2表示落2号玩家棋子。

程序引用库函数中的线条画法,定义函数void drawmap(),定义颜色为4号红色,定义四角点坐标为(92,12)、(92,444)、(92,12)、(524,12)。

定义线与线区间间隔为24。

根据TC库函数线的画法,取棋盘的四角点坐标如上,根据两点之间直线的画法,void far line(int x0,int y0,int x1,int y1);定义线与线之间的距离为24,采用示例中的循环方式,画出棋盘。

int x0,int y0表示初始点的坐标,int x1,int y1为末点的坐标。

程序示例如下:void drawmap(){int i;setcolor(4);for(i=0;i<19;i++){line(92+24*i,12,92+24*i,444);}}4.1.2显示提示说明信息主要用来显示按键提示说明以及提示,显示字体,以及背景颜色,通过应用TC库函数settextstyle定义文字类型/大小,库函数settextstyle的功能是为图形输出设置当前的文本属性,主要用法为: void far settextstyle (int font, int direction, char size);其中font 为字体:DEFAULT_FONT,TRIPLEX_FONT, SMALL_FONT, SANSSERIF_FONT, GOTHIC_FONT,也可以用0 ~ 4代替。

direction 为字符的排列方向:横向和竖向,0为横向排列,1为竖向排列。

size 为字体大小:可用interger做参数。

文中分别为:settextstyle(0,HORIZ_DIR,1);settextstyle(0,HORIZ_DIR,5);文本输出位置在下列语句中指出,其中(0,100)、(0,150)。

定义了说明语句的输出坐标,“”内容为显示内容。

示例如下:outtextxy(0,100,"a : LEFT");outtextxy(0,150,"d : RIGHT");outtextxy(0,200,"w : UP");outtextxy(0,250,"s : DOWN");outtextxy(0,300,"Enter : DO");outtextxy(0,350,"Esc : Exit");4.1.3棋盘置空棋盘置空,也就是界面刷新,用于开始界面或重新开局,主要是通过主函数调用与界面有关的其它函数,例如背景颜色函数、棋盘绘制函数、文本说明函数等。

相关文档
最新文档