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

    中国象棋实验报告.docx

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

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

    中国象棋实验报告.docx

    1、中国象棋实验报告本科学生综合性实验报告课程名称:Java程序设计中国象棋项目成员 学号 班 级 B02班 项目名称 中国象棋 指导教师 开课学期 2013 至 2014 学年 第1 学期 完成时间 2013 年 12 月 25 日1.引言1.1开发背景中国象棋游戏流传至今已经有数千年的历史了,是一种古老的文化,它集文化、科学、艺术、竞技于一体,有利于开发人的智慧,锻炼人的思维,培养人的毅力,增强人的竞争意识。自从计算机发明,向各个领域发展,到成为我们现在每天工作和生活必不可少的一部分的这个过程中,电子游戏也逐步渗入我们每个人的娱乐活动中。在计算机已经普及的今天,对于可以用计算机进行程序编辑的人

    2、来说,开发属于自己的游戏,已经不再是梦想,中国象棋历史悠久不仅源远流长,而且基础广泛,作为一项智力运动更成为我们游戏开发的首选对象。中国象棋是一项智力游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞技,人可以与计算机进行对弈。控制计算机的是人类,而人工智能是综合性很强的一门边缘学科,它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。因此,对游戏开发过程中的人工智能技术的研究自然也就成了业界的一个热门研究方向。1.2国内外象棋发展状况中国象棋游戏流传至今已经有数千年的历史了,是一种古老的文化,它集文化、科学、艺术、竞技于一体,有利于开发人的智慧,锻炼人的思维,培养人

    3、的毅力,增强人的竞争意识。自从计算机发明,向各个领域发展,到成为我们现在每天工作和生活必不可少的一部分的这个过程中,电子游戏也逐步渗入我们每个人的娱乐活动中。在计算机已经普及的今天,对于可以用计算机进行程序编辑的人来说,开发属于自己的游戏,已经不再是梦想,中国象棋历史悠久不仅源远流长,而且基础广泛,作为一项智力运动更成为我们游戏开发的首选对象。中国象棋是一项智力游戏,以往都是人和人下棋,现在有了计算机我们可以和计算机竞技,人可以与计算机进行对弈。控制计算机的是人类,而人工智能是综合性很强的一门边缘学科,它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。因此,对游戏开发过程中

    4、的人工智能技术的研究自然也就成了业界的一个热门研究方向。 1.3开发目标在计算机技术日益发展的今天,为了让信息技术能够更好的贴近生活,并且在此基础上传承国学精髓,为此设计一个简单易懂的人人对弈的中国象棋小游戏,同时也为了巩固自身对java的运用。1.4开发环境本游戏程序的设计是在Windows 7 RTM 7600.16385(X86)中文旗舰版操作系统环境下,使用MyEclipse 6.0.1中文版开发成功的。硬件环境:英特尔酷睿i5双核处理器 430M 2GB DDR3内存开发软件: Eclipse 6.0运行平台:Windows 72.设计思路2.1设计步骤步骤一:窗体界面的设计;主窗体

    5、利用的是swing组件JFrame,在组件JFrame上设计可视化界面。步骤二:棋盘的绘制;中国象棋的棋盘是一个由9*10的横纵交错的线条组成的,线条与线条之间的距离皆相等,而且横向线条上5线和下5线的交界处是“楚河汉界”,对此,要计算好线条与线条之间的距离以及线条起点和终点的坐标,利用线条绘制函数来绘制棋盘。步骤三:象棋棋子的加载;中国象棋中一共包含32个棋子,蓝子有26个,黑子有16个,其中兵(卒)有10个,炮4个,车4个,马4个,相(象)4个,士(仕)4个,将(帅)2个,于是我们需要设计32个象棋棋子对象,蓝方16个,黑方16个,在象棋棋子类里编写棋子的操作。步骤四:界面布局;JFram

    6、e中各个位置都有其位置坐标,象棋棋子的位置由坐标的位置确定,由于棋子走动的位置只能限制在棋盘的线与线之间的交点上,因此我们得到一个9*10的矩阵,棋子只能在这矩阵的位置上移动。步骤五:设定棋子走棋规则;在中国象棋中,每一个棋子都有其特定的行走规则,比如马走“日”,相走“田”等,兵只能过河之后才能左右移动,所以对于棋子的移动位置需要利用矩阵的思想来限定。步骤六:添加鼠标点击棋子事件;在当前的中国象棋游戏中,是通过点击移动鼠标的方法来移动象棋的,当鼠标点击到棋子时,鼠标下一个位置就是该象棋棋子移动的位置,如果位置与上述规则相左时,象棋需要重新选定。步骤七:吃棋规则的给定;在中国象棋里,任何棋子都有

    7、吃棋的资格,但是自己的棋子不能吃自己的棋子,棋子的吃棋方式是按照走棋的方式来给定的,当前位置的棋子能走动到的位置即为该棋子当前能吃的位置,没有棋子级别高低之分。步骤八:主函数调用;最后编写主函数调用以上方法。2.2设计流程图图1:游戏设计流程图3.设计技术3.1 io技术该中国象棋小游戏运用信息的输入和输出技术,其主要的实现代码是打印函数,以及文件的加载函数,这两个函数所在的包是java.io.File以及java.io.IOException内的。System.out.println()打印函数,在代码中的主要是输出鼠标点击的位置以及鼠标点击的棋子,并确定鼠标点击位置的棋子能否走棋或者能否吃

    8、棋。ImageIO.read(new File(“D:image24.jpg”)图片导入函数,在游戏代码中的目的是加载棋子。3.2多线程3.3 swing该游戏的swing技术引用在游戏的可视化界面上,主界面继承的是JFrame父类,在JFrame界面上进行游戏操作。在JFrame上绘制棋盘;先创建绘图对象,然后再在绘图对象上运用drawLine画线函数,给定起点坐标(x1,y1)和终点坐标(x2,y2),以此绘制出棋盘。在JFrame上添加棋子;先定义一个棋子类ChessMan,然后再定义32个ChessMan类的对象,同时给每一个棋子对象再重载BufferedImage图片导入对象,利用I

    9、mageIO.read(new File(“D:image21.jpg”)函数依次导入32个棋子。4.设计规则4.1走棋规则帅(将)每一着只许走一步,前进、后退、横走都可以,但不能走出“九宫”。将和帅不准在同一直线上直接对面,如一方已先占据,另一方必须回避。 士每一着只许沿“九宫”斜线走一步,可进可退。 相(象)不能越过“河界”,每一着斜走两步,可进可退,即俗称“相(象)走田字”。当田字中心有别的棋子时,俗称“塞(相)象眼”,则不许走过去。 马每着走一直(或一横)一斜,可进可退,即俗称“马走日字”。如果在要去的方向有别的棋子挡住。俗称“蹩马腿”,则不许走过去。 车每一着可以直进、直退、横走,不

    10、限步数。 炮在不吃子的时候,走法同车一样。 兵(卒)在没有过“河界”前,每着只许向前直走一步;过“河界”后,每着可向前直走或横走一步,但不能后退。4.2吃棋规则所有棋子都只能吃对方的棋子,不能吃己方的棋子。帅可以吃九宫格里对方的棋子,每一着只能走一步。士可沿着九宫斜线吃棋。相、马、兵、车可以吃到其能走到的位置。炮吃棋需要隔一子,而且只能隔一子。5.代码实现为了实现中国象棋的对弈功能,有以下几个类:图2:代码类下拉列表Chess主类:包括主窗体的继承,利用swing组件JFrame实现可视化界面,绘制棋盘,初始化每个棋子的初始位置,定义棋子的走棋规则以及棋子的吃棋规则,定义主函数调用方法。Che

    11、ssMan类:这是象棋棋子类,用来定义每一个棋子,也就是说每一个棋子都是ChessMan类的对象,每一个对象都包含着特定的属性,有坐标属性,有名称属性。StaticValue类:将棋子重载为BufferedImage类的对象,定义图片载入方法,然后利用图片导入函数从D盘的image中导入棋子图片。6.程序测试6.1步骤一:点击运行图3:中国象棋初始界面如上图所示,程序点击运行时棋子按照初始化时的坐标以此排放在各自的位置,等待鼠标点击和移动。6.2步骤二:1)移动兵(卒):在河内只能前进图4:兵在河内的移动规则2)兵(卒)过河移动图5:兵过河的移动规则3)炮的吃棋:炮要隔一子才能吃子图6:炮的吃

    12、棋规则4)马的移动:马在未蹩脚时可以走“日”图7:马的走棋规则5)相的移动:相在未塞象眼时可以走“田”图8:相的走棋规则6)士的移动:只能在九宫格里对角走,而且只能跨一格图9:士的走棋规则7)将的移动:只能在九宫格里上下左右移动且一步图10:将的走棋规则8)车的移动:横纵方向跨越任意方格图11:车的走棋规则7.总结与提升此次中国象棋java小游戏的编写一方面巩固了我对java这门课程的了解与应用,另一方面更让我感到自身知识的匮乏,在此之前关于象棋软件有很多的想法,想实现很多功能,让它更与现实相吻合,比如编写算法,控制象棋的步数,实现人机对弈,还有联网对弈,但是在真正落实的时候却是举步维艰,寸步

    13、难行,很多技术都不懂,即使有资料也是无从下手,所以关于这个游戏的话还是漏洞百出,不够完善,关于游戏的缺陷,主要体现在以下几个方面:1.没有控制玩家行走的步数,实际情况是每一种颜色的棋子只能走一步,等到对手走好之后才能走下一步,但是在我的这个程序中,某个玩家可以一直走,直至无路可走。2.没有检测将帅碰头时的走法,象棋对弈时,如果将和帅的连线上没有子的话,上一步的将或帅是不能让它们碰头的,一旦碰头,需要重走。3.一般情况下,是允许悔棋的,但是在我的这个游戏中,棋子一旦落下,则无法回头,也就是说,棋子落稳之后,不能悔棋,这就没有考虑到现实的情况,每一位玩家都会有一不小心走错的情况,所以于此应当设计可以悔棋的情况。对于以上问题,不是在编写时没有考虑到,而是自身能力以及客观原因所限制,所以在今后的设计中将尽量完善,并且在此基础上设计联网技术和人机对弈算法,以此来满足现实的要求。


    注意事项

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

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




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

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

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


    收起
    展开