Blog

Pythonで簡易ドラクエっぽいクラス

  • Update2016-08-09
  • Category
    • Internet
  • Other--
Pythonで簡易ドラクエっぽいクラスのサムネイル画像

kote2です。今回はPythonで簡易的なドラクエクラスを作ってみます。昔javaで文字ドラクエを作ったことがあるのですがそれをPythonでも再現してみたいなーと。でもPythonってオブジェクト指向型言語なのに最初に型指定とか全然ないんですよ。ちょっと戸惑う。まあいいや。

なので取っ掛かり勇者、戦士、魔法使いみたいなキャラクターをインスタンスとして増やす場合クラスを使って、後々能力を追加するとする場合、継承を使うことにしました。今日は試しに戦士とスーパースターを作ってみます。

まずplayerの基盤となるクラスを作ってみます。__init__みたいなやつはおまじないみたいのものだそう。

player_mod.py

class player:
    def __init__(self,tsuyosa):
        self.tsuyosa = tsuyosa
    def battle_voice(self,str):
        print ("おれは戦士だぜ。攻撃力は %d" % self.tsuyosa)
        print ("ふん!")
        print (str)

そんでもって、mainのpythonファイルを作ってみます。
test.py

from playermod import player
senshi = player(5)
senshi.battle_voice("うう。。")

from playermod import playerでクラスを同じディレクトリに置いたpyを読み込みます。

結果(python3 test.pyで実行)

おれは戦士だぜ。攻撃力は 5
ふん!
うう。。

弱そうです。

次に継承を使ってスーパースターを作ってみます。player_mod.pyに追記してみます。

class player:
    def __init__(self,tsuyosa):
        self.tsuyosa = tsuyosa
    def battle_voice(self,str):
        print ("おれは戦士だぜ。攻撃力は %d" % self.tsuyosa)
        print ("ふん!")
        print (str)
class super_player(player):
    def hissatsu(self):
        print ("おれはスーパースターだぜ。攻撃力は %d" % self.tsuyosa)
        print ("お前はもう死んで・・・")

test.pyにインスタンスを追加します。

from playermod import player,super_player
senshi = player(5)
senshi.battle_voice("うう。。")
senshi2 = super_player(100)
senshi2.hissatsu()

結果

おれは戦士だぜ。攻撃力は 5
ふん!
うう。。
おれはスーパースターだぜ。攻撃力は 100
お前はもう死んで・・・

こんな感じです。なお、先日の記事でCSVが読み込めたり書き込めたりすることは分かったし、pythonで音楽鳴らしたりグラフィックを操作したりできるので、本気でドラ○エ(今頃伏せてどうする)が作れるかも。

いじょ!