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

📄 qb

📁 rpg游戏源码
💻
字号:
第一天                                                                           
                                                                                 
我们打算制作的 RPG 格局十分简单:你身处一个迷宫之中,必须设法找到出口。为        
了避免过程过於枯燥,迷宫内同时也有其他具攻击性的(邪恶)怪物。 设法击败它        
们,以取得可资运用的金币。 另外,食物、武器与其他有用的装备也会出现在某些        
房间内。而其中只有一个房间有出口;但打开它则需要一百个金币。                     
                                                                                 
让我们先从规画能让玩者行进其间的迷宫开始。(随时按下 'q' 键即可退出游戏)        
请输入以下的程式片段,并试著执行它:                                             
                                                                                 
CLS                                                                              
row = 5                                                                          
column = 5                                                                       
moveErr$ = "You cannot move in that direction!"                                  
                                                                                 
LOCATE 14,1                                                                      
PRINT "Commands:   n - north"                                                    
PRINT "            s - south"                                                    
PRINT "            e - east"                                                     
PRINT "            w - west"                                                     
PRINT                                                                            
PRINT "            q - quit"                                                     
                                                                                 
DO                                                                               
 LOCATE 1, 1                                                                     
 PRINT "Your position:"; row; column                                             
 LOCATE 8, 1                                                                     
 INPUT "What now"; reply$                                                        
 LOCATE 10, 1                                                                    
 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                                                     
          LOCATE 10, 1                                                           
SPACE$ 指令则可以产生空白字元;SPACE$(2) 其实就等於 " "。程式中使用这个指        
令来清除上一次等待使用者输入时,萤幕上多馀的错误讯息。                           
                                                                                 
"INT(RND * 10) + 1" 则是用来制作范围从 1 到 10 之间的随机乱数。整个式子究        
竟是如何动起来的?首先, INT 会传回数值的整数部份,例如 INT(1.9) 会传回 1        
。 而 RND 函数则会产生 0 到 1 之间的数值, 因此 RND*10 会得到一个 0 到 10        
之间的数值。因为 INT(0.99) 的传回值为 0,INT(9.99) 的传回值为 9,所以我们        
需要额外加 1,以符合我们的需求。                                                 
                                                                                 
现在,让我们替这个迷宫增加一个出口:                                             
                                                                                 
CLS                                                                              
row = 5                                                                          
column = 5                                                                       
moveErr$ = "You cannot move in that direction!"                                  
exitRow = INT(RND * 10) + 1                       :REM  <--- new                 
exitColumn = INT(RND * 10) + 1                    :REM    |                      
gold = 0                                          :REM   _|                      
                                                                                 
LOCATE 14, 1                                                                     
PRINT "Commands:   n - north"                                                    
PRINT "            s - south"                                                    
PRINT "            e - east"                                                     
PRINT "            w - west"                                                     
PRINT "            x - use exit"                 :REM  <--- new                  
PRINT                                                                            
PRINT "            q - quit"                                                     
                                                                                 
DO                                                                               
 LOCATE 1, 1                                                                     
 PRINT "Your position:"; row; column                                             
                                                         :REM  <--- new          
 IF ((row = exitRow) AND (column = exitColumn)) THEN                             
  LOCATE 2, 1                                            :REM    |               
  PRINT "You are at the exit!"                           :REM    |               
 ELSE                                                    :REM    |               
  LOCATE 2, 1                                            :REM    |               
  PRINT SPACE$(79)                                       :REM    |               
 END IF                                                  :REM   _|               
 LOCATE 8, 1                                                                     
 INPUT "What now"; reply$                                                        
 LOCATE 10, 1                                                                    
 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                                                     
          LOCATE 10, 1                                                           
          PRINT moveErr$                                                         
         ELSE                                                                    
          column = column + 1                                                    
          LOCATE 10, 1                                                           
          PRINT "You go east."                                                   
         END IF                                                                  
        CASE IS = "x"                                           :REM  <--- new   
         IF ((row = exitRow) AND (column = exitColumn)) THEN                     
                                                                :REM    |        
          IF gold < 100 THEN                                                     
           LOCATE 10, 1                                         :REM    |        
           PRINT "You dont have enough gold!"                   :REM    |        
          ELSE                                                  :REM    |        

⌨️ 快捷键说明

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