主题:[原创]双人坦克
问题大多解决了
修改后的
DECLARE SUB ankey2 (j3!, j4!, ke)
DECLARE SUB htu (b1!, b2!, b3!, b4!)
DECLARE SUB ankey1 (j1, j2, ke)
SCREEN 12
COLOR 5
LOCATE 1, 57: PRINT "IGDX tank - II"
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DIM SHARED t1s(120), t2x(120), t3z(120), t4y(120)
't1 shang---------------
LINE (0, 0)-(27, 27), 0, BF
LINE (7, 11)-(21, 25), 7, BF
LINE (13, 2)-(15, 12), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (7, 11 + i)-(9, 11 + i), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (19, 11 + i)-(21, 11 + i), 0
NEXT
GET (0, 0)-(27, 27), t1s
't2 xia------------
LINE (0, 0)-(27, 27), 0, BF
LINE (7, 2)-(21, 16), 7, BF
LINE (13, 15)-(15, 25), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (7, 2 + i)-(9, 2 + i), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (19, 2 + i)-(21, 2 + i), 0
NEXT
GET (0, 0)-(27, 27), t2x
't3 zuo---------
LINE (0, 0)-(27, 27), 0, BF
LINE (11, 7)-(25, 21), 7, BF
LINE (2, 13)-(12, 15), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (11 + i, 7)-(11 + i, 9), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (11 + i, 19)-(11 + i, 21), 0
NEXT
GET (0, 0)-(27, 27), t3z
't4 --------------------
LINE (0, 0)-(27, 27), 0, BF
LINE (2, 7)-(16, 21), 7, BF
LINE (15, 13)-(25, 15), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (2 + i, 7)-(2 + i, 9), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (2 + i, 19)-(2 + i, 29), 0
NEXT
GET (0, 0)-(27, 27), t4y
LINE (0, 0)-(27, 27), 0, BF
'---------------
DIM SHARED tu%(20, 14)
FOR i = 1 TO 14
FOR j = 1 TO 20
READ tus
tu%(j, i) = tus
NEXT j, i
'hua tu --------------
FOR i = 1 TO 14
FOR j = 1 TO 20
IF tu%(j, i) = 1 THEN
CALL htu(j * 28, i * 28, j * 28 + 28, i * 28 + 28)
END IF
NEXT j, i
'----------------
PUT (8 * 28, 13 * 28), t1s
PUT (12 * 28, 13 * 28), t1s
DO: LOOP UNTIL INKEY$ <> ""
PUT (8 * 28, 13 * 28), t1s
PUT (12 * 28, 13 * 28), t1s
'main()-----------------
DIM SHARED a1, a2, a3, a4, a, w, s, j1, j2, j3, j4, aa2, ww2, dd2, ss2, sc1
DIM SHARED d, up, left, et, sp, down, right, aa1, ww1, dd1, ss1, k1, k2, sc2
j1 = 12: j2 = 13: j3 = 8: j4 = 13
a1 = 12: a2 = 13: a3 = 8: a4 = 13
PUT (8 * 28, 13 * 28), t1s
PUT (12 * 28, 13 * 28), t1s
'-----main-----
DO
ke = INP(&H60)
CALL ankey1(j1, j2, ke)
CALL ankey2(j3, j4, ke)
LOOP
SUB ankey1 (j1, j2, ke)
'ankey1----------------
SELECT CASE ke
CASE 28
et = 28: up = 72 + 128: left = 75 + 128: down = 80 + 128: right = 77 + 128
CASE 28 + 128
et = 28 + 128
CASE 72
up = 72: et = 28 + 128: left = 75 + 128: down = 80 + 128: right = 77 + 128
CASE 72 + 128
up = 72 + 128
CASE 75
left = 75: up = 72 + 128: et = 28 + 128: down = 80 + 128: right = 77 + 128
CASE 75 + 128
left = 75 + 128
CASE 80
down = 80: up = 72 + 128: et = 28 + 128: left = 75 + 128: right = 77 + 128
CASE 80 + 128
down = 80 + 128
CASE 77
right = 77: up = 72 + 128: et = 28 + 128: left = 75 + 128: down = 80 + 128
CASE 77 + 128
right = 77 + 128
CASE 1
END
END SELECT
'-----------------------
修改后的
DECLARE SUB ankey2 (j3!, j4!, ke)
DECLARE SUB htu (b1!, b2!, b3!, b4!)
DECLARE SUB ankey1 (j1, j2, ke)
SCREEN 12
COLOR 5
LOCATE 1, 57: PRINT "IGDX tank - II"
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1
DATA 1,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,1,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DIM SHARED t1s(120), t2x(120), t3z(120), t4y(120)
't1 shang---------------
LINE (0, 0)-(27, 27), 0, BF
LINE (7, 11)-(21, 25), 7, BF
LINE (13, 2)-(15, 12), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (7, 11 + i)-(9, 11 + i), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (19, 11 + i)-(21, 11 + i), 0
NEXT
GET (0, 0)-(27, 27), t1s
't2 xia------------
LINE (0, 0)-(27, 27), 0, BF
LINE (7, 2)-(21, 16), 7, BF
LINE (13, 15)-(15, 25), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (7, 2 + i)-(9, 2 + i), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (19, 2 + i)-(21, 2 + i), 0
NEXT
GET (0, 0)-(27, 27), t2x
't3 zuo---------
LINE (0, 0)-(27, 27), 0, BF
LINE (11, 7)-(25, 21), 7, BF
LINE (2, 13)-(12, 15), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (11 + i, 7)-(11 + i, 9), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (11 + i, 19)-(11 + i, 21), 0
NEXT
GET (0, 0)-(27, 27), t3z
't4 --------------------
LINE (0, 0)-(27, 27), 0, BF
LINE (2, 7)-(16, 21), 7, BF
LINE (15, 13)-(25, 15), 7, BF
FOR i = 2 TO 12 STEP 2
LINE (2 + i, 7)-(2 + i, 9), 0
NEXT
FOR i = 2 TO 12 STEP 2
LINE (2 + i, 19)-(2 + i, 29), 0
NEXT
GET (0, 0)-(27, 27), t4y
LINE (0, 0)-(27, 27), 0, BF
'---------------
DIM SHARED tu%(20, 14)
FOR i = 1 TO 14
FOR j = 1 TO 20
READ tus
tu%(j, i) = tus
NEXT j, i
'hua tu --------------
FOR i = 1 TO 14
FOR j = 1 TO 20
IF tu%(j, i) = 1 THEN
CALL htu(j * 28, i * 28, j * 28 + 28, i * 28 + 28)
END IF
NEXT j, i
'----------------
PUT (8 * 28, 13 * 28), t1s
PUT (12 * 28, 13 * 28), t1s
DO: LOOP UNTIL INKEY$ <> ""
PUT (8 * 28, 13 * 28), t1s
PUT (12 * 28, 13 * 28), t1s
'main()-----------------
DIM SHARED a1, a2, a3, a4, a, w, s, j1, j2, j3, j4, aa2, ww2, dd2, ss2, sc1
DIM SHARED d, up, left, et, sp, down, right, aa1, ww1, dd1, ss1, k1, k2, sc2
j1 = 12: j2 = 13: j3 = 8: j4 = 13
a1 = 12: a2 = 13: a3 = 8: a4 = 13
PUT (8 * 28, 13 * 28), t1s
PUT (12 * 28, 13 * 28), t1s
'-----main-----
DO
ke = INP(&H60)
CALL ankey1(j1, j2, ke)
CALL ankey2(j3, j4, ke)
LOOP
SUB ankey1 (j1, j2, ke)
'ankey1----------------
SELECT CASE ke
CASE 28
et = 28: up = 72 + 128: left = 75 + 128: down = 80 + 128: right = 77 + 128
CASE 28 + 128
et = 28 + 128
CASE 72
up = 72: et = 28 + 128: left = 75 + 128: down = 80 + 128: right = 77 + 128
CASE 72 + 128
up = 72 + 128
CASE 75
left = 75: up = 72 + 128: et = 28 + 128: down = 80 + 128: right = 77 + 128
CASE 75 + 128
left = 75 + 128
CASE 80
down = 80: up = 72 + 128: et = 28 + 128: left = 75 + 128: right = 77 + 128
CASE 80 + 128
down = 80 + 128
CASE 77
right = 77: up = 72 + 128: et = 28 + 128: left = 75 + 128: down = 80 + 128
CASE 77 + 128
right = 77 + 128
CASE 1
END
END SELECT
'-----------------------