我们基于α-β剪枝人工智能方法的的中国象棋使用python实现,分为走法计算、评估函数与搜索和UI三部分,并采用历史启发算法进行优化,有着不错的效果。可以实现正常的人机对战,有着普通人的棋力,经过多轮测试,搜索五步的时候,电脑胜率达到80%左右。 (关于代码,my_chess.py里面是对可行走法的搜索,chinachess.py里面是象棋UI的实现,history_heuristic.py里面是历史启发算法优化部分,chess_constants.py是对棋盘、棋子基本单位的定义,my_game.py里面是Alpha-Beta算法的实现。) 我们的中国象棋使用python实现,分为走法计算、评估函数与搜索和UI三部分,并采用历史启发算法进行优化,有着不错的效果。可以实现正常的人机对战,有着普通人的棋力,经过多轮测试,搜索五步的时候,电脑胜率达到80%左右。 (关于代码,my_chess.py里面是对可行走法的搜索,chinachess.py里面是象棋UI的实现,history_heuristic.py里面是历史启发算法优化部分,chess_constants.py是对棋盘、棋子基本单位的定义,my_game.py里面是Alpha-Beta算法的实现。)
1
HTML5中国象棋源码 源码描述: 一、源码特点 1、HTML5实现象棋游戏,与电脑进行博弈,该游戏具备提示功能。试用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗,不支持IE8及以下浏览器。 二、菜单功能 1、新手水平 2、中级水平 3、悔棋 4、换肤 三、注意事项 1、开发环境为Visual Studio 2015,无数据库,使用.net 4.0开发。
易语言画板绘制小例子,绘制中国象棋棋盘和初始化棋子,棋子是图片,黑方棋子未加入图片 走棋思路还没想好,不知道有没有大神知道画板上图片怎么获取再移动它
Android中国象棋源码Chess下载,拿来学习研究很不错
2021-12-29 19:09:47 4.43MB Android中国象棋源码Che
用java写的中国象棋源码,主要是通过Swing这样的Java组件来做的,不足的是不能联网互玩,值得人学习借鉴
2021-12-20 11:36:05 490KB 中国象棋 java
1
中国象棋,位棋盘,Zobrist键值,alpha-beta搜索,置换表,局面评价,包含设计说明 摘 要:随着人工智能及计算机硬件的发展,计算机象棋程序的下棋水平也不断地得到提高。20世纪60年代初,麦卡锡提出了alpha-beta修剪算法,把为决定下一个走步而需对棋盘状态空间的搜索量从指数级减少为指数的平方根,大大地提高了机器下棋的水平。IBM的超级计算机“Deep Blue”更是一个神话,让棋迷们神往。本文根据国际象棋程序设计的一些成功经验,提出中国象棋程序设计的一些思路和方法。 关 键 词:中国象棋,位棋盘,Zobrist键值,alpha-beta搜索,置换表,局面评价 Abstract:Along with the development of the Artificial Intelligence and computer hardware, the capability of computer chess program have advanced continually.At the beginning of 60s,20th century, McCaxi brought forword alpha-beta pruning algorism which made the chess program advanced more by reducing the order of magnitude of the number of searching nodes deciding next step,named “State Space” from O(Xn) to O(Xn/2). IBM’s super-computer “Deep Blue” is more like a myth for all computer chess fans. In my article, I will describe some ideas and methods of designing Chinese Chess program along with some successful experiences and cases of the Chess. Keywords: Chinese Chess, bit board, zobrist keys, alpha-beta search, transposition table, Evaluation 目 录 引 言 3 第一章 概述 4 1.1 棋盘的标记 4 1.2 棋子的名称 5 1.3 棋谱的记录方法 5 1.4 历史局面的表示及存储 7 1.5 棋谱记录文件的格式 8 第二章 基本数据结构——位棋盘 10 2.1 什么是位棋盘 10 2.2 位棋盘的作用 10 2.3 位棋盘的基本运算 12 2.4 Java中位棋盘的实现 13 第三章 基本数据结构——Zobrist键值 17 3.1 比较局面的方法 17 3.2 Zobrist键值的实现方法 17 3.3 Zobrist键值的工作原理及用途 17 3.4 Java中实现Zobrist键值 18 第四章 着法生成 20 4.1伪合法着法的生成 20 4.2 合法着法的生成 25 第五章 搜索算法 29 5.1 最小-最大搜索 29 5.2 Alpha-Beta搜索 33 5.3 迭代加深 36 5.4 置换表 37 5.5 其他策略 41 第六章 局面评价函数 47 6.1 评价函数的实现方法 48 6.2 评价函数所需的信息 48 第七章 程序的设计及实现 51 7.1 搜索引擎的实现(engine包) 51 7.2 信息传输机制(message包) 52 7.3 棋子生成(pieces包) 52 7.4 主控模块(main包) 52 附件1:搜索算法主程序SearchMove.java 55 附件2:程序运行界面及功能说明 74
1
用C++编写的中国象棋,具有“悔棋”,“选择等级”等功能,经测可实现。
2021-12-12 18:51:59 3.94MB C++ 象棋
1
资源名称:基于Java编写的中国象棋源码大全资源目录:【】20110816_040652939【】j2me中国象棋【】Java中国象棋源码.tar【】?D1ú?ó????T??μí3_java??3ìéè??【】【】自学Java写的象棋游戏源码【】中国象棋棋谱制作系统(java课程设计)【】中国象棋游戏打谱系统完整源码 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
1
主要实现了人机对弈,人人对弈,电脑棋力选择(搜索深度设定),悔棋(还原),着法名称显示等功能。
2021-11-23 09:46:30 214KB delphi象棋
1
本人机对弈程序采用了多种搜索算法.以下是本程序主要的类说明: 1.CEveluation类:估值类,对给定的棋盘进行估值. 2.CMoveGenerator类:走法产生器,对给定的棋盘局面搜索出所有可能的走法. 3.CSearchEngine类:搜索引擎基类. 4.CNegaMaxEngine类:负极大值法搜索引擎. 5.CAlphaBetaEngine类:采用了Alpha-Beta剪枝技术的搜索引擎. 6.CFAlphaBetaEngine类:fail-softalpha-beta搜索引擎. 7.CHistoryHeuristic类:历史启发类. 8.CAlphabeta_HHEngine类:带历史启发的Alpha-Beta搜索引擎. 9.CAspirationSearch类:渴望搜索引擎. 10.CIDAlphabetaEngine类:迭代深化搜索引擎. 11.CMTD_fEngine类:MTD(f)搜索引擎. 12.CTranspositionTable类:置换表. 13.CAlphaBeta_TTEngine类:加置换表的Alpha-Beta搜索引擎. 14.CPVS_Engine类:极小窗口搜索引擎. 15.CNegaScout_TT_HH类:使用了置换表和历史启发的NegaScout搜索引擎. 本程序具有悔棋,还原功能,可以记录走法,还可以进行布局. 注:本程序编写时参考了王小春的<>,他的书真是好.
2021-11-18 11:45:08 168KB 象棋
1