欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    五子棋对弈系统设计Word下载.docx

    • 资源ID:6664178       资源大小:223.42KB        全文页数:34页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    五子棋对弈系统设计Word下载.docx

    1、intelligence,with its wide range ofapplicationsin the electronics field,and graduallycome to the fore,oneof themanyhotresearch projects, while thegame hasbecomemorerepresentativeinthe directionartificial intelligence research. Taking the Gobangfor example, using the language knowledge ofC, explorere

    2、asoning techniquesforgame, searchmethodsand decision-makingplanning.Designtoolsbased onTurbo Cbackgammonchesssystem program, throughDOXBOXsystem interfacebetweenpeople.This is thedrawingrely onTCprogramming tools, the use oflibrary functions,simplelanguage programwill doublebackgammon chessfunctions

    3、to achieve thesystem environment. Thegameinterfaceboarddisplay personalized description ofthe operation button,the textafterwinning or losinginformationandpersonalizedcursor movementand otherfunctions.Thedesign processis easier to understandhas strongplasticity.Designed in this paperundersystem, gre

    4、atlyreducing themoderncompetitivecomponentsto increase itsinteresting,the graphical interfaceisclear and easy to operate.Keywords Turbo C game Gobang algorithm目 次1引言12五子棋概述22.1五子棋背景及规则22.2开发工具下图形界面函数的介绍23设计思想43.1总体模版的设计43.2五子棋程序框架总图44模块介绍54.1初始化模块54.2接收处理信息模块84.3走棋控制模块95数据测试156 对人工智能对弈模式的设想176.1棋型的定

    5、义176.2棋型价值的定义及计算19结论21致谢22参考文献23附录(源程序)241 引言随着人工智能的发展,越来越多的软件游戏应运而生,伴随着其庞大功能的同时,给出了各种越来越多的规则限制,更多的局限于游戏的竞技能力,逐步忽略了其原始为大众所追捧的趣味性,简单性。因此,富有各种规则的棋类游戏渐渐淡出,而让我们迷恋追捧的却是那些简简单单,无太多章法,却趣味十足的软件游戏,如:“愤怒地小鸟”、“汤姆猫”等。而本文则摆脱了棋类游戏的各种附带限制,将传统的五子棋游戏,通过DOXBOX系统给大家展示,将规则交给玩家,可塑性强。与此同时,本文尽管基于TC工具来实现,但却别开生面,遗弃了复杂模糊的字符界面

    6、,完全体现了图形库函数的应用,呈现了简洁、大方的图形界面。在论文的进展过程中,首先遇到的最大的难题就是对于图形库函数的认知不够全面,一些细致的东西,没抓到点的要求,从而导致程序一次次的编译失败。在经过多次研究,比对和尝试后,最终才得以成功。其次,因在win7下无法实现win-tc的全屏显示,多次失败后选择更换XP系统来完成,最后论文的书写过程中,因为全屏后无法剪切图片,而导致无法顺利完成论文,后经查询,确定用DOXBOX来实现,才得以成功完成。 本设计将程序分为3个主要模块,针对每一模块为实现其预期功能,而分开去构思研究,确定其在整个程序中的位置,最后完善。另外,在实现本文设计内容之余,还展示

    7、了个人对人工智能实现人机对战的构想。2 五子棋的概述五子棋是一种两人对弈的纯决策谋略型棋类游戏,是起源于中国古代的传统黑白棋种类之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富有哲理,有助于修身养性。2.1五子棋的背景及规则五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养

    8、性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。五子棋的规则如下:棋盘:采用同围棋盘一样的15 路或19 路线的棋盘,为了实现传统的五子棋棋盘,本系统将采用19路线的棋盘。下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子。无子的交叉点又被称为空点。输赢判断:黑、白双方有一方的5个棋子在横、竖或斜方向上连接成一线即为该方赢。2.2开发工具下图

    9、形界面函数的介绍应用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);将从现

    10、行画笔位置到(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 和yra

    11、dius 为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

    12、、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 设计思想 传统的五子棋的棋具与围棋

    13、相同,棋子分为黑白两色,棋盘为19x19,棋子一般放置棋盘线交叉点上。两人对局,各执一色,轮流下子,先将横、竖或斜线上5个同色棋子连成不间断的一排着为胜。而本文设计通过程控,实现2人对弈的五子棋界面。主要通过库函数的应用画制棋盘棋子,函数定义及判定循环方式来决定棋子是否可下,移动更新游标位置,同时根据下子后棋型扫描,判断是否赢棋,具体实现构思如下:3.1总体的模板设计 按照设计思路,将整个程序根分为3个模块,即初始化模块、接受处理信息模块以及走棋控制模块,具体如图3-1所示。图3-1总体模块设计图3.2五子棋程序框架总图本设计重在五子棋双人对战程序的编译实现,根据3.1总体模板的构思,初步涉论

    14、,提出各模块组合顺序、涉及具体内容,绘出本程序所需的总体流程方向及全局构架,见图3.2;图3-2五子棋程序框架总图 根据此框架流程图,逐次研究各模块为实现其对应的功能,所要采用的方法,每个模块涉及的思路以及编写技巧,将于下章详细介绍。4 模块介绍4.1初始化模块游戏开始,首先显示的是棋盘界面,及一些操作键等提示信息的定义说明,简单的来讲就是一幅未下子的空界面,另外,一次游戏结束后的开局界面,也是在考虑初始化的过程中必然要研究的,总结分为以下3个方向:4.1.1画棋盘棋盘采用19*19的矩形棋盘,即应用19*19的二位数组fivemap1919,用来保存当前棋盘的落子资料组,其中对每个成员来说,

    15、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() i

    16、nt i; setcolor(4); for(i=0;i0) nx-; drawall(); break; case d if(nx ny-;s if(ny ny+;4.2.2功能键的定义说明 功能键主要是指功能说明键,也就是程序实现界面中的说明部分内容,即规定了,ESC按键退出、Enter键输入、WSAD移动游标。具体定义如下: (0,300)以及(0,350)定义了输入文本在界面中的显示位置。“”内容为界面文本显示内容。4.3走棋控制模块本设计是五子棋中2人对弈模式的一种设计,因参加游戏的二人分别持两种非同色棋子,必须满足落子点可下,即满足该点为交叉点以及该点尚未有子,在本设计中需经程序判

    17、断是否有子后方可下棋,若一方取胜,则进入从新开局或游戏结束的选择菜单,主要涉及下子与判断以及游标的移动。4.3.1下子与判断1)判断落子键的有效性 落子键按下后,要么赢棋,要么交换行棋方,对于交换行棋方,程序是通过函数“who=3-who”,定义空为0,玩家1为1,玩家2为2,若确定落子键后,下子成功交换行棋方,棋子颜色更换为当前行棋方棋子颜色。或者,落子后显示,当前行棋方获胜。drawall()实现玩家落子,winner=checkwin();玩家赢棋函数说明,若无赢棋则,当前玩家落子,交换行棋方。具体实现程序如下:if(fivemapnxny=NONE) fivemapnxny=who;

    18、who=3-who; winner=checkwin(); if(winner!=NONE) init(); who=PLAYER1; getch();流程图如图4-1所示。图4-1下子流程图2)更新数组与棋面显示 确定落子后,若无赢家则需交换行棋方,本文通过定义,由4.31.1可知,分别定义无子为0,一号玩家为1,二号玩家为2,通过函数“who=3-who;”来交换行棋方。直至一方胜出,输入显示说明信息。具体程序说明为:玩家赢棋棋面显示:if(winner=PLAYER1) else3)判断是否走成五子相连判断是否走成五子相连,是从四个方向上判断,本文分别从4个方向上定义,即水平方向,竖直方

    19、向,斜45角方向以及斜135角方向。对于水平方向则是通过j不变,i不断加1的形式,实现同色棋五子相连。竖直方向是通过i不变,j不断加1;45是通过i和j同时加1的形式,同理135角线是通过i减j加的形式实现的,具体如图4-2所示。图4-2落子后棋型判断算法流程图 在水平方向连续有5个同色棋子的情况为:for(i=0;15; for(j=0;jj+) if(fivemapij!=NONE & fivemapij=fivemapi+1j & fivemapij=fivemapi+2j & fivemapij=fivemapi+3j & fivemapij=fivemapi+4j) return fivemapij; 在垂直方向上,形成5个相连同色棋子的情况为: fivemapij=fivemapij+1 & fivemapij=fivemapij+2 & fivemapij=fivemapij+3 & fivemapij=fivemapij+4) 在45角在线形成五个相连同色棋子的情况为:for(j=0; fivemapij=fivemapi+1j+1 & fivemapij=fivemapi+2j+2 & fivemapij=fivemapi+3j+3 & fivemapij=fivemapi+4j+4) 在


    注意事项

    本文(五子棋对弈系统设计Word下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开