dlpg070 发表于 2019-12-12 08:25:12

关于中国象棋摆棋局问题

有网友提出中国象棋摆棋局问题寻求帮助,
好题,游戏成分较大,好奇,想讨论一下
我做了些基础准备工作,希望作者提供 所有图片的文字数据
每个棋子的位置坐标 :(1,1)---(9,10)和 对应的最大步数
共约1000个数字,从图上读取,太难了
下面是我画的(44,44)的正常开局

markfang2050 发表于 2019-12-12 22:19:09

代码?

毒酒滴冻鸭 发表于 2019-12-13 00:38:11

万分感谢楼主!我待会先直接把该帖子十个局面的文字版整理一下(10x9的ascii字元),至于坐标之类的数据希望大大能用程序自动计算出来,因为手动列出来也是很累的(抱歉)。

那么格式就是用“.”代表空格,红方的七种棋子分别用大写七个字母CHARGES代表,黑方则用小写的charges代表。

例如开局局面的文字档就是这样:

rheagaehr
.........
.c.....c.
s.s.s.s.s
.........
.........
S.S.S.S.S
.C.....C.
.........
RHEAGAEHR

毒酒滴冻鸭 发表于 2019-12-13 00:50:49

以下是该帖子前五局的文字版:
(110,6)
rheaga...
cS.ShS...
e...S....
rS.H.H...
s.......R
.......C.
......C..
E..AEA...
s.R......
ssc.G...s

(107,3)
cheaga...
rS.ShS...
e...S....
.S.H.H...
........R
.......C.
......C..
E..AEA...
s.R......
rscG..sss

(109,5)
creaga...
rS.ShS...
e...S....
hS.H.H...
s.......R
.......C.
......C..
E..AEA...
..R......
ssc.G..ss

(108,4)
rheaSa...
cS.ghS...
e...S....
sS.H.H...
........C
.......R.
......C..
E..AEA...
..R.....s
ssc.G..sr

(106,2)
rceara...
hS.ShS...
ecS.g....
.S.H.H...
........R
.......R.
......C..
E..AEA...
..C......
ss.G..sss

毒酒滴冻鸭 发表于 2019-12-13 01:00:52

以下是该帖子后五局的文字版:
(108,3)
rceara...
cS.ghS...
ehS.S....
sS.H.H...
........R
.......R.
......C..
E..AEA...
..C......
ss..G..ss

(105,1)
.herrcS..
.S.ghS...
e..aSaS..
.C.......
....H.H..
.......C.
........R
E..AEA...
..R......
sscG..sss

(102,0)
..erraS..
...gcR...
e.SaS.H..
.R.......
..S.S.H..
.......C.
........C
E..AE....
ssscA....
sshhG....

(103,0)
.herrce..
.S.ghS.S.
..SaSa...
......R..
........R
C........
.C.......
..H.EA.H.
...GA....
..Ecsssss

(104,0)
.herrce..
.S.gaS.S.
..Sh.a...
......R..
..H..H.S.
.C.......
C.......R
....EA...
...GA....
..Ecsssss

毒酒滴冻鸭 发表于 2019-12-13 01:24:32

根据这些文本资料,直接计算出所有棋子坐标对本论坛的各位大神们来说应该是小菜一碟。主要问题是用程序自动统计每颗棋子的走法数量,而这也是如果要编程解决本题一个不可避免的关口。

初步目标是能够编写出这样一个函数,根据一个10x9字元矩阵,又或32长度的正整数坐标数列(每个棋子的坐标其实可以用一个正整数代表,例如第一行是1至9,第二行是11至19……第十行是91至99)作为输入,然后输出该局面的(r,b)值作为结果。

这里将士卒等的计算还相对简单,马象也不太难(注意一下绊马腿和塞象眼等特别规则就行),车炮就比较麻烦,必须从它们上下左右四个方向计算能前进的空间,还要计算吃子的一步(车能吃掉第一个碰到的敌子,炮能吃掉炮架后第一个碰到的敌子)。除此之外就是要避免将帅被对方车炮杀死或双方直接打照面(“对面笑”),例如(102,0)的黑炮和(104,0)的黑马都是这样被钉死的。

可惜我目前没有自己写出这程序的条件,其实对国内高校的计算机科学本科大学生来说这最多是大一或大二编程习作的程度吧?

dlpg070 发表于 2019-12-13 08:19:03

毒酒滴冻鸭 发表于 2019-12-13 01:24
根据这些文本资料,直接计算出所有棋子坐标对本论坛的各位大神们来说应该是小菜一碟。主要问题是用程序自动 ...

谢谢,棋子布局数据很好,正是我希望的格式,
可惜没有对应的步数,能附上更好
例如 (104,0)
.herrce.. 改为 .h0e0r0r0c0e0..(后者是我正在用的格式)
,或单独提供也可,
期待中!

毒酒滴冻鸭 发表于 2019-12-13 09:49:12

dlpg070 发表于 2019-12-13 08:19
谢谢,棋子布局数据很好,正是我希望的格式,
可惜没有对应的步数,能附上更好
例如 (104,0)


以下是十局的每子走法数量文本数据,还是10x9的矩阵格式,其中10至17分别用字母a至h代表,请自行用程序调整。我想这是用来做检测统计走法总数的函数是否成功的比对结果吧(把上面的棋子布局矩阵作为输入应该就能生成本楼的走法数量矩阵)?

(110,6)
000000...
13.303...
0...3....
13.8.8...
1.......h
.......h.
......h..
2..141...
1.h......
001.3...1

(107,3)
000000...
13.303...
0...3....
.3.8.8...
........h
.......g.
......g..
2..141...
1.h......
0002..100

(109,5)
010000...
13.303...
0...3....
03.8.8...
1.......h
.......g.
......h..
2..141...
..h......
001.3..10

(108,4)
000020...
03.003...
0...3....
13.8.8...
........g
.......h.
......h..
2..141...
..h.....1
001.3..10

(106,2)
000000...
03.303...
003.0....
.3.8.8...
........h
.......h.
......g..
2..141...
..f......
01.2..100

(108,3)
000000...
03.003...
003.3....
13.8.8...
........h
.......h.
......h..
2..141...
..f......
01..3..10

(105,1)
.000002..
.3.003...
0..0303..
.f.......
....8.8..
.......g.
........h
2..141...
..h......
0002..100

(102,0)
..00002..
...00d...
0.303.8..
.g.......
..3.3.8..
.......h.
........h
1..03....
00003....
00002....

(103,0)
.000000..
.3.003.3.
..3030...
......h..
........h
h........
.g.......
..7.30.6.
...13....
..1000000

(104,0)
.000000..
.3.003.3.
..30.0...
......h..
..8..8.3.
.g.......
g.......g
....30...
...13....
..1000000

dlpg070 发表于 2019-12-14 15:02:35

本帖最后由 dlpg070 于 2019-12-14 15:17 编辑

毒酒滴冻鸭 发表于 2019-12-13 09:49
以下是十局的每子走法数量文本数据,还是10x9的矩阵格式,其中10至17分别用字母a至h代表,请自行用程序调 ...
文字数据与图片完全一致,可见严谨认真
已经把全部10个图形的数据转换完毕,未见错误(数据与图片一致),重新绘制,供参考,指出错误。
已经具备讨论条件
欢迎对象棋感兴趣网友参加讨论
发现作者的原始数据有些不妥,作者不是拔高成果,而是低估了步数,请大家审查每张图片
以下是图片

dlpg070 发表于 2019-12-14 15:23:22

dlpg070 发表于 2019-12-14 15:02
文字数据与图片完全一致,可见严谨认真
已经把全部10个图形的数据转换完毕,未见错误(数据与图片一致) ...

续图片
页: [1] 2 3 4
查看完整版本: 关于中国象棋摆棋局问题