BASIC(MID$)


海外ドラマ『プリズン・ブレイク シーズン1』

ぜんぜん脱獄しないじゃないですか。ずっと牢獄の中とか、見てると息が詰まりそうで、面白いのですが、飽きてしまいます。映画やドラマでずっと狭い空間にいる役者たちをみると、苦しくなってしまう私ですが、なぜかゲームになると息が詰まるとか感じたことがありません。やはり自分がプレイするからでしょうか。
子供の頃に夢中になったBASICの感覚を取り戻すため、今回からダンジョンゲームを作っていこうかと思います。
まずはダンジョンの表示。MID$を使って文字列を抽出してマップを表示します。

takk@ubu16:~/basictest$ cat test.bas | nl -ba -i10 -v10
    10  '$lang: "qb"
    20
    30
    40  dim map$(30)
    50  map$(1)  = "###################################"
    60  map$(2)  = "###################################"
    70  map$(3)  = "###################################"
    80  map$(4)  = "#######S#   #    ##    ############"
    90  map$(5)  = "####### ### #### ## ## #    #######"
   100  map$(6)  = "####### #      #    ## #G## #######"
   110  map$(7)  = "####### # #### ### ### #### #######"
   120  map$(8)  = "#######      #     #        #######"
   130  map$(9)  = "###################################"
   140  map$(10) = "###################################"
   150  map$(11) = "###################################"
   160
   170  x = 8
   180  y = 4
   190
   200
   210
   220  money = 1
   230  while 1
   240    cls
   250    for yy = y-3 to y+3
   260      print mid$(map$(yy),x-7,15)
   270    next
   280
   290    locate 4,8
   300    print "*"
   310
   320    do
   330      let k$ = INKEY$
   340    loop until k$ <> ""
   350
   360    select case k$
   370    case "j"
   380      y = y + 1
   390    case "k"
   400      y = y - 1
   410    case "h"
   420      x = x - 1
   430    case "l"
   440      x = x + 1
   450    end select
   460  wend
   470
takk@ubu16:~/basictest$

実行するとこのような画面が表示されます。*がプレイヤーです。#は壁です。判定してないので、今は壁を通り抜けることができます。Vimmerなので移動はjkhlです。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA