当前位置:首页>> >>


基于Java的中国象棋对弈系统.rar

收藏

资源目录
    文档预览:
    编号:20180913143532196    类型:共享资源    大小:1.87MB    格式:RAR    上传时间:2018-09-13
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    40
    金币
    关 键 词:
    基于 Java 中国象棋 对弈 系统
    资源描述:
    廊坊师范学院本科毕业论文11 绪论1.1 开发背景随着科学的发展,科技的进步,大家的娱乐项目都针对于电脑的无思想的游戏作为主要游戏对象,这些游戏往往以画面华丽或者追求盈利为主,玩家只能从游戏中得到暂时的新鲜感而缺少了对一些智力游戏的思考。青少年进行网络游戏容易沉迷其中不能自拔,本次设计的小游戏中国象棋正是对大家闲暇之时对脑力活动的运动,在得到快乐的同时开发玩家智力。中国象棋起源于中国,属于一种二人对抗游戏,在我国有着悠久的历史,它操作简单,趣味性强且对培养孩子兴趣发展和锻炼孩子逻辑思维能力,有着很重要的意义,既可以陶冶我们的情操,也开发了我们的智力,提高了人们的综合素质,又让中华文化得到传播。作为一种从古流传至今的游戏,中国象棋对我国有着特别的含义,在古代象棋被当做士大夫们的修身之艺。自古就有以棋会友,中国象棋不但对我们有养生的积极作用,还有助于我们认识新朋友和增进朋友情谊。象棋集文化、艺术、科学竞技于一身,丰富玩家文化生活,作为一种体育运动,它也有自身的发展意义。1.2 开发语言及平台本毕业设计根据中国象棋的基本游戏规则,用 Java 进行开发,制作出图形化的游戏界面进行游戏对弈。开发环境是 Eclipse,其本身附带标准插件集,包括了 Java 的开发工具( JDK) 。Java 名字由来很有趣:Java 是印尼的一个小岛,盛产咖啡,而程序员往往喜欢喝咖啡,因此取名为 Java 语言。本设计之所以使用 Java 语言进行开发而不用 C++等其他语言是因为Java 有其独特的优点所在。首先 Java 语言具有安全、跨平台、面向对象、适用于网络等很多优点,而且今年来随着科技发展,计算机操作系统越发多元化,不同工作使用不同操作系统,而 Java 的跨平台特点使它更加流行。作为计算机专业的我,使用 Java 进行编写程序能增加自己对 Java 的认识,廊坊师范学院本科毕业论文2增加自己这方面的专业知识水平,为踏入社会工作做好铺垫。2 游戏简介2.1 中国象棋简介中国象棋的棋盘是方形的,棋盘上有十条横线、九条竖线,中间空出一行空白,那是“楚河汉界” ,棋子可以通过。对局的人各自控制界限两边的黑红棋子,双方在两边离岸边有交叉线的地方共有 90 个交叉点,黑红棋子就摆在这些交叉点上。中国象棋共有 32 枚棋子,分为黑红两组,下棋的双方各用一组,双方棋子分别为一帅(将),两仕,两相,两马,两车,两炮,五兵。两人对局时,各自按照象棋的规定将双方棋子摆在指定位置,默认为红色方先走棋,然后轮流移动棋子,各种棋子走法规定不同,最终以把对方将死为胜,无法将死则判定为和棋。2.2 中国象棋走子规则帅(将)一次走一步,上下左右四个方位都可以走,但是不能走斜线而且不能走出“九宫” 。规定双方的帅和将不可以在同一直线上直接对面,如果已经有一方占据,则另一方必须回避。仕每次只允许在“九宫”内斜线走一步,不可以走直线,斜着方位上下左右皆可。相不能越过“河界” ,每次斜走两步,俗称“相走田”可进可退,需注意当斜线中间存在其他棋子时,则相不允许走过去。马每次走一直一斜,可进可退,即俗称“马走日字” 。如果在要去的方向有别的棋子挡住,则不许走过去。车每次可以直行直退,横走,不限步数。炮在不吃子的时候,走法同车一样。当吃子时,炮和被吃子中间需要存在一个棋子,俗称“炮翻山” 。兵在没有过“河界”前,每次只许向前直走一步;过“河界”后,每次可向前直走或向左右横行一步,但不能后退。2.3 中国象棋吃子规则在走棋时,如果己方棋子能够走到的位置存在对方棋子,就可以吃掉对方棋子而占领那个位置。当炮吃子时必须在中间隔着一个棋子,中间的廊坊师范学院本科毕业论文3棋子己方对方皆可。除帅(将)外其他棋子都可以被对方吃而不判输赢,吃子的一方必须立即把被吃掉的棋子从棋盘上拿走。廊坊师范学院本科毕业论文43 需求分析3.1 简要根据中国象棋游戏规则,制定出与其一样的玩法,实现单机版两人对弈。做出四个模块分别为:图形用户界面模块:做出对用户来游戏的主界面,单击图中棋子进行游戏操作。完成按钮的操作模块:实现新游戏即重新排列棋子;悔棋即通过获得SetVisible 属性值实现回到上一步操作;退出即先判断,如“是”就退出游戏。棋子的操作模块:玩家单击棋子进行闪烁,然后第二次单击也就是移动或者吃子的时候,先对玩家单击的位置来判断具体是什么棋子,然后再调用具体棋子的具体方法。如果是吃子情况帅(将)一方被吃掉后,该方就输了。棋子的移动规则模块:实现了每个棋子的移动、吃子方法。3.2 可行性研究分析了中国象棋的走棋规则,在规定范围内:从移动范围、移动方向和穿越障碍吃子几个方面重新描述行棋规则,基于 Java 技术和相应算法通过计算机模拟实现了中国象棋特殊的行棋规则算法,设计出了一种可行的方法,使每个棋子的行棋方法都严格遵循中国象棋本身的行棋规则,游戏的实战对弈得以实现.通过实验运行,利用鼠标监听来实现对象棋走法的操作,证明这种限定棋子行棋路线的方法是可行的。利用 Java 编程将日常生活中的中国象棋游戏改为可在电脑上进行操作的计算机游戏。3.3 主要功能和特点主要功能有新游戏,悔棋,退出以及信息提示。游戏方便简洁,可以记录游戏进行悔棋等操作。3.4 功能分析系统开始运行,直接显示游戏主界面以及各种功能按键。单击新游戏廊坊师范学院本科毕业论文5就可以开始游戏,方便简洁,一看就懂。新游戏:任何时候点击新游戏都可以重新开始一盘新的棋局悔棋:当走错棋的时候,可以悔棋。退出:点击后提示是否退出,选择“是”后就退出。信息提示:提示当前信息状态。3.5 面向群体广大的象棋爱好者,尤其适合初学者研究下棋技巧。3.6 界面制作出一个类似于真实游戏棋盘的游戏界面,按钮合理的布局在游戏棋盘上方,方便简洁。廊坊师范学院本科毕业论文64 总体设计中国象棋对弈系统的程序由文件 Chess.Java 实现。在 Chess.Java 中主要包括两个类:其中一个是被定义为 pubilc 类型的类,类名为 Chess,该类主要负责中国象棋对弈程序的执行;另一个类名为 ChessMainFrame,是程序的主框架类。程序中 Chess 类通过生成 ChessMainFrame 类的对象来执行程序。在 ChessMainFrame 类中主要包含四个模块:1) 生成图形用户界面模块2) 完成按钮的操作模块3) 棋子的操作模块4) 棋子的移动规则模块其中棋子的移动规则定义为内部类,名为 ChessRule。CheesRule 类中的方法用于定义各个棋子的移动规则和吃子规则。如图 4-1 所示:图 4-1 ChessMainFrame 的四个模块廊坊师范学院本科毕业论文75 详细设计5.1 图形用户界面模块图形用户界面是 ChessMainFrame 类中的基本模块,该模块的主要作用是:定义该类中所使用的变量和实例对象,然后通过构造函数初始化图形用户界面,负责添加组件和棋子,注册组件事件。图形用户界面主要是针对用户的来设计的,界面工具栏有 3 个按钮:新游戏、悔棋、退出,和一个用来提示用户信息的文档。然后下面就是用户用来操作的游戏界面,有棋盘和棋子。用户可以单击棋子来进行游戏操作。完成后的工具栏如图 2 所示:图 5-1 界面的工具栏主框架类里设计有玩家、棋盘、窗口、工具栏、重新开始、悔棋、退出、当前信息、保存当前操作、规则类、控制棋子闪烁和红黑棋子哪个先走棋等。然后里面创建一构造函数在其里面创建工具栏然后再把组件添加到工具栏,添加棋子标签、棋盘标签,注册按扭监听、棋子移动监听、窗体关闭监听。之后创建一个添加棋子的方法,把每个棋子按照图标在对应的位置依次添加上去。完成后的玩家操作游戏界面如图 5-2 所示:廊坊师范学院本科毕业论文8图 5-2 游戏棋盘界面下面是创建工具栏、游戏界面等的主要代码:ChessMainFrame(String Title){con = this.getContentPane();con.setLayout(null);rule = new ChessRule();Var = new Vector();//创建工具栏jmain = new JToolBar();廊坊师范学院本科毕业论文9text = new JLabel(“象棋对弈系统“);text.setToolTipText(“信息提示“);anew = new JButton(“ 新 游 戏 “);anew.setToolTipText(“重新开始新的一局“);exit = new JButton(“ 退 出 “);exit.setToolTipText(“退出象棋程序程序“);repent = new JButton(“ 悔 棋 “);repent.setToolTipText(“返回到上次走棋的位置 “);//把组件添加到工具栏jmain.setLayout(new GridLayout(0,4));jmain.add(anew);jmain.add(repent);jmain.add(exit);jmain.add(text);jmain.setBounds(0,0,558,30);con.add(jmain);//添加棋子标签drawChessMan();//注册按扭监听anew.addActionListener(this);repent.addActionListener(this);exit.addActionListener(this);//注册棋子移动监听for (int i=0;i<32;i++){con.add(play[i]);play[i].addMouseListener(this);}廊坊师范学院本科毕业论文10//添加棋盘标签con.add(image = new JLabel(new ImageIcon(“image\\Main.GIF“)));image.setBounds(0,30,558,620);image.addMouseListener(this);//注册窗体关闭监听this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent we){System.exit(0);}});this.setResizable(false);this.setTitle(Title);this.setSize(558,670);this.show();}5.2 按钮的操作模块本程序中有 3 个按钮,依次分别为:新游戏,悔棋,退出。当玩家单击“新游戏”按钮时,程序会应答重新布置棋子,并将保存当前操作的vector 清空;当玩家单击“悔棋”按钮时,程序立刻调用 vector 中的数据进行悔棋操作;玩家单击“退出”按钮时,程序会询问是否退出,选“是”则退出。5.2.1 新游戏重新开始按钮事件响应为:重新排列每个棋子的位置,默认红色走棋,清除 vector 里面的内容。如下则是新游戏的主要代码:public void actionPerformed(ActionEvent ae) {//重新开始按钮if (ae.getSource().equals(anew)){int i,k;//重新排列每个棋子的位置
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于Java的中国象棋对弈系统.rar
    链接地址:http://www.gold-doc.com/p-116483.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开