LoginSignup
2
3

More than 1 year has passed since last update.

Pythonでドラクエ風対戦ゲームを作ってみた

Posted at

Progateを終わらせたので、そこで学んだことアウトプットするためにドラクエ風対戦ゲームを作りました。

概要

勇者とモンスターの名前、HP、攻撃力を設定して戦い勝敗を判定する。同じモンスターと戦っても面白くないので、クラスを使いモンスターを追加する。random.choiceを使ってドラクエと同じようにランダムにモンスターと戦うようにする。

ドラクエ風対戦ゲーム

まずはクラスMonsterを定義します。名前とHP、攻撃力を入力できるようにします。

battle
class Monster:
    def __init__(self, name, hp, attack):
        self.name = name
        self.hp = hp
        self.attack = attack

次に勇者のステータスを設定します。まだまだ駆け出しですね。

battle
hero_hp = 30
hero_attack = 5

いよいよモンスターを追加します!!

battle
slime = Monster('スライム', 10, 1)
drakey = Monster('ドラキー', 13, 2)
darkdream = Monster('ダークドレアム', 130000, 999)

モンスターとランダムに戦えるようにします。

battle
import random
monsters = [slime, drakey, darkdream]
appeard_monster = random.choice(monsters)

モンスターと戦います。

battle
print(appeard_monster.name + 'が現れた!')
while hero_hp > 0:
    print('勇者の攻撃!')

    appeard_monster.hp -= hero_attack

    if appeard_monster.hp > 0:
        print(appeard_monster.name + '' + str(hero_attack) + 'のダメージを受けた!')
        print(' ')

    else:
        print(appeard_monster.name + '' + str(hero_attack) + 'のダメージを受けた!')
        print(appeard_monster.name + 'は力尽きた')
        print(' ')
        print('勇者は戦闘に勝った!')
        break

    print(appeard_monster.name + 'の攻撃!')
    print('勇者は' + str(appeard_monster.attack) + 'のダメージを受けた!')
    print(' ')

    hero_hp -= appeard_monster.attack

else:
    print('勇者は力尽きた')
    print(' ')
    print('勇者は戦闘に負けた!')

実行するとこうなります。まずはドラキーが現れました。

ドラキーが現れた!
勇者の攻撃!
ドラキーは5のダメージを受けた!
 
ドラキーの攻撃!
勇者は2のダメージを受けた!
 
勇者の攻撃!
ドラキーは5のダメージを受けた!
 
ドラキーの攻撃!
勇者は2のダメージを受けた!
 
勇者の攻撃!
ドラキーは5のダメージを受けた!
ドラキーは力尽きた
 
勇者は戦闘に勝った!

次はスライム。楽勝ですね。

スライムが現れた!
勇者の攻撃!
スライムは5のダメージを受けた!
 
スライムの攻撃!
勇者は1のダメージを受けた!
 
勇者の攻撃!
スライムは5のダメージを受けた!
スライムは力尽きた
 
勇者は戦闘に勝った!

いきなり裏ボス登場。コテンパンにやられる、、、

ダークドレアムが現れた!
勇者の攻撃!
ダークドレアムは5のダメージを受けた!
 
ダークドレアムの攻撃!
勇者は999のダメージを受けた!
 
勇者は力尽きた
 
勇者は戦闘に負けた!

最後に

基本的な形はできたので、今後ステータスやレベルの次元を取り入れたり、特技を選択できるようにしていきたいですね。
勇者共々プログラミングスキルも成長していきたいものです!

2
3
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3