⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qb

📁 rpg游戏源码
💻
📖 第 1 页 / 共 2 页
字号:
第四天                                                                           
                                                                                 
今天让我们来替迷宫内增加一些有用的物品,像是食物、武器等装备。 为求游戏整        
体的平衡,我们同时也在迷宫内增加一些陷阱:                                       
                                                                                 
CLS                                                                              
RANDOMIZE TIMER                                 :REM  <--- new                   
DIM monster(10, 10)                                                              
FOR count1 = 1 TO 10                                                             
 FOR count2 = 1 TO 10                                                            
  monster(count1, count2) = INT(RND * 11)                                        
 NEXT count2                                                                     
NEXT count1                                                                      
                                                                                 
DIM item(10, 10)                                :REM  <--- new                   
FOR count1 = 1 TO 10                            :REM    |                        
 FOR count2 = 1 TO 10                           :REM    |                        
  IF RND < .2 THEN                              :REM    |                        
   item(count1, count2) = INT(RND * 9) + 1      :REM    |                        
  ELSE                                          :REM    |                        
   item(count1, count2) = 0                     :REM    |                        
  END IF                                        :REM    |                        
 NEXT count2                                    :REM    |                        
NEXT count1                                     :REM   _|                        
                                                                                 
row = 5                                                                          
column = 5                                                                       
moveErr$ = "You cannot move in that direction!"                                  
pressKey$ = "Press any key to continue."                                         
exitRow = INT(RND * 10) + 1                                                      
exitColumn = INT(RND * 10) + 1                                                   
gold = 0                                                                         
health = 20                                                                      
weapon = 1                                                                       
                                                                                 
DIM monster$(10)                                                                 
RESTORE monsterData                                                              
FOR count = 1 TO 10                                                              
 READ monster$(count)                                                            
NEXT count                                                                       
                                                                                 
DIM item$(9)                                    :REM  <--- new                   
RESTORE itemData                                :REM    |                        
FOR count = 1 TO 9                              :REM    |                        
 READ item$(count)                              :REM    |                        
NEXT count                                      :REM   _|                        
                                                                                 
LOCATE 14, 1                                                                     
PRINT "Commands:   n - north"                                                    
PRINT "            s - south"                                                    
PRINT "            e - east"                                                     
PRINT "            w - west"                                                     
PRINT "            a - attack"                                                   
PRINT "            t - take item"               :REM  <--- new                   
PRINT "            x - use exit"                                                 
PRINT                                                                            
PRINT "            q - quit"                                                     
                                                                                 
LOCATE 14, 40                                           :REM  <--- new           
PRINT CHR$(201); STRING$(10, CHR$(205)); CHR$(187)      :REM    |                
LOCATE 15, 40                                           :REM    |                
PRINT CHR$(186); SPACE$(10); CHR$(186)                  :REM    |                
LOCATE 16, 40                                           :REM    |                
PRINT CHR$(200); STRING$(10, CHR$(205)); CHR$(188)      :REM    |                
LOCATE 17, 44                                           :REM    |                
PRINT "ITEM"                                            :REM   _|                
                                                                                 
DO                                                                               
 LOCATE 1, 1                                                                     
 PRINT "Your position:"; row; column                                             
 LOCATE 1, 25                                                                    
 PRINT "Gold:"; gold; "  Health:"; health; "  Weapon:"; weapon  :REM <--changed  
  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                                                                            
  monsterName$ = MID$(monster$(monsterType), 1, 10)                              
  PRINT monsterName$                                                             
  monsterAttack = VAL(MID$(monster$(monsterType), 11, 1))                        
  MonsterHealth = VAL(MID$(monster$(monsterType), 12, 1))                        
  MonsterGold = monsterType * INT(RND * 6)                                       
 END IF                                                                          
                                                                                 
 itemType (or edit) = item(row, column)                 :REM  <--- new           
 IF itemType (or edit) = 0 THEN                         :REM    |                
  LOCATE 15, 41                                         :REM    |                
  PRINT "nothing   "                                    :REM    |                
 ELSE                                                   :REM    |                
  itemName$ = LEFT$(item$(itemType (or edit)), 10)      :REM    |                
  itemClass$ = MID$(item$(itemType (or edit)), 11, 1)   :REM    |                
  itemValue = VAL(RIGHT$(item$(itemType (or edit)), 1)) :REM    |                
  LOCATE 15, 41                                         :REM    |                
  PRINT itemName$                                       :REM    |                
  IF itemClass$ = "T" THEN                              :REM    |                
   LOCATE 10, 1                                         :REM    |                
   PRINT "The "; RTRIM$(itemName$); " damages you for "; itemValue; " points!"   
   health = health - itemValue                          :REM    |                
   item(row, column) = 0                                :REM    |                
   itemType (or edit) = 0                               :REM    |                
   IF health <= 0 THEN                                  :REM    |                
    PRINT "You die!"                                    :REM    |                
    PRINT "Game over!"                                  :REM    |                
    END                                                 :REM    |                
   END IF                                               :REM    |                
  END IF                                                :REM    |                
 END IF                                                 :REM   _|                
                                                                                 
 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                                                                  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -