目標 3日でテキスト入力のアドベンチャーを作ってみる
という目的で作成してみる。
今なら昔よりはデータ構造をなんとかできそうな気がして…
最近、富士通がリストラするニュースをみかける。SEとしては稼げているけど半導体は振るわないらしい。
ひと昔前、SEに突然配属替えになったという富士通のリーダーのプロジェクトに入ったことがある。
データ構造をすべてクラスで作成しているというシステムでそれをうまく使いこなせずかなりアップアップ状態だった。
こっちもクラス構成がよくわからず、かなり手こずった記憶がある。
今にして思えば、開発なれしていないなか必死で考えたものだったのだろう。DBを使うという選択肢はなかったのかもしれない。
さらに昔、富士通のプログラムコンテストに応募したような記憶がある。
高校のクラブ対象でFM-7貸出して、2回応募すればそのFM-7を進呈するというものだったか?
今考えるとなかなか豪華なコンテストでBASICでアドベンチャーを作ろうとしたけど、
高校をモデルにした空間を作っただけで応募した。(学校まるまるで、けっこうでかい)
制作するためにFM-7を自転車にくくりつけて家まで往復した記憶が残っている。
なんとなくそんなことを考えながら作成中、きちんと設計していないので随時作り直しよてい。
import time
def getMove(p,z):
r=""
for n,d in zip(["up","down","left","right"],[-11,11,-1,1]):
np=p+d
if field[np]==str(z):
r+=n+" "
return r
def getMoveD(dName):
for n,d in zip(["up","down","left","right"],[-11,11,-1,1]):
if dName==n:return d
usecom=["look","think"]
print("3dayADV")
time.sleep(2)
print("helpで使えるコマンドを表示します")
time.sleep(2)
field ="###########"
field+="#000211000#"
field+="#002021000#"
field+="#000221000#"
field+="#022211100#"
field+="#221211210#"
field+="#111222210#"
field+="#012221101#"
field+="#111122110#"
field+="#021222100#"
field+="###########"
p=4+4*11
z=2
a=input("command?")
while a!="end":
if a=="help":
print(usecom)
if a=="look":
print("属性は",["なし","黒","白"][int(field[p])])
print("移動可能な空間は",getMove(p,z))
if a in ["up","down","left","right"]:
if getMove(p,z).find(a)>-1:
p+=getMoveD(a)
print("移動しました")
print("属性は",["なし","黒","白"][int(field[p])])
print("移動可能な空間は",getMove(p,z))
else:print("何かに阻まれた")
a=input("command?")