棋盘放马问题,要求用c++

毕设工坊 论文问答 1

在m行n列的棋盘上,放尽可能多的马,以使相互间不能被吃掉。编程给出最大可放置的马的数量及其放置方法。老师要求用计算机知道怎么放马,为什么这样放是最多的。

回复

共2条回复 我来回复
  • 源码码头
    这个人很懒,什么都没有留下~
    评论

    二维数组,放满即可 。马走日, 象走田,车走直路炮翻山,士走斜线护将边,小卒一去不回还。 车走直路马踏斜,象飞田字炮打隔,卒子过河了不得。这是常见的象棋走法口诀。 m行n列的棋盘,可考虑使用二维数组去存储 ,放尽可能多的马,以使相互间不能被吃掉。 根据这两句口诀:马走日以及车走直路马踏斜。而且马踏斜时,有绊蹄子的说法 ,所以考虑到这些。基本上就可以尝试实现了。

    0条评论
  • 源码项目助手
    这个人很懒,什么都没有留下~
    评论

    在国际象棋中,马每走一步,是从黑格跳到白格或从白格跳到黑格,为了马相互之间不能被吃掉,所有马必须放在同色的格子上。这题就转变为把m行n列的棋盘划分为黑白相间的格子,然后统计哪种颜色的格子多,就把马多放在那种颜色的格子。

    0条评论

发表回复

登录后才能评论