近期,把自己的2个比較重要的项目,中国象棋-个人官网,放到了CSDN的Code平台。当然,眼下是私有的,有开源部分项目的计划。 开发过程中,我是使用Windows平台的,工作和娱乐两不误。 近期,想要借鉴工作中的部署流程,在Linux平台,部署自己主动化,即使用git、maven、linux脚本、t ...
分类:
其他好文 时间:
2017-04-14 20:34:59
阅读次数:
224
题目链接 [Ahoi2009]chess 中国象棋 设f[i][j][k]为前i行,j列放了1个棋子,k列放了2个棋子的方案数 分6种情况讨论,依次状态转移。 ...
分类:
其他好文 时间:
2017-04-12 03:58:21
阅读次数:
178
4806: 炮 Description 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技。炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子"。 炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘上摆了起来……他想知道,在N×M的矩形 方格中摆若干炮(可以不摆)使其互不吃到的情况下方案数 ...
分类:
其他好文 时间:
2017-04-07 22:15:36
阅读次数:
221
感觉好绕弯……噗 转过来就好啦~ §最少步数 §【问题描述】 § 在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(10 ...
分类:
其他好文 时间:
2017-03-28 19:30:04
阅读次数:
285
在进入正题之前,本节是一些闲聊。如果你急切想进入正题,请跳过本节。 我学习中国象棋程序的历程 最初是买了本书《C/C++中国象棋程序入门与提高》。这是本好书,写得细致、透彻,我很愉快地读完了前6章,毫无压力。这6章讲解了局面表示、走法生成、局面评估、基本搜索算法等内容。遗憾的是,第7章我读不下去了。 ...
分类:
编程语言 时间:
2017-02-21 22:13:27
阅读次数:
206
内容:走法产生 中国象棋基础搜索AI, 极大值,极小值剪枝搜索, 静态估值函数 理论基础: (一)人机博弈走法产生: 先遍历某一方的所有棋子,再遍历整个棋盘,得到每个棋子的所有走棋情况(效率不高,可以改进) 1 void SingleGame::getAllPossibleMove(QVector< ...
分类:
其他好文 时间:
2017-02-11 18:57:37
阅读次数:
338
实现功能:棋子初始化及走棋规则 棋子类: 1 #ifndef STONE_H 2 #define STONE_H 3 4 #include <QString> 5 6 class Stone 7 { 8 public: 9 Stone(); 10 ~Stone(); 11 12 enum TYPE{ ...
分类:
其他好文 时间:
2017-02-02 21:59:06
阅读次数:
717
开发目的:实现象棋人机对战简单AI,网络对战,移植到android中。 开发平台:windows10 + Qt5.4 for android 开发语言:C++ 开发过程:1.棋盘绘制; 方法一:重写 paintEvent(QPaintEvent *) 虚函数,调用QPainter painter(t ...
分类:
其他好文 时间:
2017-02-02 16:29:19
阅读次数:
200
2005年6月我系第二批科技小组的项目正式确定为实现一款中国象棋对弈软件。基本功能包括人机对战、网络对战。我负责开发人机对战的引擎部分,也就是让计算机下棋。经过了暑假整整两个月的学习与实践,我终于初步完成了程序,虽然电脑的下棋水平实在不敢恭维,但好歹也是我心血所成,所以就苟且将其命名为scCChes ...
分类:
其他好文 时间:
2017-01-07 01:32:54
阅读次数:
395
对于棋盘的表示当前比较先进的思想是“位棋盘”。“位棋盘”用于国际象棋非常便捷,因为国际象棋的棋盘正好有64个格子,可以将一个棋盘的信息用一个64位的变量来表示。其基本思想就是用位上的值是1或0来表示棋子在棋盘相应位置上的存在与否,这样做的好处是可以通过位操作运算来加快局面评估和着法生成的速度。当用于 ...
分类:
其他好文 时间:
2017-01-07 01:01:27
阅读次数:
148