要QBASIC GAME 快

作者&投稿:秦郑 (若有异议请与网页底部的电邮联系)
qbasic 编小游戏~

猜拳游戏
3633 CLS
INPUT "How many?", cc
IF cc MOD 2 = 0 THEN 333
dd = cc \ 2 + 1
CLS
RANDOMIZE TIMER
PRINT "1:ROCK", "2:SISSOR", "3:PAPER"
DO UNTIL x = dd OR y = dd
i = INT(RND * 3)
SELECT CASE i
CASE 0
a$ = "r"
CASE 1
a$ = "s"
CASE 2
a$ = "p"
END SELECT
DO UNTIL c$ = "1" OR c$ = "2" OR c$ = "3"
c$ = INKEY$
LOOP
SELECT CASE c$
CASE "1"
b$ = "r"
CASE "2"
b$ = "s"
CASE "3"
b$ = "p"
END SELECT
c$ = ""
IF a$ = b$ THEN
PRINT "TIE",
ELSEIF a$ = "r" AND b$ = "s" THEN
PRINT "FAILED", : x = x + 1
ELSEIF a$ = "s" AND b$ = "p" THEN
PRINT "FAILED", : x = x + 1
ELSEIF a$ = "p" AND b$ = "r" THEN
PRINT "FAILED", : x = x + 1
ELSEIF (a$ = "r" AND b$ = "p") OR (a$ = "p" AND b$ = "s") OR (a$ = "s" AND b$ = "r") THEN
PRINT "WIN", : y = y + 1
END IF
IF a$ = "r" THEN
a$ = "ROCK"
ELSEIF a$ = "s" THEN
a$ = "SISSOR"
ELSE
a$ = "PAPER"
END IF
IF b$ = "r" THEN
b$ = "ROCK"
ELSEIF b$ = "s" THEN
b$ = "SISSOR"
ELSE
b$ = "PAPER"
END IF
PRINT "You:"; b$,
PRINT "Com:"; a$
LOOP
PRINT y; ":"; x
IF x = dd THEN
PRINT "You lose"
ELSEIF y = dd THEN
PRINT "You win"
END IF
PRINT TAB(30); :PRINT "Do you want to play again?"
PRINT TAB(30); : PRINT "1:YES 3:NO"
DO UNTIL g$ = "1" OR g$ = "3"
g$ = INKEY$
IF g$ = "1" THEN
g$ = "": x = 0: y = 0: GOTO 333
ELSEIF g$ = "3" THEN
END
END IF
LOOP

游戏程序未编过,但根据游戏的玩法来看,用QBASIC做游戏应遵循游戏细节,设置一些节点,运用顺序,循环,选择,键盘和鼠标事件的判断,陷阱,声音,画图和动画等QBASIC语句来实现的,在DOS系统下实现游戏过程.写QBAISC代码时也要重视程序的结构化原则,少用GOTO语句.

  你想要多少
  赛车
  DECLARE SUB showcar (row!, col!, c!)
  DECLARE SUB Win ()
  DECLARE SUB MoveZ ()
  DECLARE SUB MoveM (md!)
  DECLARE SUB Lose ()

  CONST R0 = 3, C0 = 30, S0 = 12
  CONST Left = -1, Right = 1
  CONST KeyUp = 72, KeyDown = 80, KeyLeft = 75, KeyRight = 77
  CONST KeySpace = 57, KeyEnter = 28, KeyEsc = 1

  TYPE cartype
  row AS INTEGER
  col AS INTEGER
  END TYPE

  DIM SHARED car(0 TO 3) AS cartype
  DIM SHARED state(127) AS INTEGER
  DIM SHARED BasePtr(0 TO 18) AS INTEGER
  DIM SHARED shape(0 TO 4, 0 TO 2) AS INTEGER
  DIM SHARED mrow, mcol, count

  CLS
  RANDOMIZE TIMER
  REM
  fk$ = "[][][][][][][][][][]"
  COLOR 11
  LOCATE R0 - 1, C0 + 1: PRINT CHR$(201) + STRING$(20, 205) + CHR$(187)
  LOCATE R0, C0 + 1: PRINT CHR$(186); SPC(20); CHR$(186)
  FOR row = 1 TO 18
  LOCATE R0 + row, C0 + 1: PRINT CHR$(186); SPC(20); CHR$(186)
  COLOR 0: LOCATE R0 + row, C0 + 2: PRINT fk$; : COLOR 11
  NEXT row
  LOCATE R0 + 19, C0 + 1: PRINT CHR$(200) + STRING$(20, 205) + CHR$(188)

  ptr = 160 * (R0 - 1) + 2 * (C0 - 1) + 1
  FOR row = 0 TO 18
  BasePtr(row) = ptr
  ptr = ptr + 160
  NEXT row
  DEF SEG = &HB800
  FOR row = 1 TO 18 STEP 4
  FOR dr = 0 TO 1
  ptr = BasePtr(row + dr)
  POKE ptr + 4, 10
  POKE ptr + 6, 10
  POKE ptr + 40, 10
  POKE ptr + 42, 10
  NEXT dr
  NEXT row
  DEF SEG

  REM
  FOR i = 0 TO 4
  FOR j = 0 TO 2
  READ x$
  shape(i, j) = VAL(x$)
  NEXT j
  NEXT
  DATA 0,0,0
  DATA 0,1,0
  DATA 1,1,1
  DATA 0,1,0
  DATA 1,0,1

  mrow = 14: mcol = 3
  CALL showcar(mrow, mcol, 12)
  count = 0
  score = 0
  delaytime = .06
  DO
  IF count = 0 THEN score = score + 1
  LOCATE 1, 1: PRINT score
  IF score = 50 THEN Win

  count = count + 1
  IF count = S0 THEN
  count = 0
  car(0).col = INT(2 * RND) * 3 + 3
  car(0).row = 0
  FOR i = 3 TO 1 STEP -1
  car(i).row = car(i - 1).row
  car(i).col = car(i - 1).col
  NEXT i
  END IF

  CALL MoveZ

  tim = TIMER + delaytime
  DO
  k = INP(&H60)
  IF k < 128 THEN
  state(k) = 1
  ELSE
  state(k - 128) = 0
  END IF
  IF state(KeyLeft) THEN
  CALL MoveM(Left)
  state(KeyLeft) = 0
  END IF
  IF state(KeyRight) THEN
  CALL MoveM(Right)
  state(KeyRight) = 0
  END IF
  IF state(KeySpace) THEN
  delaytime = .01
  END IF
  IF state(KeySpace) = 0 THEN
  delaytime = .06
  END IF
  IF state(KeyEnter) THEN
  DO WHILE INKEY$ = ""
  LOOP
  state(KeyEnter) = 0
  END IF
  IF state(KeyEsc) THEN
  END
  END IF
  LOOP WHILE TIMER < tim
  LOOP
  END

  SUB MoveM (md)
  canmove = 1
  IF mcol = 3 AND md = Left THEN EXIT SUB
  IF mcol = 6 AND md = Right THEN EXIT SUB
  FOR i = 3 TO 1
  IF ABS(car(i).row - mrow) < 4 AND car(i).col <> mcol THEN
  canmove = 0
  EXIT FOR
  END IF
  NEXT i
  IF canmove THEN
  CALL showcar(mrow, mcol, 0)
  mcol = mcol + 3 * md
  CALL showcar(mrow, mcol, 12)
  END IF
  END SUB

  SUB MoveZ
  FOR i = 1 TO 3
  car(i).row = count + S0 * (i - 1)
  zrow = car(i).row: zcol = car(i).col
  CALL showcar(zrow, zcol, 10)
  IF ABS(car(i).row - mrow) < 4 AND car(i).col = mcol THEN Lose
  NEXT i

  REM
  DEF SEG = &HB800
  ptr = BasePtr(4): x = PEEK(ptr + 4)
  ptr = BasePtr(0): POKE ptr + 4, x
  FOR row = 18 TO 1 STEP -1
  ptr = BasePtr(row - 1)
  x = PEEK(ptr + 4)
  ptr = BasePtr(row)
  POKE ptr + 4, x
  POKE ptr + 6, x
  POKE ptr + 40, x
  POKE ptr + 42, x
  NEXT row
  DEF SEG
  END SUB

  SUB showcar (row, col, c)
  st = 0: en = 4
  IF col <> 3 AND col <> 6 THEN EXIT SUB
  IF row = mrow AND col = mcol THEN
  st = 1
  ELSE
  IF row < 1 THEN st = 1 - row
  IF row > 14 THEN en = 18 - row
  IF st > en THEN EXIT SUB
  END IF
  DEF SEG = &HB800
  FOR i = st TO en
  ptr = BasePtr(row + i) + 4 * col
  FOR j = 0 TO 2
  POKE ptr + 4 * j, c * shape(i, j)
  POKE ptr + 4 * j + 2, c * shape(i, j)
  NEXT j
  NEXT i
  DEF SEG
  END SUB

  SUB Win
  LOCATE 23, 1: PRINT "Win"
  END
  END SUB

  SUB Lose
  LOCATE 23, 1: PRINT "Lose"
  END
  END SUB

  射击
  DECLARE SUB zidan ()
  DECLARE SUB mubiao ()
  DECLARE SUB lose ()
  DECLARE SUB win ()
  DIM SHARED room(0 TO 24, 0 TO 15)
  COMMON SHARED x0
  gun = 7: x0 = 20
  RANDOMIZE TIMER
  VIEW PRINT 1 TO 25: CLS '初始化边界
  LOCATE 1, x0 + 1: PRINT CHR$(201); STRING$(30, 205); CHR$(187)
  FOR i = 2 TO 24
  LOCATE i, x0 + 1: PRINT CHR$(186); SPC(30); CHR$(186)
  NEXT i
  DEF SEG = &HB800
  POKE 24 * 160 + 2 * x0, 200
  FOR j = 2 TO 60 STEP 2
  POKE 24 * 160 + 2 * x0 + j, 205
  NEXT j
  POKE 24 * 160 + 2 * x0 + 62, 188

  COLOR 9
  LOCATE 24, x0 + 2 * gun: PRINT "[]"
  DO
  CALL mubiao '目标下移
  FOR j = 1 TO 15
  IF room(0, j) = 24 THEN
  CALL lose
  END IF
  NEXT j
  mubiaotime = TIMER + 1.5
  DO
  zidantime = TIMER + .01
  DO
  key$ = INKEY$
  LOOP UNTIL TIMER > zidantime OR key$ <> ""
  COLOR 9
  SELECT CASE key$
  CASE CHR$(0) + CHR$(75) '按键 左
  LOCATE 24, x0 + 2 * gun: PRINT " "
  gun = gun - 1: IF gun = 0 THEN gun = 1
  LOCATE 24, x0 + 2 * gun: PRINT "[]"
  CASE CHR$(0) + CHR$(77) '按键 右
  LOCATE 24, x0 + 2 * gun: PRINT " "
  gun = gun + 1: IF gun = 16 THEN gun = 15
  LOCATE 24, x0 + 2 * gun: PRINT "[]"
  CASE " " '按键 空格
  room(24, 0) = gun
  CASE CHR$(13) '按键 回车:暂停
  DO WHILE INKEY$ = ""
  LOOP
  CASE CHR$(27) '按键 ESCape :退出
  COLOR 7
  END
  END SELECT
  COLOR 7
  CALL zidan
  LOOP UNTIL TIMER > mubiaotime
  LOOP

  SUB lose
  END
  END SUB

  SUB mubiao
  COLOR 10
  FOR j = 1 TO 15
  room(1, j) = 1: room(0, j) = room(0, j) + 1
  'LOCATE 24, 1: PRINT "room(0,"; j; ")="; room(0, j)
  NEXT j

  FOR k = 1 TO 5
  r = INT(RND * 15 + 1)
  room(1, r) = 0
  NEXT k
  FOR i = 23 TO 2 STEP -1
  FOR j = 1 TO 15
  room(i, j) = room(i - 1, j)
  IF room(i, j) = 1 THEN cc$ = "[]" ELSE cc$ = " "
  LOCATE i, x0 + 2 * j: PRINT cc$
  NEXT j
  NEXT i

  FOR j = 1 TO 15
  FOR i = 24 TO 2 STEP -1
  IF room(i, j) = 0 THEN
  room(0, j) = room(0, j) - 1
  ELSE
  EXIT FOR
  END IF
  NEXT i
  NEXT j
  COLOR 7
  DO '清空按键
  key$ = INKEY$
  LOOP UNTIL key$ = ""
  END SUB

  SUB zidan
  COLOR 12
  FOR i = 2 TO 23
  IF room(i, 0) <> 0 THEN
  LOCATE i, x0 + 2 * room(i, 0): PRINT " "
  END IF
  room(i, 0) = room(i + 1, 0)
  NEXT i
  FOR i = 2 TO 23
  IF room(i, 0) > 0 THEN
  IF room(i, room(i, 0)) = 0 THEN
  LOCATE i, x0 + 2 * room(i, 0): PRINT "[]"
  ELSE
  LOCATE i, x0 + 2 * room(i, 0): PRINT " "
  room(i, room(i, 0)) = 0
  room(i, 0) = 0
  END IF
  END IF
  NEXT i
  room(24, 0) = 0
  COLOR 7
  DO '清空按键
  key$ = INKEY$
  LOOP UNTIL key$ = ""
  END SUB

抽奖小游戏:
CLS
DIM a(30)
wer = 0
wert = 0
RANDOMIZE TIMER
a$ = "("
b$ = ")"
c$ = "["
d$ = "]"
FOR y = 1 TO 5
js = 0
p = 5000
CLS
FOR i = 1 TO 30
PRINT i,
a(i) = 0
NEXT i
FOR u = 1 TO 50
q = INT(RND * 29) + 1
PRINT "p="; p
PRINT "tom=";
INPUT a
PRINT "sha zi=";
INPUT b
CLS
PRINT "round: "; y
FOR i = 1 TO 30
IF a(i) = 1 THEN
PRINT a$; i; b$,
END IF
IF a(i) = 2 THEN
PRINT c$; i; d$,
END IF
IF a = i AND a(i) = 0 THEN
a(i) = 1
x = i
PRINT a$; x; b$,
END IF
IF b = i AND a(i) = 0 THEN
a(i) = 2
g = i
PRINT c$; g; d$,
END IF
IF i <> b AND i <> a AND a(i) = 0 THEN
PRINT i,
END IF
NEXT i
FOR i = 1 TO 30
IF i = q THEN
IF a(i) = 1 THEN
PRINT "jiang shi "; q;
PRINT "tom"; "win"; p;
INPUT "go on "; qpo$
wer = wer + p
js = 1
END IF
END IF
IF i = q THEN
IF a(i) = 2 THEN
PRINT "jiang shi "; q
PRINT "sha zi "; "win"; ; p
INPUT "go on "; q$
wert = wert + p
js = 1
END IF
END IF
NEXT i
IF js = 1 THEN
EXIT FOR
ELSE
p = p + 5000
PRINT "jiang shi"; " "; q
END IF
NEXT u
NEXT y
PRINT "tom "; wer
PRINT "sha zi "; wert
END

yum


武义县18447862754: 要QBASIC GAME 快 -
糜林倍顺: 你想要多少赛车DECLARE SUB showcar (row!, col!, c!)DECLARE SUB Win ()DECLARE SUB MoveZ ()DECLARE SUB MoveM (md!)DECLARE SUB Lose ()CONST R0 = 3, C0 = 30, S0 = 12CONST Left = -1, Right = 1CONST KeyUp ...

武义县18447862754: 我很喜欢电脑,可是哪方面适合我? -
糜林倍顺: 首先你应该去学学QBASIC,这是编程的入门语言,很简单,就算你不学编程,学这个对你也很有好处的.你应该是喜欢软件都于硬件吧,那么你可以学点绘图的,比如3DMAX、FLASH、PHOTOSHOP,要学这些的话,建议你还是补一下英语...

武义县18447862754: 游戏开发的入门? -
糜林倍顺: 汤姆·霍尔的“快速”成为游戏开发者的秘诀 “离子风暴”开发公司的奠基人之一汤姆·霍尔先生在网上发表了一篇有趣的文章,披露了快速成为游戏开发者的“成功秘诀”.唉,世上哪有那么便宜的事呢?...

武义县18447862754: 如何将用qbasic语言编好的程序编译成可执行文件 -
糜林倍顺: 可以,QB3.0以上(不是QBASIC而是QuickBASIC)都能把源代码编译为可执行文件.在RUN菜单里面有一个make .EXE选项,然后选择以“stand-alone”方式,就可以生成可独立运...

武义县18447862754: 什么是编程?怎么编程? -
糜林倍顺: 简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机虽然功能十分强大.可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是...

武义县18447862754: 用QBASIC编程超级素数 -
糜林倍顺: 10: for i=100 to 999for j=2 to sqr(i) if i mod j=0 then goto 10 next j for a=1 to n i=i\10 for b=2 to sqr(i) if i mod b=0 then goto 10 next b next a print i next i

武义县18447862754: 告诉我戴尔win7如何打开QBASIC程序?
糜林倍顺: 那是你电脑win7的版本和你的程序不兼容啊,检查你的程序需要看是在32位win7还是64位win7下才能用户,要找适合你程序版本的系统

武义县18447862754: qbasic每行列5个程序 -
糜林倍顺: 和Quick BASIC类似而又不同于微软其他BASIC的早期实现版本的是,QBASIC是一种结构化的编程语言.和GW-BASIC相比,QBASIC的主要改进是: 扩充了变量和常量的类型 变量名长度:40个字符 增加了长整型、定长字符型变量 可定...

武义县18447862754: QBASIC中运行程序的方法有哪几种?在程序窗口中输入程序然后运
糜林倍顺: 1 按F5可运行. 2 用鼠标点击菜单RUN,在下拉菜单中选START可运行. 3 用鼠标点击菜单RUN,在下拉菜单中选RESTART可运行.

武义县18447862754: QBASIC他的优点是什么?
糜林倍顺: QBASIC采用先进的解释方式,速度更快,是一种会话式的语言,编写的程序可以立即运行并得到结果[3]

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网