以后白天没得上网了,上来的时间就少了。散些分。为免成纯粹的散分帖,发个问题讨论一下。讨论题目:马踏棋盘。国际象棋的马,从a1开始,踏遍整个棋盘,每个格子只走一次。求走的路线。不要发代码,写下思路就好。参与讨论的朋友会得到较高的分。

解决方案 »

  1.   

    这个和八皇后的问题有点类似的吧?
    回溯的算法应该也比较适合
    假设,走a1,那么考虑,下一步可以走的a2或者b1,当选择a2的话,则考虑a2的走法
    以此类推,实现回溯
      

  2.   


    有关系,
    以a1-h8对角线对称,那么第一步走到c2还是走到b3是完全一样的。
      

  3.   

    恩,有想法,还没时间附上算法代码
    静待ING………………
    顺便水一下
      

  4.   

    貌视 无法实现
    棋盘地址:http://www.cnchess.com/shop/dmv0102b.jpg
    规则
      

  5.   

    哦,不简单呀!如果用dfs+剪枝的话,似乎计算量太大了,初始阶段分支太多。应该可以转化为欧拉图的问题来解,这方面我了解的也不多。感觉应该先从几个角来入手。
      

  6.   

    用一个8×8的二维数组A(I,J)来表示国际象棋的棋盘,在马还没有开始周游棋盘时,棋盘上所有的格都置为零。以后,马跳到哪个格,就将马跳跃的步数记录在相应的空格里。 
      

  7.   

    假设,当前位置(x,y)马的走的下一步应该是(x+-1,y+-2)或(x+-2,y+-1),这样每走一步就判断一下是否越界,一直到回到原点。注:“+-”表示“加减”
      

  8.   

    很久以前玩过,好像是沿着斜线直走任意个格子,除非到了边上,那么这就简单了,可以构造一个8bit的二维数组,随机给一个开始点,和四个方向的任意一个,然后走,知道遇到边,反弹着继续走。
    计算一个随机点(8×8中的)
    计算一个方向
    然后写一个循环处理
    需要考虑遇到边和角的处理