回 帖 发 新 帖 刷新版面

主题:[讨论]我以前写过一个俄罗斯方块的程序(有问题),有人愿意接手吗?[代码已贴]

哈哈,问题就是方块落的位置不对…………

一直找不出原因。有人愿意接手吗?

代码现在不在手里,得回家才有。[em1]
===================================================
基本没有注释,高中时候写的呢,当时没有找出问题所在。
我怀疑是对double型数值做绝对等于判断造成的,落点判断不对。
各位大哥可以看看。
===========================================================
'DEFSNG R


DECLARE SUB chuxian (r, a, b)
DECLARE SUB zdz (r, zd, n)



COMMON SHARED r, a, b, zd, n
SCREEN 12

WINDOW (-20, -40)-(640, 480)


DIM SHARED q(14, 8)
DIM SHARED X(20), ge(664)



DIM SHARED U1(344), U2(304), U3(404), U4(504), U5(524), U6(504), U7(524), U8(424), U9(504), U10(504)

DIM SHARED U11(424), U12(504), U13(424), U14(424), U15(504), U16(504), U17(424), U18(424), U19(504)


LINE (0, 80)-(20, 0), 3, B
PAINT (10, 20), 1, 3
LINE (0, 60)-(20, 40), 3, B
LINE (0, 20)-(20, 20), 3
GET (0, 80)-(20, 0), U1
CLS
LINE (0, 20)-(80, 0), 3, B
PAINT (20, 10), 1, 3
LINE (60, 0)-(60, 20), 3
LINE (20, 20)-(40, 0), 3, B
GET (0, 20)-(80, 0), U2
CLS
LINE (0, 40)-(40, 0), 3, B
PAINT (20, 20), 1, 3
LINE (0, 20)-(40, 20), 3
LINE (20, 0)-(20, 40), 3
GET (0, 40)-(40, 0), U3
CLS
LINE (0, 60)-(20, 20), 3, B
PAINT (10, 40), 1, 3
LINE (20, 40)-(40, 0), 3, B
PAINT (30, 20), 1, 3
LINE (0, 40)-(20, 40), 3
LINE (20, 20)-(40, 20), 3
GET (0, 60)-(40, 0), U4
CLS
LINE (0, 20)-(40, 0), 3, B
PAINT (20, 10), 1, 3
LINE (20, 40)-(60, 20), 3, B
PAINT (40, 30), 1, 3
LINE (20, 0)-(20, 20), 3
LINE (40, 20)-(40, 40), 3
GET (0, 40)-(60, 0), U5
CLS
LINE (0, 40)-(20, 0), 3, B
PAINT (10, 20), 1, 3
LINE (20, 60)-(40, 20), 3, B
PAINT (30, 40), 1, 3
LINE (0, 20)-(20, 20), 3
LINE (20, 40)-(40, 40), 3
GET (0, 60)-(40, 0), U6
CLS
LINE (0, 40)-(40, 20), 3, B
PAINT (20, 30), 1, 3
LINE (20, 20)-(60, 0), 3, B
PAINT (40, 10), 1, 3
LINE (20, 20)-(20, 40), 3
LINE (40, 0)-(40, 20), 3
GET (0, 40)-(60, 0), U7
CLS
LINE (0, 20)-(60, 0), 3, B
PAINT (20, 10), 1, 3
LINE (20, 40)-(40, 0), 3, B
PAINT (30, 30), 1, 3
GET (0, 40)-(60, 0), U8
CLS
LINE (20, 60)-(40, 0), 3, B
PAINT (30, 20), 1, 3
LINE (0, 40)-(40, 20), 3, B
PAINT (10, 30), 1, 3
GET (0, 60)-(40, 0), U9
CLS
LINE (0, 60)-(20, 0), 3, B
PAINT (10, 20), 1, 3
LINE (0, 40)-(40, 20), 3, B
PAINT (30, 30), 1, 3
GET (0, 60)-(40, 0), U10
CLS
LINE (0, 40)-(60, 20), 3, B
PAINT (20, 30), 1, 3
LINE (20, 40)-(40, 0), 3, B
PAINT (30, 10), 1, 3
GET (0, 40)-(60, 0), U11
CLS
LINE (0, 60)-(20, 0), 3, B
PAINT (10, 20), 1, 3
LINE (0, 40)-(20, 20), 3, B
LINE (20, 60)-(40, 40), 3, B
PAINT (30, 50), 1, 3
GET (0, 60)-(40, 0), U12
CLS
LINE (0, 20)-(60, 0), 3, B
PAINT (20, 10), 1, 3
LINE (20, 20)-(40, 0), 3, B
LINE (0, 40)-(20, 20), 3, B
PAINT (10, 30), 1, 3
GET (0, 40)-(60, 0), U13
CLS
LINE (0, 40)-(60, 20), 3, B
PAINT (20, 30), 1, 3
LINE (20, 40)-(40, 20), 3, B
LINE (40, 20)-(60, 0), 3, B
PAINT (50, 10), 1, 3
GET (0, 40)-(60, 0), U14
CLS
LINE (20, 60)-(40, 0), 3, B
PAINT (30, 20), 1, 3
LINE (20, 40)-(40, 20), 3, B
LINE (0, 20)-(20, 0), 3, B
PAINT (10, 10), 1, 3
GET (0, 60)-(40, 0), U15
CLS
LINE (20, 60)-(40, 0), 3, B
PAINT (30, 20), 1, 3
LINE (20, 40)-(40, 20), 3, B
LINE (0, 60)-(20, 40), 3, B
PAINT (10, 50), 1, 3
GET (0, 60)-(40, 0), U16
CLS
LINE (0, 40)-(60, 20), 3, B
PAINT (20, 30), 1, 3
LINE (20, 40)-(40, 20), 3, B
LINE (0, 20)-(20, 0), 3, B
PAINT (10, 10), 1, 3
GET (0, 40)-(60, 0), U17
CLS
LINE (0, 20)-(60, 0), 3, B
PAINT (20, 10), 1, 3
LINE (20, 20)-(40, 0), 3, B
LINE (40, 40)-(60, 20), 3, B
PAINT (50, 30), 1, 3
GET (0, 40)-(60, 0), U18
CLS
LINE (0, 60)-(20, 0), 3, B
PAINT (10, 20), 1, 3
LINE (0, 40)-(20, 20), 3, B
LINE (20, 20)-(40, 0), 3, B
PAINT (30, 10), 1, 3
GET (0, 60)-(40, 0), U19
CLS
LINE (0, 20)-(180, 0), 3, B
PAINT (20, 10), 1, 3
LINE (20, 20)-(40, 0), 3, B
LINE (60, 20)-(80, 0), 3, B
LINE (100, 20)-(120, 0), 3, B
LINE (140, 20)-(160, 0), 3, B
GET (0, 20)-(180, 0), ge
CLS
LINE (0, 320)-(180, 0), 3, B
LINE (0, 20)-(180, 0), 3, B
LINE (0, 60)-(180, 40), 3, B
LINE (0, 100)-(180, 80), 3, B
LINE (0, 0)-(200, 0), 3
LINE (0, 0)-(0, 100), 3



'以上是图形的定义


'EY(12) ON: KEY(13) ON: KEY(14) ON
FOR zz = 0 TO 8
X(zz) = 0
NEXT
100 RANDOMIZE TIMER
n = 4:  r! = (1 + INT(RND * 19))
' r = 2

CALL chuxian(r, a, b)
CALL zdz(r, zd, n)

FOR h = 1 TO 17
  m = 80000': KEY(12) STOP: KEY(13) STOP: KEY(14) STOP
  GOSUB 10000
  FOR k = 0 TO m: NEXT k
  GOSUB 10000': KEY(12) ON: KEY(13) ON: KEY(14) ON
  b = b - 20
  IF b <= zd THEN EXIT FOR
'  GOSUB 32000
' IF b = zi THEN EXIT FOR
' IF zd >= 300 THEN END
  ff$ = INKEY$
  IF ff$ = "j" THEN GOSUB 8000
  IF ff$ = "l" THEN GOSUB 9000
  IF ff$ = "k" THEN GOSUB 9500
  IF ff$ = "i" THEN GOSUB 30000
  DEF SEG = 0: POKE 1050, PEEK(1052)
NEXT h
GOSUB 10000

GOSUB 5000
GOSUB 7000
GOTO 100



5000 IF r = 1 THEN
           X(n) = b
           FOR w = (b - 80) / 20 TO (b - 20) / 20
           q(w, n) = 1
           NEXT w
          END IF
     IF r = 2 THEN
           X(n - 1) = b: X(n) = b: X(n + 1) = b: X(n + 2) = b
           FOR w = n - 1 TO n + 2
           q((b - 20) / 20, w) = 1
           NEXT w
           END IF
     IF r = 3 THEN
        X(n) = b: X(n + 1) = b
        FOR w = (b - 40) / 20 TO (b - 20) / 20
        FOR v = n TO n + 1
        q(w, v) = 1
        NEXT v
        NEXT w
        END IF
     IF r = 4 THEN
        X(n - 1) = b: X(n) = b - 20
        q((b - 20) / 20, n - 1) = 1
        q((b - 40) / 20, n - 1) = 1
        q((b - 40) / 20, n) = 1
        q((b - 60) / 20, n) = 1
        END IF
     IF r = 5 THEN
        X(n - 1) = b - 20: X(n) = b: X(n + 1) = b
        q((b - 40) / 20, n - 1) = 1
        q((b - 40) / 20, n) = 1
        q((b - 20) / 20, n) = 1
        q((b - 20) / 20, n + 1) = 1
        END IF
     IF r = 6 THEN
        X(n) = b - 20: X(n + 1) = b
        q((b - 20) / 20, n + 1) = 1
        q((b - 40) / 20, n) = 1
        q((b - 40) / 20, n + 1) = 1
        q((b - 60) / 20, n) = 1
        END IF
     IF r = 7 THEN
        X(n - 1) = b: X(n) = b: X(n + 1) = b - 20
        q((b - 20) / 20, n - 1) = 1
        q((b - 20) / 20, n) = 1
        q((b - 40) / 20, n) = 1
        q((b - 40) / 20, n + 1) = 1
        END IF
     IF r = 8 THEN
        X(n - 1) = b - 20: X(n) = b: X(n + 1) = b - 20
        q((b - 20) / 20, n) = 1
        q((b - 40) / 20, n - 1) = 1
        q((b - 40) / 20, n) = 1
        q((b - 40) / 20, n + 1) = 1
        END IF
     IF r = 9 THEN
        X(n - 1) = b - 20: X(n) = b
        q((b - 20) / 20, n) = 1
        q((b - 40) / 20, n - 1) = 1
        q((b - 40) / 20, n) = 1
        q((b - 60) / 20, n) = 1
        END IF
     IF r = 10 THEN
        X(n) = b: X(n + 1) = b - 20
        q((b - 20) / 20, n) = 1
        q((b - 40) / 20, n) = 1
        q((b - 40) / 20, n + 1) = 1
        q((b - 60) / 20, n) = 1
        END IF
     IF r = 11 THEN
        X(n - 1) = b: X(n) = b: X(n + 1) = b
        FOR w = n - 1 TO n + 1
        q((b - 20) / 20, w) = 1
        NEXT w
        q((b - 40) / 20, n) = 1
        END IF
     IF r = 12 THEN
        X(n) = b: X(n + 1) = b
        FOR w = (b - 60) / 20 TO (b - 20) / 20
        q(w, n) = 1
        NEXT w
        q((b - 20) / 20, n + 1) = 1
        END IF
     IF r = 13 THEN
         X(n - 1) = b: X(n) = b - 20: X(n + 1) = b - 20
         FOR w = n - 1 TO n + 1
         q((b - 40) / 20, w) = 1
         NEXT w
         q((b - 20) / 20, n - 1) = 1
         END IF
      IF r = 14 THEN
         X(n - 1) = b: X(n) = b: X(n + 1) = b
         FOR w = n - 1 TO n + 1
         q((b - 20) / 20, w) = 1
         NEXT w
         q((b - 40) / 20, n + 1) = 1
         END IF
     IF r = 15 THEN
         X(n - 1) = b - 40: X(n) = b
         FOR w = (b - 60) / 20 TO (b - 20) / 20
         q(w, n) = 1
         NEXT w
         q((b - 60) / 20, n - 1) = 1
         END IF
    IF r = 16 THEN
         X(n - 1) = b: X(n) = b
         FOR w = (b - 60) / 20 TO (b - 20) / 20
         q(w, n) = 1
         NEXT w
         q((b - 20) / 20, n - 1) = 1
         END IF
    IF r = 17 THEN
         X(n - 1) = b: X(n) = b: X(n + 1) = b
         FOR w = n - 1 TO n + 1
         q((b - 20) / 20, w) = 1
         NEXT w
         q((b - 40) / 20, n - 1) = 1
         END IF
    IF r = 18 THEN
       X(n - 1) = b - 20: X(n) = b - 20: X(n + 1) = b
       FOR w = n - 1 TO n + 1
       q((b - 40) / 20, w) = 1
       NEXT w
       q((b - 20) / 20, n + 1) = 1
       END IF
    IF r = 19 THEN
       X(n) = b: X(n + 1) = b - 40
       FOR w = (b - 60) / 20 TO (b - 20) / 20
       q(w, n) = 1
       NEXT w
       q((b - 60) / 20, n + 1) = 1
       END IF
   LOCATE 3, 30: PRINT "X("; n; ")="; X(n)

  RETURN

7000 ' 消去

     FOR s = 0 TO 14
     FOR t = 0 TO 8
     IF q(s, t) = 0 THEN 7500
     NEXT t
     j = j + 1
     ga = 0
     FOR i = 0 TO 8
     
     IF ga < X(i) THEN ga = X(i)
     IF X(i) >= 20 THEN X(i) = X(i) - 20
     NEXT i
     FOR li = s TO 14
     FOR hi = 0 TO 8

       ' q(li, hi) = q(li + 1, hi)
        NEXT hi
        NEXT li
PUT (0, (s + 1) * 20), ge
    ' ga = 280
    ' IF ga < 100 OR ga > 300 THEN 7500
     DIM xi(14 + 23 * (ga - (s + 1) * 20))
     GET (0, ga)-(180, (s + 1) * 20), xi
    PUT (0, ga), xi
     ga = ga - 20
     PUT (0, ga), xi
    s = s - 1
    ERASE xi
7500 NEXT s
     IF j = 1 THEN score = score + 100
     IF j = 2 THEN score = score + 300
     IF j = 3 THEN score = score + 500
     IF j = 4 THEN score = score + 700
     LOCATE 10, 25: PRINT "score:"; score: RETURN

     


'N KEY(12) GOSUB 8000

8000 IF a < 20 THEN RETURN
     IF n < 1 THEN RETURN ELSE n = n - 1: a = a - 20
     CALL zdz(r, zd, n)
     RETURN

'N KEY(13) GOSUB 9000
9000 IF r = 1 AND a = 160 THEN RETURN
     IF r = 2 AND a = 100 THEN RETURN
     IF r = 3 AND a = 140 THEN RETURN
     IF r = 4 AND a = 140 THEN RETURN
     IF r = 5 AND a = 120 THEN RETURN
     IF r = 6 AND a = 140 THEN RETURN
     IF r = 7 AND a = 120 THEN RETURN
     IF r = 8 AND a = 120 THEN RETURN
     IF r = 9 AND a = 140 THEN RETURN
     IF r = 10 AND a = 140 THEN RETURN
     IF r = 11 AND a = 120 THEN RETURN
     IF r = 12 AND a = 140 THEN RETURN
     IF r = 13 AND a = 120 THEN RETURN
     IF r = 14 AND a = 120 THEN RETURN
     IF r = 15 AND a = 140 THEN RETURN
     IF r = 16 AND a = 140 THEN RETURN
     IF r = 17 AND a = 120 THEN RETURN
     IF r = 18 AND a = 120 THEN RETURN
     IF r = 19 AND a = 140 THEN RETURN
     IF n = 8 THEN RETURN
     n = n + 1: a = a + 20
     CALL zdz(r, zd, n)
     RETURN

'oN KEY(14) GOSUB 9500

9500 m = 0

   RETURN

10000   IF r = 1 THEN GOSUB 20010
       
        IF r = 2 THEN GOSUB 20020
        IF r = 3 THEN GOSUB 20030
        IF r = 4 THEN GOSUB 20040
        IF r = 5 THEN GOSUB 20050
        IF r = 6 THEN GOSUB 20060
        IF r = 7 THEN GOSUB 20070
        IF r = 8 THEN GOSUB 20080
        IF r = 9 THEN GOSUB 20090
        IF r = 10 THEN GOSUB 20100
        IF r = 11 THEN GOSUB 20110
        IF r = 12 THEN GOSUB 20120
        IF r = 13 THEN GOSUB 20130
        IF r = 14 THEN GOSUB 20140
        IF r = 15 THEN GOSUB 20150
        IF r = 16 THEN GOSUB 20160
        IF r = 17 THEN GOSUB 20170
        IF r = 18 THEN GOSUB 20180
        IF r = 19 THEN GOSUB 20190
        RETURN

20010 PUT (a, b), U1
      RETURN
20020 PUT (a, b), U2
      RETURN
20030 PUT (a, b), U3
      RETURN
20040 PUT (a, b), U4
      RETURN
20050 PUT (a, b), U5
      RETURN
20060 PUT (a, b), U6
      RETURN
20070 PUT (a, b), U7
      RETURN
20080 PUT (a, b), U8
      RETURN
20090 PUT (a, b), U9
      RETURN
20100 PUT (a, b), U10
      RETURN
20110 PUT (a, b), U11
      RETURN
20120 PUT (a, b), U12
      RETURN
20130 PUT (a, b), U13
      RETURN
20140 PUT (a, b), U14
      RETURN
20150 PUT (a, b), U15
      RETURN
20160 PUT (a, b), U16
      RETURN
20170 PUT (a, b), U17
      RETURN
20180 PUT (a, b), U18
      RETURN
20190 PUT (a, b), U19
      RETURN

30000  IF r = 1 THEN
          IF n = 0 THEN b = b - 40: n = 1: r = 2: GOTO 31000
          IF n = 7 THEN a = a - 40: b = b - 40: n = 6: r = 2: GOTO 31000
          IF n = 8 THEN a = a - 60: b = b - 40: n = 6: r = 2: GOTO 31000
          a = a - 20: b = b - 40: GOTO 31000
        END IF
       IF r = 2 THEN r = 1: a = a + 20: b = b + 40: GOTO 31000
       IF r = 4 THEN
          IF n = 8 THEN a = a - 20: b = b - 20: n = 7: r = 5: GOTO 31000
          b = b - 20: r = 5: GOTO 31000
        END IF
      IF r = 5 THEN r = 4: b = b + 20: GOTO 31000
      IF r = 6 THEN
         IF n = 0 THEN b = b - 20: n = 1: r = 7: GOTO 31000
         a = a - 20: b = b - 20: r = 7: GOTO 31000
        END IF
      IF r = 7 THEN r = 6: a = a + 20: b = b + 20: GOTO 31000
      IF r = 8 THEN r = 9: GOTO 31000
      IF r = 9 THEN r = 11: b = b - 20: GOTO 31000
      IF r = 10 THEN r = 8: a = a - 20: GOTO 31000
      IF r = 11 THEN r = 10: a = a + 20: b = b + 20: GOTO 31000
      IF r = 12 THEN
          IF n = 0 THEN b = b - 20: n = 1: r = 14: GOTO 31000
          a = a - 20: b = b - 20: r = 14: GOTO 31000
        END IF
      IF r = 13 THEN r = 12: a = a + 20: b = b + 20: GOTO 31000
      IF r = 14 THEN r = 15: b = b + 20: GOTO 31000
      IF r = 15 THEN
          IF n = 8 THEN a = a - 20: b = b - 20: n = 7: r = 13: GOTO 31000
          b = b - 20: r = 13: GOTO 31000
         END IF

      IF r = 16 THEN
         IF n = 8 THEN a = a - 20: b = b - 20: n = 7: r = 18: GOTO 31000
        r = 18: b = b - 20: GOTO 31000
        END IF

      IF r = 17 THEN r = 16: b = b + 20: GOTO 31000
      IF r = 18 THEN r = 19: a = a + 20: b = b + 20: GOTO 31000
      IF r = 19 THEN
          IF n = 0 THEN b = b - 20: n = 1: rf = 17: GOTO 31000
          r = 17: a = a - 20: b = b - 20: GOTO 31000
          END IF
31000 CALL zdz(r, zd, n)
      GOSUB 32000
      RETURN








32000 IF r = 1 THEN zi = 80
      IF r = 2 THEN zi = 20
      IF r = 3 THEN zi = 40
      IF r = 4 THEN zi = 60
      IF r = 5 THEN zi = 40
      IF r = 6 THEN zi = 60
      IF r = 7 THEN zi = 40
      IF r = 8 THEN zi = 40
      IF r = 9 THEN zi = 60
      IF r = 10 THEN zi = 60
      IF r = 11 THEN zi = 40
      IF r = 12 THEN zi = 60
      IF r = 13 THEN zi = 40
      IF r = 14 THEN zi = 40
      IF r = 15 THEN zi = 60
      IF r = 16 THEN zi = 60
      IF r = 17 THEN zi = 40
      IF r = 18 THEN zi = 40
      IF r = 19 THEN zi = 60
      RETURN

SUB chuxian (r, a, b)
IF r = 2 THEN a = 60: b = 300
  IF r = 1 OR r = 19 THEN a = 80: b = 340
  IF r = 3 OR r = 6 OR r = 10 OR r = 12 THEN a = 80: b = 320
  IF r = 4 THEN a = 80: b = 340: n = 5
  IF r = 5 OR r = 7 OR r = 8 OR r = 9 OR r = 11 OR r = 13 OR r = 14 OR r = 16 OR r = 17 OR r = 18 THEN a = 60: b = 320
  IF r = 15 THEN a = 60: b = 340
   

END SUB

SUB zdz (r, zd, n)
  ON r GOSUB p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19
  GOTO p20


p1: zd = X(n) + 80: RETURN

p2:
     v = 0
     FOR w = n - 1 TO n + 2
     IF v < X(w) THEN v = X(w)
     NEXT w
     zd = v + 20
     RETURN

p3: IF X(n) >= X(n + 1) THEN zd = X(n) + 40 ELSE zd = X(n + 1) + 40: RETURN

p4: IF X(n - 1) > X(n) THEN zd = X(n - 1) + 40 ELSE zd = X(n) + 60: RETURN

p5:
     IF X(n + 1) > X(n) AND X(n + 1) > X(n - 1) THEN zd = X(n + 1) + 20: RETURN
     IF X(n) >= X(n + 1) AND X(n) >= X(n - 1) THEN zd = X(n) + 40 ELSE zd = X(n - 1) + 40
     RETURN

p6: IF X(n + 1) > X(n) THEN zd = X(n + 1) + 40 ELSE zd = X(n) + 60: RETURN

p7:
     IF X(n - 1) > X(n) AND X(n - 1) > X(n + 1) THEN zd = X(n - 1) + 20: RETURN
     IF X(n) >= X(n - 1) AND X(n) >= X(n + 1) THEN zd = X(n) + 40 ELSE zd = X(n + 1) + 40
     RETURN

p8:
     v = 0
     FOR w = n - 1 TO n + 1
     IF v < X(w) THEN v = X(w)
     NEXT w
     zd = v + 40
      RETURN

p9: IF X(n - 1) > X(n) THEN zd = X(n - 1) + 40 ELSE zd = X(n) + 60: RETURN

p10: IF X(n + 1) > X(n) THEN zd = X(n + 1) + 40 ELSE zd = X(n) + 60: RETURN

p11:
      IF X(n - 1) > X(n) AND X(n - 1) >= X(n + 1) THEN zd = X(n - 1) + 20: RETURN
      IF X(n) >= X(n - 1) AND X(n) >= X(n + 1) THEN zd = X(n) + 40 ELSE zd = X(n + 1) + 20
      RETURN

p12: IF X(n + 1) - X(n) >= 40 THEN zd = X(n + 1) + 20 ELSE zd = X(n) + 60: RETURN

p13:
     v = 0
     FOR w = n - 1 TO n + 1
     IF v < X(w) THEN v = X(w)
     NEXT w
     zd = v + 40
     RETURN
p14:            
       IF (X(n - 1) - X(n + 1)) >= 40 AND X(n - 1) >= X(n) THEN
              zd = X(n - 1) + 20
       ELSEIF (X(n) - X(n + 1)) >= 40 AND X(n) >= X(n - 1) THEN
          zd = X(n) + 20
       ELSE
         zd = X(n + 1) + 40
       END IF: RETURN
p15: IF X(n - 1) >= X(n) THEN zd = X(n - 1) + 60 ELSE zd = X(n) + 60: RETURN
p16: IF X(n - 1) - X(n) >= 40 THEN zd = X(n - 1) + 20 ELSE zd = X(n) + 60: RETURN

p17:              
     IF X(n + 1) - X(n - 1) >= 40 AND X(n + 1) >= X(n) THEN zd = X(n + 1) + 20: RETURN
     IF X(n) - X(n - 1) >= 40 AND X(n) >= X(n + 1) THEN zd = X(n) + 20 ELSE zd = X(n - 1) + 40
     RETURN
p18:            
      v = 0
      FOR w = n - 1 TO n + 1
      IF v < X(w) THEN v = X(w)
      NEXT w
      zd = v + 40
      RETURN
p19:  IF X(n) >= X(n + 1) THEN zd = X(n) + 60 ELSE zd = X(n + 1) + 60: RETURN

p20:  LOCATE 2, 20: PRINT " ": LOCATE 2, 20: PRINT "zd="; zd, "x("; n; ")="; X(n)
  LOCATE 2, 10: PRINT b

END SUB
====================================================

回复列表 (共8个回复)

沙发

等代码到手 贴出来看看

板凳

自己顶下。谁来完成我未完成的梦想。

3 楼

对了,J,L是左右方向,K是变形。

4 楼

这样的程序,
要把它优化也得不少时间.

这样的效果,修改也浪费力气
还不如让飞鸟重新写一个出来,

5 楼

哈哈,那时候很菜。

6 楼

moz倒是会撂挑子,程序中有那么多的GOTO GOSUB 让人怎么上手

7 楼

哈哈,我的意思是医好都浪费药费了
就是叫你不要去改了,
另外凭你自己的想法写一个新的出来就是了,呵呵

8 楼

好象不好变形

我来回复

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