📄 qb
字号:
第三天
如果房间里的怪物不懂得攻击,那干嘛还摆在那儿?
事不宜迟,马上开始著手进行我们的『改造』工作:
CLS
DIM monster(10, 10)
FOR count1 = 1 TO 10
FOR count2 = 1 TO 10
monster(count1, count2) = INT(RND * 11)
NEXT count2
NEXT count1
row = 5
column = 5
moveErr$ = "You cannot move in that direction!"
pressKey$ = "Press any key to continue." :REM <--- new
exitRow = INT(RND * 10) + 1
exitColumn = INT(RND * 10) + 1
gold = 0
health = 20 :REM <--- new
weapon = 1 :REM _|
DIM monster$(10)
RESTORE monsterData
FOR count = 1 TO 10
READ monster$(count)
NEXT count
LOCATE 14, 1
PRINT "Commands: n - north"
PRINT " s - south"
PRINT " e - east"
PRINT " w - west"
PRINT " a - attack" :REM <--- new
PRINT " x - use exit"
PRINT
PRINT " q - quit"
DO
END IF
LOCATE 8, 1
INPUT "What now"; reply$
LOCATE 10, 1
PRINT SPACE$(79)
PRINT SPACE$(79)
PRINT SPACE$(79)
SELECT CASE reply$
CASE IS = "n"
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 "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
END IF
END IF
CASE IS = "a" :REM <-- new
IF monsterType = 0 THEN
LOCATE 10, 1 :REM |
PRINT "There's nothing to attack!" :REM |
ELSE :REM |
DO WHILE ((monsterHealth > 0) AND (health > 0)) :REM |
LOCATE 10, 1 :REM |
PRINT SPACE$(79) :REM |
PRINT SPACE$(79) :REM |
LOCATE 10, 1 :REM |
attack = weapon + INT(RND * 9) :REM |
SELECT CASE attack :REM |
CASE IS = monsterAttack :REM |
PRINT "No one wins this round." :REM |
CASE IS > monsterAttack :REM |
PRINT "You deal the "; monsterName$; " a blow!":REM |
monsterHealth = monsterHealth - 1 :REM |
CASE IS < monsterAttack :REM |
PRINT "You have been wounded!" :REM |
health = health - 1 :REM |
END SELECT :REM |
PRINT pressKey$ :REM |
SLEEP :REM |
LOOP :REM |
LOCATE 10, 1 :REM |
IF health > 0 THEN
PRINT "You won the fight!" :REM |
PRINT "You found "; monsterGold; " pieces of gold!" :REM |
gold = gold + monsterGold :REM |
monsterType = 0 :REM |
DATA "troll 44" :REM |
DATA "bear 55" :REM |
DATA "lion 54" :REM |
DATA "sabretooth65" :REM |
DATA "elephant 78" :REM |
DATA "dragon 98" :REM _|
health 变数的初值为 20,每次遭到怪物攻击後将会减少 1 点。 当此变数为 0 时
,就表示我们的主角『驾鹤西归』了。
weapon 变数则代表主角所能增加的攻击力:计算方式为weapon + INT(RND * 9)。
因此,主角的攻击力范围从 1 到 9。
MonsterAttack: 该怪物的攻击能力。
VAL 命令可以将某一个字串转换成十进制的数值。 举例来说,VAL("10") 传回值为
10,但VAL("ABC")将会导致错误。
MonsterHealth: 怪物资料的第二部份是该怪物的生命数值。当主角成功的击中它时
,将会减少一些点数。当数值为 0 时,该怪物即被消灭。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -