主题:[讨论]QB问题
qweqaz
[专家分:30] 发布于 2007-07-27 09:38:00
谁告诉我些游戏???????????????????
回复列表 (共11个回复)
沙发
剑圣风暴 [专家分:450] 发布于 2007-07-27 11:53:00
CLS
RANDOMIZE TIMER
w = 20: h = 20
DIM a(w + 1, h + 1)
CLS : SCREEN 0, 1: WIDTH 40, 25
LOCATE 5, 13: PRINT "Welcome to Maze"
DO: LOOP WHILE INKEY$ = ""
CLS
FOR y = 1 TO h
FOR x = 1 TO w
a(x, y) = SGN(INT(RND * 6) - 5) + 1
IF a(x, y) = 1 THEN PRINT "0"; : ELSE PRINT " ";
NEXT x
PRINT
NEXT y
a(5, 10) = 2
a(15, 15) = 3
a(12, 4) = -1
m = 5: n = 10
o = 15: p = 15
DO
CLS
IF k$ = CHR$(0) + "K" AND a(m - 1, n) <= 0 AND m > 1 THEN a(m - 1, n) = 2: a(m, n) = 0: m = m - 1
IF k$ = CHR$(0) + "M" AND a(m + 1, n) <= 0 AND m < w THEN a(m + 1, n) = 2: a(m, n) = 0: m = m + 1
IF k$ = CHR$(0) + "H" AND a(m, n - 1) <= 0 AND n > 1 THEN a(m, n - 1) = 2: a(m, n) = 0: n = n - 1
IF k$ = CHR$(0) + "P" AND a(m, n + 1) <= 0 AND n < h THEN a(m, n + 1) = 2: a(m, n) = 0: n = n + 1
IF m = 12 AND n = 4 THEN END
u = INT(RND * 4)
IF u = 0 AND a(o - 1, p) = 0 AND o > 1 THEN a(o - 1, p) = 3: a(o, p) = 0: o = o - 1
IF u = 1 AND a(o + 1, p) = 0 AND o < w THEN a(o + 1, p) = 3: a(o, p) = 0: o = o + 1
IF u = 2 AND a(o, p - 1) = 0 AND p > 1 THEN a(o, p - 1) = 3: a(o, p) = 0: p = p - 1
IF u = 3 AND a(o, p + 1) = 0 AND p < h THEN a(o, p + 1) = 3: a(o, p) = 0: p = p + 1
FOR y = 1 TO h
FOR x = 1 TO w
IF a(x, y) = 1 THEN COLOR 2: PRINT CHR$(5);
IF a(x, y) = 0 THEN PRINT " ";
IF a(x, y) = 2 THEN COLOR 7: PRINT CHR$(1);
IF a(x, y) = 3 THEN COLOR 5: PRINT CHR$(2);
IF a(x, y) = -1 THEN COLOR INT(RND * 15) + 16: PRINT CHR$(127);
NEXT x
PRINT
NEXT y
FOR dly = 1 TO 1000: NEXT dly
DO
k$ = INKEY$
LOOP UNTIL k$ <> ""
LOOP UNTIL k$ = CHR$(27)
板凳
剑圣风暴 [专家分:450] 发布于 2007-07-27 11:54:00
DECLARE SUB changecolor (c!, t!)
DECLARE SUB win ()
DECLARE SUB lose ()
DIM SHARED circlecolor0, squarecolor0
CLS
SCREEN 12
bomb = 20
LOCATE 13, 30: PRINT "Loading..."
FOR i = 1 TO 1000000: NEXT i: CLS
squarecolor = 1: circlecolor = 1
LOCATE 1, 1: PRINT "bomb:"; bomb
LINE (270, 20)-(320, 70), squarecolor, BF
CIRCLE (300, 400), 30, circlecolor
PAINT (300, 400), circlecolor
DO
FOR i = 1 TO 300000: NEXT i
CALL changecolor(1, INT(RND * 15) + 1)
d$ = INKEY$: d$ = UCASE$(d$)
IF d$ >= "1" AND d$ <= "9" OR d$ >= "A" AND d$ <= "F" THEN
f = INSTR("123456789ABCDEF", d$)
CALL changecolor(2, f)
LINE (270, 20)-(320, 70), squarecolor0, BF
squarecolor = squarecolor0
ELSEIF d$ = "K" THEN
LOCATE 13, 10: PRINT "Square"; squarecolor; "VS circle"; circlecolor;
IF squarecolor = circlecolor THEN
PRINT "--> Success!"
bomb = bomb + 3
IF bomb >= 40 THEN CALL win
ELSE
PRINT "--> Fail!"
bomb = bomb - 1
IF bomb = 0 THEN CALL lose
END IF
k$ = INPUT$(1)
LOCATE 13, 10: PRINT " "
LOCATE 1, 1: PRINT "bomb:"; bomb
END IF
CIRCLE (300, 400), 30, circlecolor0
PAINT (300, 400), circlecolor0
circlecolor = circlecolor0
LOOP
END
SUB changecolor (c, t)
IF c = 1 THEN
CIRCLE (300, 400), 30, 0
PAINT (300, 400), 0
circlecolor0 = t
ELSE
LINE (270, 20)-(320, 70), 0, BF
squarecolor0 = t
END IF
END SUB
SUB lose
CLS
LOCATE 5, 5: PRINT "You lose!"
END
END SUB
SUB win
CLS
LOCATE 5, 5: PRINT "You win!"
END
END SUB
3 楼
剑圣风暴 [专家分:450] 发布于 2007-07-27 11:54:00
CLS
RANDOMIZE TIMER
SCREEN 12
1 INPUT "Input level:"; level
IF level < 1 OR level > 5 OR level <> INT(level) THEN LOCATE 1, 1: GOTO 1
CLS
COLOR 4: LOCATE 4, 35: PRINT "level"; level
SLEEP 5
CLS
LINE (100, 100)-(200, 250), 14, BF
LINE (275, 100)-(375, 250), 14, BF
LINE (450, 100)-(550, 250), 14, BF
s1 = INT(RND * 9) + 2: s2 = INT(RND * 3) + 1
COLOR 7: DIM s(3)
FOR i = 1 TO 3
LOCATE 8, 13 + (i - 1) * 22
IF i = s2 THEN PRINT " A ": s(i) = 1 ELSE PRINT s1: s(i) = s1
NEXT i
SLEEP 3
m = 0
CLS
DO
LINE (100, 100)-(200, 250), 14, BF
LINE (275, 100)-(375, 250), 14, BF
LINE (450, 100)-(550, 250), 14, BF
k1 = INT(RND * 3) + 1
2 k2 = INT(RND * 3) + 1
IF k2 = k1 THEN 2
FOR i = 1 TO 3
IF i = k1 OR i = k2 THEN
LINE (100 + (i - 1) * 175, 100)-(200 + (i - 1) * 175, 250), 4, BF
END IF
NEXT i
SLEEP 1
CLS
LINE (100, 100)-(200, 250), 14, BF
LINE (275, 100)-(375, 250), 14, BF
LINE (450, 100)-(550, 250), 14, BF
FOR i = 1 TO (6 - level) * 75000: NEXT i
SWAP s(k1), s(k2)
m = m + 1
LOOP UNTIL m = 5 + level * 2
CLS
INPUT "Input 'A' situation:"; s
f = 1
FOR i = 1 TO 3
IF s(i) = 1 AND i = s THEN PRINT "Right!": f = 0: EXIT FOR
NEXT i
IF f THEN
PRINT "Wrong!Right is";
FOR i = 1 TO 3
IF s(i) = 1 THEN PRINT i
NEXT i
END IF
END
4 楼
Matodied [专家分:7560] 发布于 2007-07-27 13:28:00
2楼、3楼抄我的。
其实2、3楼的游戏都是我写的。
地址:
[url]http://www.programfan.com/club/post-244125.html[/url]
[url]http://www.programfan.com/club/post-232327.html[/url]
5 楼
moz [专家分:37620] 发布于 2007-07-27 14:16:00
抄袭成风,唉.
6 楼
wzc1996 [专家分:1680] 发布于 2007-07-28 08:21:00
http://www.programfan.com/club/post-244125.html
http://www.programfan.com/club/post-232327.html
7 楼
wzc1996 [专家分:1680] 发布于 2007-07-28 08:21:00
CLS
RANDOMIZE TIMER
w = 20: h = 20
DIM a(w + 1, h + 1)
CLS : SCREEN 0, 1: WIDTH 40, 25
LOCATE 5, 13: PRINT "Welcome to Maze"
DO: LOOP WHILE INKEY$ = ""
CLS
FOR y = 1 TO h
FOR x = 1 TO w
a(x, y) = SGN(INT(RND * 6) - 5) + 1
IF a(x, y) = 1 THEN PRINT "0"; : ELSE PRINT " ";
NEXT x
PRINT
NEXT y
a(5, 10) = 2
a(15, 15) = 3
a(12, 4) = -1
m = 5: n = 10
o = 15: p = 15
DO
CLS
IF k$ = CHR$(0) + "K" AND a(m - 1, n) <= 0 AND m > 1 THEN a(m - 1, n) = 2: a(m, n) = 0: m = m - 1
IF k$ = CHR$(0) + "M" AND a(m + 1, n) <= 0 AND m < w THEN a(m + 1, n) = 2: a(m, n) = 0: m = m + 1
IF k$ = CHR$(0) + "H" AND a(m, n - 1) <= 0 AND n > 1 THEN a(m, n - 1) = 2: a(m, n) = 0: n = n - 1
IF k$ = CHR$(0) + "P" AND a(m, n + 1) <= 0 AND n < h THEN a(m, n + 1) = 2: a(m, n) = 0: n = n + 1
IF m = 12 AND n = 4 THEN END
u = INT(RND * 4)
IF u = 0 AND a(o - 1, p) = 0 AND o > 1 THEN a(o - 1, p) = 3: a(o, p) = 0: o = o - 1
IF u = 1 AND a(o + 1, p) = 0 AND o < w THEN a(o + 1, p) = 3: a(o, p) = 0: o = o + 1
IF u = 2 AND a(o, p - 1) = 0 AND p > 1 THEN a(o, p - 1) = 3: a(o, p) = 0: p = p - 1
IF u = 3 AND a(o, p + 1) = 0 AND p < h THEN a(o, p + 1) = 3: a(o, p) = 0: p = p + 1
FOR y = 1 TO h
FOR x = 1 TO w
IF a(x, y) = 1 THEN COLOR 2: PRINT CHR$(5);
IF a(x, y) = 0 THEN PRINT " ";
IF a(x, y) = 2 THEN COLOR 7: PRINT CHR$(1);
IF a(x, y) = 3 THEN COLOR 5: PRINT CHR$(2);
IF a(x, y) = -1 THEN COLOR INT(RND * 15) + 16: PRINT CHR$(127);
NEXT x
PRINT
NEXT y
FOR dly = 1 TO 1000: NEXT dly
DO
k$ = INKEY$
LOOP UNTIL k$ <> ""
LOOP UNTIL k$ = CHR$(27)
8 楼
wzc1996 [专家分:1680] 发布于 2007-07-28 08:22:00
DECLARE SUB changecolor (c!, t!)
DECLARE SUB win ()
DECLARE SUB lose ()
DIM SHARED circlecolor0, squarecolor0
CLS
SCREEN 12
bomb = 20
LOCATE 13, 30: PRINT "Loading..."
FOR i = 1 TO 1000000: NEXT i: CLS
squarecolor = 1: circlecolor = 1
LOCATE 1, 1: PRINT "bomb:"; bomb
LINE (270, 20)-(320, 70), squarecolor, BF
CIRCLE (300, 400), 30, circlecolor
PAINT (300, 400), circlecolor
DO
FOR i = 1 TO 300000: NEXT i
CALL changecolor(1, INT(RND * 15) + 1)
d$ = INKEY$: d$ = UCASE$(d$)
IF d$ >= "1" AND d$ <= "9" OR d$ >= "A" AND d$ <= "F" THEN
f = INSTR("123456789ABCDEF", d$)
CALL changecolor(2, f)
LINE (270, 20)-(320, 70), squarecolor0, BF
squarecolor = squarecolor0
ELSEIF d$ = "K" THEN
LOCATE 13, 10: PRINT "Square"; squarecolor; "VS circle"; circlecolor;
IF squarecolor = circlecolor THEN
PRINT "--> Success!"
bomb = bomb + 3
IF bomb >= 40 THEN CALL win
ELSE
PRINT "--> Fail!"
bomb = bomb - 1
IF bomb = 0 THEN CALL lose
END IF
k$ = INPUT$(1)
LOCATE 13, 10: PRINT " "
LOCATE 1, 1: PRINT "bomb:"; bomb
END IF
CIRCLE (300, 400), 30, circlecolor0
PAINT (300, 400), circlecolor0
circlecolor = circlecolor0
LOOP
END
SUB changecolor (c, t)
IF c = 1 THEN
CIRCLE (300, 400), 30, 0
PAINT (300, 400), 0
circlecolor0 = t
ELSE
LINE (270, 20)-(320, 70), 0, BF
squarecolor0 = t
END IF
END SUB
SUB lose
CLS
LOCATE 5, 5: PRINT "You lose!"
END
END SUB
SUB win
CLS
LOCATE 5, 5: PRINT "You win!"
END
END SUB
9 楼
wzc1996 [专家分:1680] 发布于 2007-07-28 08:22:00
CLS
RANDOMIZE TIMER
SCREEN 12
1 INPUT "Input level:"; level
IF level < 1 OR level > 5 OR level <> INT(level) THEN LOCATE 1, 1: GOTO 1
CLS
COLOR 4: LOCATE 4, 35: PRINT "level"; level
SLEEP 5
CLS
LINE (100, 100)-(200, 250), 14, BF
LINE (275, 100)-(375, 250), 14, BF
LINE (450, 100)-(550, 250), 14, BF
s1 = INT(RND * 9) + 2: s2 = INT(RND * 3) + 1
COLOR 7: DIM s(3)
FOR i = 1 TO 3
LOCATE 8, 13 + (i - 1) * 22
IF i = s2 THEN PRINT " A ": s(i) = 1 ELSE PRINT s1: s(i) = s1
NEXT i
SLEEP 3
m = 0
CLS
DO
LINE (100, 100)-(200, 250), 14, BF
LINE (275, 100)-(375, 250), 14, BF
LINE (450, 100)-(550, 250), 14, BF
k1 = INT(RND * 3) + 1
2 k2 = INT(RND * 3) + 1
IF k2 = k1 THEN 2
FOR i = 1 TO 3
IF i = k1 OR i = k2 THEN
LINE (100 + (i - 1) * 175, 100)-(200 + (i - 1) * 175, 250), 4, BF
END IF
NEXT i
SLEEP 1
CLS
LINE (100, 100)-(200, 250), 14, BF
LINE (275, 100)-(375, 250), 14, BF
LINE (450, 100)-(550, 250), 14, BF
FOR i = 1 TO (6 - level) * 75000: NEXT i
SWAP s(k1), s(k2)
m = m + 1
LOOP UNTIL m = 5 + level * 2
CLS
INPUT "Input 'A' situation:"; s
f = 1
FOR i = 1 TO 3
IF s(i) = 1 AND i = s THEN PRINT "Right!": f = 0: EXIT FOR
NEXT i
IF f THEN
PRINT "Wrong!Right is";
FOR i = 1 TO 3
IF s(i) = 1 THEN PRINT i
NEXT i
END IF
END
10 楼
yfyf [专家分:440] 发布于 2007-08-01 18:30:00
http://www.programfan.com/club/post-213515.html
http://www.programfan.com/club/post-219227.html
我来回复