想要QBASIC游戏快点

你要多少钱?

赛车

声明SUB showcar (row!,col!,c!)

声明子成功()

声明SUB MoveZ()

声明子MoveM (md!)

声明SUB Lose()

常数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

铅字

作为整数的行

列为整数

结束类型

将共享汽车(0到3)显示为汽车类型

DIM共享状态(127)为整数

DIM共享BasePtr(0到18)为整数

将共享形状(0到4,0到2)显示为整数

DIM共享mrow、mcol、count

CLS

随机化计时器

识别内存(recognition memory)

fk$ = "[][][][][][]"

颜色11

找到C0的R0-1:PRINT CHR $(201)+STRING $(20,205) + CHR$(187)

定位R0,C0 + 1:打印CHR $(186);SPC(20);加拿大元(186)

对于行= 1到18

定位R0 + row,C0+1:PRINT CHR $(186);SPC(20);加拿大元(186)

颜色0:定位R0 +行,C0 + 2:打印fk $;:颜色11

下一排

找到R0 + 19,C0 + 1:打印CHR$(200) +字符串$(20,205) + CHR$(188)

ptr = 160 *(R0-1)+2 *(C0-1)+1

对于行= 0到18

BasePtr(row) = ptr

ptr = ptr + 160

下一排

DEF SEG = & ampHB800

对于row = 1到18步骤4

对于dr = 0到1

ptr = BasePtr(row + dr)

戳ptr + 4,10

戳ptr + 6,10

戳ptr + 40,10

戳ptr + 42,10

下一个博士

下一排

定义分段

识别内存(recognition memory)

对于i = 0到4

对于j = 0到2

阅读x美元

shape(i,j) = VAL(x$)

下一个j

然后

数据0,0,0

数据0,1,0

数据1,1,1

数据0,1,0

数据1,0,1

mrow = 14: mcol = 3

致电showcar(mrow,mcol,12)

计数= 0

分数= 0

延迟时间= .06

防御命令(Defense Order)

如果count = 0,则score = score + 1

找到1,1:打印分数

如果得分= 50,则获胜

计数=计数+ 1

如果count = S0,则

计数= 0

汽车(0)。col = INT(2 * RND) * 3 + 3

汽车(0)。row = 0

对于i = 3到1步进-1

汽车(我)。row =汽车(识别号1)。排

汽车(我)。col =汽车(识别号1)。山口

接下来我

如果…就会结束

打电话给MoveZ

tim = TIMER + delaytime

防御命令(Defense Order)

k = INP(& amp;H60)

如果k & lt那么128

状态(k) = 1

其他

状态(k - 128) = 0

如果…就会结束

如果状态(左键)则

呼叫MoveM(左)

状态(左击键)= 0

如果…就会结束

IF state(右键)然后

呼叫MoveM(右)

state(KeyRight) = 0

如果…就会结束

IF state(KeySpace)然后

延迟时间= .01

如果…就会结束

如果状态(密钥空间)= 0,则

延迟时间= .06

如果…就会结束

如果状态(按键输入)则

边做边INKEY$ = " "

状态(键盘输入)= 0

如果…就会结束

IF状态(KeyEsc)然后

结束

如果…就会结束

定时器& lt定时(timing的缩写)

结束

子运动(md)

canmove = 1

如果mcol = 3且md = Left,则退出SUB

如果mcol = 6且md = Right,则退出SUB

对于i = 3到1

如果ABS(汽车(一)。row-mrow)& lt;4和汽车(一)。col & lt& gt那么mcol

canmove = 0

为...退出

如果…就会结束

接下来我

如果可以的话

调用showcar(mrow,mcol,0)

mcol = mcol + 3 * md

致电showcar(mrow,mcol,12)

如果…就会结束

末端接头

子移动z

对于i = 1到3

汽车(我)。row = count + S0 * (i - 1)

zrow = car(i)。row: zcol = car(i)。山口

致电showcar(zrow,zcol,10)

如果ABS(汽车(一)。row-mrow)& lt;4和汽车(一)。然后输了

接下来我

识别内存(recognition memory)

DEF SEG = & ampHB800

ptr = BasePtr(4): x = PEEK(ptr + 4)

ptr = BasePtr(0):戳ptr + 4,x

对于row = 18到1的步长-1

ptr = BasePtr(row - 1)

x = PEEK(ptr + 4)

ptr = BasePtr(row)

戳ptr + 4,x

戳ptr + 6,x

戳ptr + 40,x

戳ptr + 42,x

下一排

定义分段

末端接头

子展示车(世界其他地区,列,c)

st = 0: en = 4

如果col & lt& gt3和col & lt& gt6然后退出短节

如果row = mrow且col = mcol,则

st = 1

其他

如果行& lt1,则st = 1 -行

IF row & gt14则en = 18 -行

如果st & gt然后退出短节

如果…就会结束

DEF SEG = & ampHB800

因为i = st TO en

ptr = BasePtr(row + i) + 4 * col

对于j = 0到2

戳ptr + 4 * j,c * shape(i,j)

戳ptr + 4 * j + 2,c * shape(i,j)

下一个j

接下来我

定义分段

末端接头

子赢

找到23,1:打印“Win”

结束

末端接头

次级损失

定位23,1:打印“丢失”

结束

末端接头

拍摄

声明SUB zidan()

声明子目标()

声明SUB lose()

声明子成功()

DIM共享房间(0到24,0到15)

公共共享x0

枪= 7: x0 = 20

随机化计时器

0到25: CLS的初始化边界。

定位1,x0 + 1:打印CHR $(201);STRING$(30,205);加拿大元(187)

对于i = 2到24

定位I,x0 + 1:打印CHR $(186);SPC(30);加拿大元(186)

接下来我

DEF SEG = & ampHB800

戳24 * 160 + 2 * x0,200

对于j = 2至60,步骤2

戳24 * 160 + 2 * x0 + j,205

下一个j

戳24 * 160 + 2 * x0 + 62,188

颜色9

定位24,x0 + 2 *枪:打印“]”

防御命令(Defense Order)

叫穆彪‘目标下移’。

对于j = 1到15

如果房间(0,j) = 24,则

呼输

如果…就会结束

下一个j

mubiaotime = TIMER + 1.5

防御命令(Defense Order)

zidantime = TIMER + .01

防御命令(Defense Order)

key$ = INKEY$

循环直到TIMER & gtzidantime或key $ & lt& gt""

颜色9

选择案例关键字$

“案例费用(0)+费用(75)”按钮左侧

定位24,x0 + 2 *枪:打印" "

gun = gun - 1:如果gun = 0,则gun = 1

定位24,x0 + 2 *枪:打印“]”

CASE CHR$(0)+CHR$(77)' key right

定位24,x0 + 2 *枪:打印" "

gun = gun + 1:如果gun = 16,则gun = 15

定位24,x0 + 2 *枪:打印“]”

CASE“”键空间

房间(24,0) =枪

CASE CHR$(13)'按回车键:暂停。

边做边INKEY$ = " "

CASE CHR$(27)'键退出:退出。

颜色7

结束

结束选择

颜色7

打电话给紫丹

循环直到TIMER & gt目标时间

次级损失

结束

末端接头

子目标

颜色10

对于j = 1到15

房间(1,j) = 1:房间(0,j) =房间(0,j) + 1

定位24,1:打印“room(0,”;j;")=";房间(0,j)

下一个j

对于k = 1到5

r = INT(RND * 15 + 1)

房间(1,r) = 0

下一个k

对于i = 23到2步-1

对于j = 1到15

房间(I,j) =房间(i - 1,j)

如果room(i,j) = 1,则cc$ = "[]"否则cc$ = " "

定位I,x0 + 2 * j:打印cc$

下一个j

接下来我

对于j = 1到15

对于i = 24到2步-1

如果room(i,j) = 0,则

房间(0,j) =房间(0,j) - 1

其他

为...退出

如果…就会结束

接下来我

下一个j

颜色7

“清除”按钮

key$ = INKEY$

循环直到键$ = " "

末端接头

苏子丹

颜色12

对于i = 2到23

IF room(i,0)& lt;& gt那么0

定位I,x0 + 2 * room(i,0): PRINT " "

如果…就会结束

房间(I,0) =房间(i + 1,0)

接下来我

对于i = 2到23

如果room(i,0)>那么0

如果房间(I,房间(I,0)) = 0,则

定位I,x0 + 2 *房间(I,0):打印“[]”

其他

定位I,x0 + 2 * room(i,0): PRINT " "

room(i,room(i,0)) = 0

room(i,0) = 0

如果…就会结束

如果…就会结束

接下来我

room(24,0) = 0

颜色7

“清除”按钮

key$ = INKEY$

循环直到键$ = " "

末端接头