VB °æ (¾«»ªÇø)

·¢ÐÅÈË: aaaz (ÎÒ×ÁË), ÐÅÇø: VB
±ê  Ìâ: QB½ÇÉ«°çÑÝÓÎÏ·ËÄÌìд×÷¿Î³Ì(4)
·¢ÐÅÕ¾: ¹þ¹¤´ó×϶¡Ïã (2000Äê07ÔÂ27ÈÕ09:39:34 ÐÇÆÚËÄ), ×ªÐÅ

·¢ÐÅÈË: netwolf (СÀÇ), ÐÅÇø: GAME_Designer
±ê  Ìâ: QB½ÇÉ«°çÑÝÓÎÏ·ËÄÌìд×÷¿Î³Ì(4)
·¢ÐÅÕ¾: BBS Ë®Ä¾Ç廪վ (Thu Jul 24 17:36:06 1997)

µÚÈýÌì

Èç¹û·¿¼äÀïµÄ¹ÖÎï²»¶®µÃ¹¥»÷£¬ÄǸÉÂﻹ°ÚÔÚÄǶù£¿
ʲ»Ò˳٣¬ÂíÉÏ¿ªÊ¼ÖøÊÖ½øÐÐÎÒÃǵġº¸ÄÔì¡»¹¤×÷£º

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
 LOCATE 1, 1
 PRINT "Your position:"; row; column
 LOCATE 1, 25                                           :REM  <--- new
 PRINT "Gold:"; gold; "  Health:"; health               :REM   _|
  IF ((row = exitRow) AND (column = exitColumn)) THEN
  LOCATE 2, 1
  PRINT "You are at the exit!"
 ELSE
  LOCATE 2, 1
  PRINT SPACE$(79)
 END IF
 LOCATE 3, 1
 PRINT "Monster: ";
 monsterType = monster(row, column)
 IF monsterType = 0 THEN
  PRINT "nothing   "
 ELSE
 ELSE
  monsterName$ = MID$(monster$(monsterType), 1, 10)
  PRINT monsterName$
  monsterAttack = VAL(MID$(monster$(monsterType), 11, 1))     :REM  <--- new
  monsterHealth = VAL(MID$(monster$(monsterType), 12, 1))     :REM    |
  monsterGold = monsterType * INT(RND * 6)                    :REM   _|
 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 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
         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
          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    |
           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    |
          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    |
           monster(row, column) = 0                               :REM    |
           PRINT pressKey$                                        :REM    |
           SLEEP                                                  :REM    |
          ELSE                                                    :REM    |
           PRINT "The "; monsterName$; " killed you!"             :REM    |
           PRINT "Game over!"                                     :REM    |
           END                                                    :REM    |
          END IF                                                  :REM    |
         END IF                                                   :REM   _|
        CASE IS = "q"
         LOCATE 10, 1
         PRINT "Bye!"
         END
 END SELECT

LOOP


monsterData:
DATA "blind bat 21"                  :REM  <--- changed
DATA "rat       11"                  :REM    |
DATA "snake     31"                  :REM    |
DATA "goblin    23"                  :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 Ê±£¬¸Ã¹ÖÎï¼´±»ÏûÃð¡£

MonsterGold: ÎÒÃÇÔö¼ÓÁËÒ»¸öÒÔÂÒÊý·½Ê½²úÉúµÄÊýÖµ£¬×÷Ϊ»÷°Ü´Ë¹ÖÎïáá¿ÉÒÔ»ñµÃ
             µÄ½ð±ÒÊýÄ¿¡£²»¹ýÓÉì¶ÎÒÃǵļÆË㷽ʽÊdzËÒÔ monsterAttack£¬Òò´Ë
             µ±Äã»÷°Ü½ÏÄѲøµÄµÐÈËáᣬ¿ÉÒÔ»ñµÃ¸ü¶àµÄ½ð±Ò¡£

×¢Ò⣬ս¶·Ò»µ©·¢Éú£¬¾Í»á³ÖÐøµ½Ä³Ò»·½µ¹ÏÂΪֹ¡£

µ±¸Ã¹ÖÎï±»ÏûÃðáᣬ monsterType »á±»É趨Ϊ 0£¬Èç´ËÒ»À´Ö÷½Ç±ã²»»áÔÙÓöµ½Ïàͬ
µÄ¹ÖÎïÁË¡£

Monsters(row, column) = 0 µÄÐðÊöÔòÊǽ«¸Ã·¿¼äÄڵĹÖÎïÓèÒÔÇå³ý¡£ Òò´Ëµ±ÄãÔÙ
¶È½øÈë¸Ã·¿¼äʱ£¬±ã²»»áÔÙÔâÓöÈκÎÕ½¶·¡£

Ä㻹¼ÇµÃ SLEEP ÃüÁîÊÇÓÃÀ´ÔÝÍ£³Ìʽ¼¸ÃëÖÓµÄÂð£¿SLEEP Ã»ÓиøÓè²ÎÊýµÄ»°£¬»á³Ö
ÐøµÈ´ý£¬Ö±µ½Ê¹ÓÃÕß°´¼üΪֹ¡£ ÎÒÃÇʹÓÃËûÀ´µÈ´ýʹÓÃÕß°´¼ü¡£µ±È»£¬ÄãͬÑùÒ²¿É
ÒÔʹÓàDO: LOOP UNTIL INKEY$ <> "" µÄ·½Ê½À´´¦Àí¡£

½ñÌì¾Íµ½´ËΪֹ°É¡£
ÔʹÓàDO: LOOP UNTIL INKEY$ <> "" µÄ·½Ê½À´´¦Àí¡£

½ñÌì¾Íµ½´ËΪֹ°É¡£

--
¡ù À´Ô´:¡¤BBS Ë®Ä¾Ç廪վ bbs.net.tsinghua.edu.cn¡¤[FROM: 203.93.18.173]

--
¡ù À´Ô´:¡¤¹þ¹¤´ó×϶¡Ïã bbs.hit.edu.cn¡¤[FROM: 202.118.226.221]
[°Ù±¦Ïä] [·µ»ØÊ×Ò³] [Éϼ¶Ä¿Â¼] [¸ùĿ¼] [·µ»Ø¶¥²¿] [Ë¢ÐÂ] [·µ»Ø]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
Ò³ÃæÖ´ÐÐʱ¼ä£º204.731ºÁÃë