📄 qb
字号:
第二天
为了让游戏显得有趣些,让我们使用 RND 在迷宫内制造一些怪物吧。而每个房间内
出现的金币多寡,则需视看守者的强弱而定。OK,请接著输入以下程式:
CLS
DIM monster(10, 10) :REM <--- new
FOR count1 = 1 TO 10 :REM |
FOR count2 = 1 TO 10 :REM |
monster(count1, count2) = INT(RND * 11) :REM |
NEXT count2 :REM |
NEXT count1 :REM _|
row = 5
column = 5
moveErr$ = "You cannot move in that direction!"
exitRow = INT(RND * 10) + 1
exitColumn = INT(RND * 10) + 1
gold = 0
DIM monster$(10) :REM <--- new
RESTORE monsterData :REM |
FOR count = 1 TO 10 :REM |
READ monster$(count) :REM |
NEXT count :REM _|
LOCATE 14, 1
PRINT "Commands: n - north"
PRINT " s - south"
PRINT " e - east"
PRINT " w - west"
PRINT " x - use exit"
PRINT
PRINT " q - quit"
DO
LOCATE 1, 1
PRINT "Your position:"; row; column
IF ((row = exitRow) AND (column = exitColumn)) THEN
LOCATE 2, 1
IF row = 1 THEN
LOCATE 10, 1
PRINT moveErr$
ELSE
row = row - 1
LOCATE 10, 1
PRINT "You go north."
END IF
CASE IS = "s"
IF row = 10 THEN
LOCATE 10, 1
PRINT moveErr$
ELSE
row = row + 1
LOCATE 10, 1
PRINT "You go south."
END IF
CASE IS = "w"
IF column = 1 THEN
LOCATE 10, 1
PRINT moveErr$
ELSE
column = column - 1
LOCATE 10, 1
PRINT "You go west."
END IF
CASE IS = "e"
IF column = 10 THEN
LOCATE 10, 1
PRINT moveErr$
ELSE
column = column + 1
LOCATE 10, 1
PRINT "You go east."
END IF
CASE IS = "x"
IF ((row = exitRow) AND (column = exitColumn)) THEN
IF gold < 100 THEN
LOCATE 10, 1
PRINT "You dont have enough gold!"
ELSE
LOCATE 10, 1
PRINT "You have escaped! Well done!"
END
我们需要在每个房间增加一个数值,来记录每个房间内的怪物种类。 还记得迷宫的
规模吧?没错, 我们需要 10x10 的空间来储存这些资料。 还记得主角的位置是以
row 与 column 两个变数来记录的吗?同样地, 我们也可以用类似的方式来记录房
间内的怪物。 因此只要透过 column,row 变数值,就可以得知主角所在位置内的生
物种类了(透过 monster(row, column) 来完成)。
在程式的开头, 我们设定了每个房间的怪物种类, 范围从 0 到 10 (记住
,INT(RND*11) 是不可能产生 11 这个数值的)
那麽, 为什麽不从 1 编到 10 呢?这是因为 0 被用来作为空房间(无怪物存在)
之用。
READ与RESTORE是做什麽用的?
READ 命令会自动找寻程式中的 DATA 叙述, 并读取其後对应的资料。 除非你使用
RESTORE 命令改变资料读取的启始位置, 否则资料将从第一个 DATA 叙述开始读取
。
为什麽要使用 READ、 DATA 的资料储存与读取方式, 我们不是也可以用像
monster$(1) = "blind bat "、monster$(2) = "rat " 的作法来处理吗?
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -