基于JAVA语言开发的黑白祺游戏得到的启发

来源 :科学与财富 | 被引量 : 0次 | 上传用户:liongliong528
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘  要:黑白棋游戏软件是通过对实际黑白棋游戏规则的分析和理解,利用代码进行制作出的可供黑白棋对战的游戏软件。本文基于JAVA语言技术,通过研究计算机黑白棋游戏程序的运行流程,揭示黑白棋作为一个认知科学研究领域的日益增长的重要性,概括了所用到的人工智能技术。利用简单的黑白棋的开发过程对于人工智能的促进及影响。
  关键词:信息技术;JAVA语言;黑白棋;人工智能
  1 JAVA语言概述
  JAVA语言是一种编程语言,最初是用来开发一些电器装置的程序,由于它的兴起引起了众多企业的关注,JAVA语言的发展又继续向网络编程方向拓展。而今,用JAVA编程已经成为技术员编程的一种新时尚,简单易学是该语言最基本的特点。由于JAVA技术具有卓越的通用性、高效性、平台移植性和安全性,被广泛应用于个人PC、移动电话和互联网。在云计算和移动互联网的产业环境下,JAVA更具备了显著优势和广阔前景。
  2 人工智能
  人工智能是一门具有革命性意义的一门科学,它的主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。而目前能够用来研究人工智能的主要物质手段以及能够实现人工智能技术的机器就是计算机。计算机系统于1997年进行了著名的“人机大战”,结果“深蓝”总比分获胜,比赛结果给人们留下了深深的思考,从意义上讲,实现了人类智力的计算机上的部分模拟。
  3 JAVA语言开发黑白棋游戏的优点
  目前基于JAVA语言开发的软件很广泛,选择使用JAVA语言的一个重要原因是因为JAVA语言实现的程序可以很好地移植到其他計算机上,并能很好地运行。其中 “黑白棋游戏”就是JAVA初学者典型的开发程序,下面就以该程序来举例说明JAVA语言对人工智能技术的影响。“黑白棋游戏”的设计与实现运用到了很多JAVA方面的知识,包括进行图形用户界面设计所需的JAVA GUI类、事件驱动程序设计、异常处理、多线程编程、网络通信等。
  图1 黑白棋游戏棋盘
  4 基于JAVA语言开发的黑白棋游戏系统的设计与实现
  4.1 战术分析
  黑白棋系统的设计与实现的工程中主要涉及两类用户:服务器端用户和客户端用户,本文将对客户端进行功能需求分析。根据黑白棋游戏规则,首先要制定开发游戏程序的战术分析。一般说来,下棋过程中,你必须尽量削减对手的行动力,同时增加自己的行动力,这种策略我们称为行动力原则(或行动力战术)。当一方达到或接近这个目标时,我们就称该棋手控制了棋局。另外这个战术的目的是迫使对方下坏棋,如果对方虽然可选位置很少,但每一步总有好棋,那战术目的就没有达成,你的目的就是让对方无好棋可下。又因为黑白棋规则规定只能在对方棋子相邻的空位下棋,这就可以推出另一个原则。对方棋子边上的空位越多,你下棋的选择也就越多,相反,如果你棋子边上的空位越少,对方可下的位置也就越少。根据需求,我们一般设计的流程图如图2。
  基于流程图,游戏编程基本要包括以下几个模块:(1)主菜单模块:用于游戏前的主页面,包括初始化背景,游戏标题和基本菜单;(2)初始化游戏界面模块:用于初始化棋盘、初始化各种在后面用到的结构体、数组变量等;(3)人机对战模块:该模块是游戏实现人工智能的主要部分,其中包括计算机对棋盘的搜索、对当前局面的估值、并做出正确的反应。这一模块是黑白棋游戏程序的核心。
  4.2 基于JAVA的黑白棋游戏的设计与实现的棋盘面板的设计思路
  棋盘面板主要处理的是落子、棋子的绘制以及相应棋盘信息的处理。首先进行棋盘绘制,将调用paint()。棋局开始后,游戏玩家即可执棋落子,当轮到自己落子时,监听鼠标点击,判断鼠标点击的位置是否正确,当判断可以落子后,绘制棋子。
  判断是棋子是否可落子的方法为:
  Boolean MC_onedirec(Point liu,int a, int e,int q)
  以上方法仅根据某一方向判断是否可落子,程序实现是要判断8个方向。通过该方式,检测鼠标点击位置的八个方向上是否存在允许落子的情况。当判断允许时,则调用draw_self()绘制棋子并反转相应的棋子。然后在棋盘上绘制相应的棋子。
  根据落子信息绘制棋子方法:
  Public void draw_stepofopponent(int i,int j,int colo)
  每次落子都伴随着胜负的检查。判断游戏是否结束。方法为:public void getsuccess()
  如果判断没有分出胜负,则游戏继续。若胜负已分,则显示结果。
  以上就是对基于JAVA的黑白棋游戏的设计与实现中主要的设计细节的详细描述。
  4.3 JAVA黑白棋的算法
  估价函数:黑白棋中最重要的是电脑对局势的判断,如何写好这样的估价函数是黑白棋人工智能程序的重点。所谓的“金角银边草肚皮”,说明了子的位置的重要性是不同的。最最要的点是四个角,而和角相邻的三个点,则是不应该占领的,其次是四条边,占领后的好处也很多。当然了除了子的位置,自由度也比较重要。你的目标是限制对手的自由度(即棋步数量),同时增加自己的自由度。
  搜索算法:如果只是凭估价函数来走棋,是很难赢的,好的AI必须能够向前看几步,看得越深,棋力就越强。这就涉及到博弈树搜索了,最经典是极大极小算法。Minimax算法常用于棋类等由两方较量的游戏和程序。该算法是一个零总和算法,即一方要在可选的选项中选择将其优势最大化的选择,另一方则选择令对手优势最小化的方法。而开始的时候总和为0。
  5 黑白棋游戏程序开发对人工智能的启发以及现实技术问题
  利用JAVA语言开发的的黑白棋游戏程序只是一个简单的开始,却体现了人工智能领域的一个研究热点,随着人工智能的广泛应用,无论是采取怎么样的算法,计算机的运算速度始终都是一个不可回避的问题。那么提高算法的精准度,避免无必要的搜索是计算机解决类似“下棋”技术需要解决的问题。
  参考文献
  [1]耿祥义,张跃平.JAVA2实用教程(第4版)[M].北京:清华大学出版社.
  [2]张跃平,耿祥义.《Java 2实用教程(第4版)实验指导与习题解答[M].北京:清华大学出版社.
  [3]高全泉.Java语言特点及其对人工智能技术的影响和促进[EB/OL]http://www.doc
  88.com/p-28343811407.html
其他文献
本文提出了一种支持同时多线程的动态分发超长指令字(VLIW)数字信号处理器(DSP)架构.该DSP架构上可以同时运行多个线程,功能单元可以执行来自多个线程的指令,有效地提高DSP的指令吞
为高效实现H.264多模式帧内预测,解决其计算复杂度高造成的计算压力,本文根据H.264帧内预测算法的计算密集与数据并行的特征,基于流处理执行模型提出适用于Imagine流体系结构的分
摘 要:随着我国改革开放和市场经济体制改革的深入发展,体制改革已经渗透到了各行各业,出版企业也进行了体制改革。为了能在激烈的市场竞争中脱颖而出,增加盈利,出版企业有必要加强企业内部的财务管理,提高财务管理水平,以实现出版企业的可持续发展,获取更多的经济效益。本文首先分析出版企业转企改制的意义,再阐述转企改制背景下出版企业的财务管理状况,最后提出改进出版企业财务管理的具体方法。  关键词:转企改制;
本文针对指数阻尼正弦信号模型提出了一种新的基于子空间和结构总体最小范数的阶选择算法.该方法利用信号子空间移不变性以及阶与信号分量数匹配时总体误差最小原理建立模型
针对一类异步多传感器采样系统,在对量测方程形式统一描述的基础上,给出以采样量测顺序为基准的序贯滤波算法的基本思想;为了避免现有右同步提升技术所可能引发的系统非因果
稀疏性字典学习是指对在某个已知的基字典上具有稀疏表示的字典的学习.论文利用块松弛思想,将稀疏性字典学习问题转化为字典和系数的分别优化问题,利用代理函数优化方法分别
微课程,是网络、信息、通讯技术和新型媒体发展的产物,通过短小精悍的流媒体形式展示教学内容。笔者从微课的优势入手,提出在大学英语教学中使用微课的必要性,并结合高校英语
两步策略已成为欠定盲信号分离的基本方法,混叠矩阵的估计是源恢复的先决条件.本文针对非完全稀疏性情况,提出一个两步的盲提取方法.该方法先利用信号的单源区间样本,估计部分源的
针对整数编码的冗余性,提出了求解图着色问题的一种新的编码方式.采用有序划分编码问题的解,编码后的个体具有与问题的潜在解一一对应的特点.与整数编码相比,新的编码避免了
摘 要:介绍引进的PVC聚合生产工艺、设备及DCS设计及运行情况,采用国产LF110型聚合釜既可以节省投资又可以达到理想效果,采用DCS集散控制既减少了劳动强度又保证了树脂的质量。  关键词:国产LF110型聚合釜;PVC聚合;工艺及设备简介  前言  我国聚氯乙烯行业经过40多年的发展,经过很多技术人员的努力,不断引进、消化、吸收国外先进的技术及经验,设备、工艺越来越成熟,为民族工业的发展做出了