java课程设计---中国象棋对弈系统

1 目目 录录 摘要 1 关键字 1 正文 2 1、程序设计说明. 2 1.1 程序的设计及实现 2 1.1.1搜索引擎的实现(engine包) . 2 1.1.2信息传输机制(message包) 3 1.1.3棋子(pieces包) . 3 1.2 主控模块(main包) 3 2、运行结果. 5 3、设计体会. 6 附件 7 程序代码 7 参 考 文 献 资 料 41 中国象棋对弈系统 2 JavaJava 语言程序设计实验报告语言程序设计实验报告 实验项目名称实验项目名称中国象棋对弈系统 作者姓名与单位作者姓名与单位李非 计算机 101 摘要摘要 本文主要是运用 java 实现具有一定功能的中国象棋对弈系统软件,主要功 能如下 a、 象棋对弈红方先走,然后黑方再走,红黑交替,直到一方获胜。 b、新游戏任何时候可以重新开始一盘新的对弈。 c、 悔棋当走错棋的时候可以悔棋。 d、信息提示提示当前信息状态。 e、 简单的帮助文档象棋规则介绍、软件的简单介绍和编制说明 关键词关键词java、中国象棋对弈系统 3 正文正文 一 程序设计说明 1.1 程序的设计及实现 本系统主要有以下 4 个模块,每个模块对应一个程序包 1、engine搜索引擎包,系统的核心部分。 2、message网络对战过程中各种消息及其传递机制的类实现包。 3、main主界面实现包。 4、pieces棋子及其相关类实现包。 现就各个包中的要点给与说明。 1.1.1 搜索引擎的实现(engine 包) 1 BitBoard.java位棋盘的实现,见 2.4 节。 2 CCue.java评价函数知识类。 本程序使用开源软件“梦入神蛋”的快速评价函数。该函数包含子力价 值和棋子所在位置的奖励值。子力价值分别是帅-0, 仕- 40, 象-40, 马-88, 车-200, 炮-96, 兵-9。帅是无价的,用 0 表示。以马为例,位置的奖励值如 下 0, -3, 5, 4, 2, 2, 5, 4, 2, 2, -3, 2, 4, 6,10,12,20,10, 8, 2, 2, 4, 6,10,13,11,12,11,15, 2, 0, 5, 7, 7,14,15,19,15, 9, 8, 2,-10, 4,10,15,16,12,11, 6, 2, 0, 5, 7, 7,14,15,19,15, 9, 8, 2, 4, 6,10,13,11,12,11,15, 2, -3, 2, 4, 6,10,12,20,10, 8, 2, 0, -3, 5, 4, 2, 2, 5, 4, 2, 2 上面的每行代表棋盘的一条纵线。其中,-10 所在的位置是“窝心马”,所 以要罚 10 分。 3 ChessPosition.java动态局面类 包含对局过程中的动态信息, 主要实现的是 2.4 节的各类位棋盘和移子函数。 4 MoveStruct.java着法表示类。 5 PreMove.java伪合法着法生成模块,见 4.1。 中国象棋对弈系统 4 6 MoveSortStruct.java合法着法的生成及其排序算法,见 4.2。 7 SearchMove.java搜索算法,实现如下功能 1主置换表及开局库 2Alpha-Beta 搜索算法 3针对吃子着法的静态搜索算法 4适应性空着裁剪算法见 5.5.2,根据不同情况来调整 R 值的做法,称 为 “适应性空着裁剪” Adaptive Null-Move Pruning, 它首先由 Ernst Heinz 发表在 1999 年的 ICCA 杂志上。其内容可以概括为 a. 深度小于或等于 6 时,用 R 2 的空着裁剪进行搜索 b. 深度大于 8 时,用 R 3; c. 深度是6或7时, 如果每方棋子都大于或等于3个,则用 R 3, 否则用 R 2。 5带时间控制的迭代加深搜索算法每次加深搜索都判断时间是否够用。 6“将军”扩展(加深)搜索算法当搜索到己方被“将”时,增加搜 索的深度。 7主要变例搜索算法 1.1.2 信息传输机制(message 包) 在对弈过程中(主要是网络对弈)需要在对弈双方之间传输各类信息,抽象 为各类消息。如时间规则的协定、各方的走子信息等。每方都有消息接收、消息 处理和消息发送程序 (OuterMsgReceiver、 LocalMsgReceiver, QzMessageHandler, MessageSender)。己方的 MessageSender 与对方

java中国象棋网络对弈,java课程设计---中国象棋对弈系统相关推荐

  1. Java课程设计—中国象棋(源代码及视频)

    你好,我是罡罡同学! 代码谱第一页忘掉心上人,最后一页...... 打赏一点钱,帮我买包辣条,继续创作,谢谢大家! 大家关注微信公众号 罡罡同学 回复中国象棋 就可以免费获得压缩包啦!! 压缩包里面内 ...

  2. java课程设计象棋_java课程设计 中国象棋

    [实例简介] 内附eclipse项目,可运行jar包,和课程设计报告,觉得让你一下子看懂 [实例截图] [核心代码] P17-象棋java课程设计 └── P17-象棋java课程设计 ├── res ...

  3. 山东大学软件学院高级语言课程设计JAVA课程设计-学生在线考试系统平台

    说明:blog 不全面而且也不是上交实验报告的最终版本(是自己实验过程中简单记录的笔记),完整内容(含代码+实验报告)可以通过(山东大学软件学院高级语言课程设计JAVA课程设计-学生在线考试系统平台) ...

  4. ## 大一java课程设计_航班查询系统(我是小白)

    大一java课程设计_航班查询系统(我是小白) 备注:第一个java程序有借鉴别人的成分,因为忘了在哪个大佬上面借鉴的,所以在此备注,如有侵权,请联系删除,(仅用于学习使用,并未想盈利) 框体介绍 一 ...

  5. java校院导游程序课程设计_数据结构课程设计之校园导游系统

    数据结构课程设计之校园导游系统 放假到现在终于安下心来要搞点学习了,现在对放假前一周的数据结构课设做一个总结,快放假的时候搞数据结构课设,当时满脑子都是期末考试忙着复习,根本没啥心思去做.所以课设一共 ...

  6. java计算机毕业设计校园爱心公益平台设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计校园爱心公益平台设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计校园爱心公益平台设计与实现MyBatis+系统+LW文档+源码+调试部署 本源码技 ...

  7. java毕业设计乐居租房网的设计与实现Mybatis+系统+数据库+调试部署

    java毕业设计乐居租房网的设计与实现Mybatis+系统+数据库+调试部署 java毕业设计乐居租房网的设计与实现Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  8. java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署

    java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署 java毕业设计颜如玉图书销售网站的设计与实现Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B ...

  9. java计算机毕业设计幼儿早教系统软件设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计幼儿早教系统软件设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计幼儿早教系统软件设计与实现MyBatis+系统+LW文档+源码+调试部署 本源码技 ...

最新文章

  1. java SE环境变量配置
  2. Hibernate配置文件解释
  3. python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
  4. java 环境变量 locale,修改locale把语言环境变量改为英文
  5. 深圳内推 | 腾讯AI Lab自然语言处理中心招聘NLP研究型实习生
  6. leetcode 328. Odd Even Linked List | 328. 奇偶链表(Java)
  7. 26计算限制的异步操作01-CLR
  8. android 设置视频音量大小,为cocos2d-x添加调节视频音量的功能(Android)
  9. 春天猫rtsy_春天:注入列表,地图,可选对象和getBeansOfType()陷阱
  10. C++ 高级数据类型(六)—— 自定义数据类型
  11. js页面文字选中后分享到新浪微博实现
  12. Vue router-link 两种传参方法及参数的使用
  13. 下拉框绑定数据库后,如何在下拉框的最前面增加一项
  14. python遍历目录下所有文件
  15. [转] ubuntu开启SSH服务
  16. podman—网络设置、开机自启及加速器配置
  17. Memcached缓存
  18. 使用sunshine+moonlight 实现电脑串流到电视(Android 设备)低延迟投屏
  19. VS code编辑器出现open a floder or workspace... (File -> Open Folder)错误
  20. js网页打印,js打印,javascript局部打印,网页局部打印方法

热门文章

  1. C#系列之{流和序列化}
  2. JavaScript学习笔记 - 变量、作用域与内存问题
  3. [Everyday Mathematics]20150125
  4. mysql优化之query优化
  5. ios 如何获得系统时间和日期
  6. 怎样在汉字后面加空格?
  7. 工作闲了觉得无聊,忙了觉得累......
  8. ZZULIOJ 1128: 课程平均分
  9. 信息学奥赛一本通 1131:基因相关性 | OpenJudge NOI 1.7 03
  10. 信息学奥赛一本通(1187:统计字符数)