回 帖 发 新 帖 刷新版面

主题:[原创]会变色的图形(游戏)

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                                                  *****************        
                                                        |Matodied     游戏|
                                                        |[size=6][color=FF0000][b]Matodied[/b][/color][/size] |
                                                        |版权所有 严禁抄袭|
                                                         *****************   

回复列表 (共8个回复)

沙发

呵呵

板凳

颜色闪的也太快了吧?!

3 楼

游戏输入到QBASIC里面后怎么玩

4 楼

发表时间:2007-5-15 20:53:00    [回复]  

楼主
介绍一下规则:
(1)载入完成后,在上方会出现一个正方形,默认颜色是蓝色。下面是一个圆形,不断变色,你可以按“123456789ABCDEF”中的任意一个键来改变正方形的颜色,按“K”键是攻击。攻击时,如果你的正方形颜色和圆形颜色相同,就算攻击成功,否则攻击失败。
(2)你每攻击成功一次,都会获得3个子弹,每攻击失败一次则要减去一个子弹。刚开始你有20个子弹,如果你的子弹数达到40,就算赢了,如果没有子弹了就死了。可以在屏幕左上角看到你目前的子弹数。
代码:
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

5 楼

直接按"F5"就可以了.

6 楼

怎么不能复制啊?一复制就不能运行(把我的帖子打个分)

7 楼

玩过后如何退出?

8 楼


[em10]不好玩[em23][em61][em70][em27]

我来回复

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