回 帖 发 新 帖 刷新版面

主题:超难型问题

半张棋盘,马从棋盘的左下角起跳,目标是棋盘的右上角。并规定马只许往右跳,不许往左跳。图中所示为其中一种跳行路线,请你设计一个程序,由计算机寻找并打印出马的所有可能的跳行的路线。这是一个典型的深度优先搜索问题,下面给出程序清单,请在①②中填上内容,使程序完整。试试看程序能否正确运行(正确结果有37条路线)
CLS : FOR i = 1 TO 4: READ v(i, 1), v(i, 2): NEXT
DATA 2,1,1,2,2,-1,1,-2,2
p = 1: x = 1: y = 1: x(p) = x: y(p) = y: i = 0: xe = 9: ye = 5
WHILE p > 0
  i = i + 1
  IF i <= 4 THEN
    x = x(p) + v(i, 1): y = y(p) + v(i, 2)
    IF                    ①                       THEN
      p = p + 1: s(p) = I: x(p) = x: y(p) = y: i = 0
      IF        ②          THEN GOSUB 10
    END IF
  ELSE
    i = s(p): p = p - 1
  END IF
WEND: END
10 n = n + 1: PRINT n; "  "; : FOR j = 1 TO p - 1: PRINT USING "#"; x(j);
   PRINT ","; : PRINT USING "#"; y(j); : PRINT " --> "; : NEXT
   PRINT USING "#"; x(j); : PRINT ","; : PRINT USING "#"; y(j): RETURN
请大家填一下吧!
[em9][em12][em1][em8]

回复列表 (共8个回复)

沙发

①x>=1 AND x<=xe AND y<=ye
②x=xe AND y=ye
一定要给分!!!!

板凳

哈哈。。。
难。。。
强强不是要路径搜索吗?
这里就有个现成的

3 楼

CLS : FOR i = 1 TO 4: READ v(i, 1), v(i, 2): NEXT
DATA 2,1,1,2,2,-1,1,-2,2
p = 1: x = 1: y = 1: x(p) = x: y(p) = y: i = 0: xe = 9: ye = 5
WHILE p > 0
  i = i + 1
  IF i <= 4 THEN
    x = x(p) + v(i, 1): y = y(p) + v(i, 2)
    IF  X>=1 AND X<=XE AND Y>=1 AND Y<=YE  THEN
      p = p + 1: s(p) = I: x(p) = x: y(p) = y: i = 0
      IF X=XE AND Y=YE THEN GOSUB 10
    END IF
  ELSE
    i = s(p): p = p - 1
  END IF
WEND: END
10 n = n + 1: PRINT n; "  "; : FOR j = 1 TO p - 1: PRINT USING "#"; x(j);
   PRINT ","; : PRINT USING "#"; y(j); : PRINT " --> "; : NEXT
   PRINT USING "#"; x(j); : PRINT ","; : PRINT USING "#"; y(j): RETURN
快给我加分
你的同学-CHYX

4 楼

2楼的,光说可不行啊!

5 楼

①x>=1 AND x<=xe AND y<=ye
②x=xe AND y=ye
AM I RIGHT????????????????

6 楼

此题,如果作为设计题来说是有些难。但作为填空题,就一般了

7 楼

①x>=1 AND x<=xe AND y<=ye
②x=xe AND y=ye

8 楼

咱是叫强强看看什么叫"路径搜索"..没说要给你答案..
以后些游戏...什么的...这东东用的最多了...

我来回复

您尚未登录,请登录后再回复。点此登录或注册