数学研发论坛

 找回密码
 欢迎注册
查看: 624|回复: 53

[讨论] 关于中国象棋摆棋局问题

[复制链接]
发表于 2019-12-12 08:25:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

x
有网友提出中国象棋摆棋局问题寻求帮助,
好题,游戏成分较大,好奇,想讨论一下
我做了些基础准备工作,希望作者提供 所有图片的文字数据
每个棋子的位置坐标 :(1,1)---(9,10)和 对应的最大步数
共约1000个数字,从图上读取,太难了
下面是我画的(44,44)的正常开局
Myxq001.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-12 22:19:09 | 显示全部楼层
代码?

点评

刚刚起步,请稍等  发表于 2019-12-13 07:34
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
回复

使用道具 举报

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

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

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

  1. rheagaehr
  2. .........
  3. .c.....c.
  4. s.s.s.s.s
  5. .........
  6. .........
  7. S.S.S.S.S
  8. .C.....C.
  9. .........
  10. RHEAGAEHR
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-13 00:50:49 | 显示全部楼层
以下是该帖子前五局的文字版:
  1. (110,6)
  2. rheaga...
  3. cS.ShS...
  4. e...S....
  5. rS.H.H...
  6. s.......R
  7. .......C.
  8. ......C..
  9. E..AEA...
  10. s.R......
  11. ssc.G...s

  12. (107,3)
  13. cheaga...
  14. rS.ShS...
  15. e...S....
  16. .S.H.H...
  17. ........R
  18. .......C.
  19. ......C..
  20. E..AEA...
  21. s.R......
  22. rscG..sss

  23. (109,5)
  24. creaga...
  25. rS.ShS...
  26. e...S....
  27. hS.H.H...
  28. s.......R
  29. .......C.
  30. ......C..
  31. E..AEA...
  32. ..R......
  33. ssc.G..ss

  34. (108,4)
  35. rheaSa...
  36. cS.ghS...
  37. e...S....
  38. sS.H.H...
  39. ........C
  40. .......R.
  41. ......C..
  42. E..AEA...
  43. ..R.....s
  44. ssc.G..sr

  45. (106,2)
  46. rceara...
  47. hS.ShS...
  48. ecS.g....
  49. .S.H.H...
  50. ........R
  51. .......R.
  52. ......C..
  53. E..AEA...
  54. ..C......
  55. ss.G..sss
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-13 01:00:52 | 显示全部楼层
以下是该帖子后五局的文字版:
  1. (108,3)
  2. rceara...
  3. cS.ghS...
  4. ehS.S....
  5. sS.H.H...
  6. ........R
  7. .......R.
  8. ......C..
  9. E..AEA...
  10. ..C......
  11. ss..G..ss

  12. (105,1)
  13. .herrcS..
  14. .S.ghS...
  15. e..aSaS..
  16. .C.......
  17. ....H.H..
  18. .......C.
  19. ........R
  20. E..AEA...
  21. ..R......
  22. sscG..sss

  23. (102,0)
  24. ..erraS..
  25. ...gcR...
  26. e.SaS.H..
  27. .R.......
  28. ..S.S.H..
  29. .......C.
  30. ........C
  31. E..AE....
  32. ssscA....
  33. sshhG....

  34. (103,0)
  35. .herrce..
  36. .S.ghS.S.
  37. ..SaSa...
  38. ......R..
  39. ........R
  40. C........
  41. .C.......
  42. ..H.EA.H.
  43. ...GA....
  44. ..Ecsssss

  45. (104,0)
  46. .herrce..
  47. .S.gaS.S.
  48. ..Sh.a...
  49. ......R..
  50. ..H..H.S.
  51. .C.......
  52. C.......R
  53. ....EA...
  54. ...GA....
  55. ..Ecsssss
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-12-13 01:24:32 | 显示全部楼层
根据这些文本资料,直接计算出所有棋子坐标对本论坛的各位大神们来说应该是小菜一碟。主要问题是用程序自动统计每颗棋子的走法数量,而这也是如果要编程解决本题一个不可避免的关口。

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

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

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

点评

谢谢你的代码,谢谢参与讨论,难不在编码,难在分析,你的成果难能可贵  发表于 2019-12-13 07:39
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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代表,请自行用程序调整。我想这是用来做检测统计走法总数的函数是否成功的比对结果吧(把上面的棋子布局矩阵作为输入应该就能生成本楼的走法数量矩阵)?

  1. (110,6)
  2. 000000...
  3. 13.303...
  4. 0...3....
  5. 13.8.8...
  6. 1.......h
  7. .......h.
  8. ......h..
  9. 2..141...
  10. 1.h......
  11. 001.3...1

  12. (107,3)
  13. 000000...
  14. 13.303...
  15. 0...3....
  16. .3.8.8...
  17. ........h
  18. .......g.
  19. ......g..
  20. 2..141...
  21. 1.h......
  22. 0002..100

  23. (109,5)
  24. 010000...
  25. 13.303...
  26. 0...3....
  27. 03.8.8...
  28. 1.......h
  29. .......g.
  30. ......h..
  31. 2..141...
  32. ..h......
  33. 001.3..10

  34. (108,4)
  35. 000020...
  36. 03.003...
  37. 0...3....
  38. 13.8.8...
  39. ........g
  40. .......h.
  41. ......h..
  42. 2..141...
  43. ..h.....1
  44. 001.3..10

  45. (106,2)
  46. 000000...
  47. 03.303...
  48. 003.0....
  49. .3.8.8...
  50. ........h
  51. .......h.
  52. ......g..
  53. 2..141...
  54. ..f......
  55. 01.2..100

  56. (108,3)
  57. 000000...
  58. 03.003...
  59. 003.3....
  60. 13.8.8...
  61. ........h
  62. .......h.
  63. ......h..
  64. 2..141...
  65. ..f......
  66. 01..3..10

  67. (105,1)
  68. .000002..
  69. .3.003...
  70. 0..0303..
  71. .f.......
  72. ....8.8..
  73. .......g.
  74. ........h
  75. 2..141...
  76. ..h......
  77. 0002..100

  78. (102,0)
  79. ..00002..
  80. ...00d...
  81. 0.303.8..
  82. .g.......
  83. ..3.3.8..
  84. .......h.
  85. ........h
  86. 1..03....
  87. 00003....
  88. 00002....

  89. (103,0)
  90. .000000..
  91. .3.003.3.
  92. ..3030...
  93. ......h..
  94. ........h
  95. h........
  96. .g.......
  97. ..7.30.6.
  98. ...13....
  99. ..1000000

  100. (104,0)
  101. .000000..
  102. .3.003.3.
  103. ..30.0...
  104. ......h..
  105. ..8..8.3.
  106. .g.......
  107. g.......g
  108. ....30...
  109. ...13....
  110. ..1000000
复制代码

点评

数据已经齐全,下面将首先验证走法步数的正确性,才能开始讨论  发表于 2019-12-13 11:20
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-12-14 15:02:35 | 显示全部楼层
本帖最后由 dlpg070 于 2019-12-14 15:17 编辑
毒酒滴冻鸭 发表于 2019-12-13 09:49
以下是十局的每子走法数量文本数据,还是10x9的矩阵格式,其中10至17分别用字母a至h代表,请自行用程序调 ...

文字数据与图片完全一致,可见严谨认真
已经把全部10个图形的数据转换完毕,未见错误(数据与图片一致),重新绘制,供参考,指出错误。
已经具备讨论条件
欢迎对象棋感兴趣网友参加讨论
发现作者的原始数据有些不妥,作者不是拔高成果,而是低估了步数,请大家审查每张图片
以下是图片

1020

1020

1030

1030

1040

1040

1051

1051

1062

1062

点评

“发现作者的原始数据有些不妥,作者不是拔高成果,而是低估了步数,请大家审查每张图片” 有点不明这句话的意思。我们都仔细计算过所有局面的步数,肯定100%完全准确的,不知如何“低估”了?可能你对规则不理解。  发表于 2019-12-14 21:50
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-12-14 15:23:22 | 显示全部楼层
dlpg070 发表于 2019-12-14 15:02
文字数据与图片完全一致,可见严谨认真
已经把全部10个图形的数据转换完毕,未见错误(数据与图片一致) ...

续图片

1073

1073

1083

1083
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2020-1-24 18:12 , Processed in 0.140987 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表