見出し画像

日本語でPythonコード書いてみた!魔法対戦ゲームを作ろう🪄

日本語でPythonコード書いてみた!魔法対戦ゲームを作ろう🪄

こんにちは、あい@AI魔法使い🪄です!今日は、日本語でPythonコードを書いてみようと思います。最終的には、日本語だけのコードで複雑な魔法対戦ゲームのプログラムを作成するのが目標です。さあ、魔法の世界へようこそ!


魔法対戦ゲームのルール

魔法対戦ゲームは、プレイヤーが入力でどの魔法を使うか選び、CPUと対戦するゲームです。ランダム要素も追加しましょう。

  • プレイヤーは魔法を選ぶと、CPUもランダムに魔法を選ぶ

  • 魔法には強さがあり、強い魔法が勝つ

  • 同じ魔法が選ばれた場合は、ランダムに勝者が決まる

日本語の関数とインスタンスを作ろう

まずは、日本語の関数とインスタンスを作っていきましょう。

魔法使い = type('魔法使い', (), {'名前': '名無しの魔法使い', '体力': 100})

def 魔法使いを作成(名前, 体力):
    魔法使いのインスタンス = 魔法使い()
    魔法使いのインスタンス.名前 = 名前
    魔法使いのインスタンス.体力 = 体力
    return 魔法使いのインスタンス

あい = 魔法使いを作成('あい', 120)

これで、魔法使いのインスタンスを作成することができました。次は、魔法を作っていきましょう。

魔法 = type('魔法', (), {'名前': '無し', '威力': 0})

def 魔法を作成(名前, 威力, 番号):
    魔法のインスタンス = 魔法()
    魔法のインスタンス.名前 = 名前
    魔法のインスタンス.威力 = 威力
    魔法のインスタンス.番号 = 番号
    return 魔法のインスタンス

炎の魔法 = 魔法を作成('炎の魔法', 50,0)
水の魔法 = 魔法を作成('水の魔法', 40,1)

これで、魔法のインスタンスも作成できました。次は、魔法対戦を行う関数を作りましょう。

import random

def 魔法対戦(魔法使い1, 魔法使い2, 魔法1, 魔法2):
    威力差 = 魔法1.威力 - 魔法2.威力
    if 威力差 > 0:
        魔法使い1.体力 -= 威力差
        print(f'{魔法使い1.名前}{魔法使い2.名前}{魔法2.名前}{魔法1.名前}で防いだ!')
    elif 威力差 < 0:
        魔法使い2.体力 -= -威力差
        print(f'{魔法使い2.名前}{魔法使い1.名前}{魔法1.名前}{魔法2.名前}で防いだ!')
    else:
        勝者 = random.choice([魔法使い1, 魔法使い2])
        print(f'{勝者.名前}がランダムに勝利!')

魔法対戦(あい, 魔法使いを作成('CPU', 100), 炎の魔法, 水の魔法)

これで、魔法対戦ができるようになりました。次は、プレイヤーが魔法を選べるようにしましょう。

魔法のリスト = [炎の魔法, 水の魔法]

def 魔法を選ぶ(魔法使い):
    魔法の選択肢 = [f"{魔法.番号}: {魔法.名前}" for 魔法 in 魔法のリスト]
    魔法の選択 = input(f'{魔法使い.名前}はどの魔法を使いますか?\n{"\n".join(魔法の選択肢)}\n>>> ')
    選ばれた魔法 = next((魔法 for 魔法 in 魔法のリスト if 魔法.番号 == int(魔法の選択)), None)
    return 選ばれた魔法

あいの魔法 = 魔法を選ぶ(あい)
CPUの魔法 = random.choice(魔法のリスト)
魔法対戦(あい, 魔法使いを作成('CPU', 100), あいの魔法, CPUの魔法)

これで、プレイヤーが魔法を選べるようになりました。最後に、ゲームループを作成しましょう。

def ゲーム開始(あい, CPU):
    while あい.体力 > 0 and CPU.体力 > 0:
        あいの魔法 = 魔法を選ぶ(あい)
        CPUの魔法 = random.choice(魔法のリスト)
        魔法対戦(あい, CPU, あいの魔法, CPUの魔法)
        print(f'{あい.名前}の体力: {あい.体力}')
        print(f'{CPU.名前}の体力: {CPU.体力}')

    勝者 = あい.名前 if あい.体力 > CPU.体力 else CPU.名前
    print(f'{勝者}が勝利!')

ゲーム開始(あい, 魔法使いを作成('CPU', 100))

これで、日本語だけのコードで複雑な魔法対戦ゲームのプログラムが完成しました!
お疲れ様でした。魔法の世界での冒険をお楽しみください!


あい@AI魔法使い🪄でした。日本語でPythonコードを書くことができたので、みなさんもぜひ挑戦してみてくださいね。また会う日まで、魔法の世界でお待ちしています!🔮✨

まとめコード

import random

def 魔法使いを作成(名前, 体力):
    魔法使いのインスタンス = 魔法使い()
    魔法使いのインスタンス.名前 = 名前
    魔法使いのインスタンス.体力 = 体力
    return 魔法使いのインスタンス

def 魔法を作成(名前, 威力, 番号):
    魔法のインスタンス = 魔法()
    魔法のインスタンス.名前 = 名前
    魔法のインスタンス.威力 = 威力
    魔法のインスタンス.番号 = 番号
    return 魔法のインスタンス

def 魔法対戦(魔法使い1, 魔法使い2, 魔法1, 魔法2):
    威力差 = 魔法1.威力 - 魔法2.威力
    if 威力差 > 0:
        魔法使い1.体力 -= 威力差
        print(f'{魔法使い1.名前}{魔法使い2.名前}{魔法2.名前}{魔法1.名前}で防いだ!')
    elif 威力差 < 0:
        魔法使い2.体力 -= -威力差
        print(f'{魔法使い2.名前}{魔法使い1.名前}{魔法1.名前}{魔法2.名前}で防いだ!')
    else:
        勝者 = random.choice([魔法使い1, 魔法使い2])
        print(f'{勝者.名前}がランダムに勝利!')

def 魔法を選ぶ(魔法使い):
    魔法の選択肢 = [f"{魔法.番号}: {魔法.名前}" for 魔法 in 魔法のリスト]
    魔法の選択 = input(f'{魔法使い.名前}はどの魔法を使いますか?\n{"\n".join(魔法の選択肢)}\n>>> ')
    選ばれた魔法 = next((魔法 for 魔法 in 魔法のリスト if 魔法.番号 == int(魔法の選択)), None)
    return 選ばれた魔法

def ゲーム開始(あい, CPU):
    while あい.体力 > 0 and CPU.体力 > 0:
        あいの魔法 = 魔法を選ぶ(あい)
        CPUの魔法 = random.choice(魔法のリスト)
        魔法対戦(あい, CPU, あいの魔法, CPUの魔法)
        print(f'{あい.名前}の体力: {あい.体力}')
        print(f'{CPU.名前}の体力: {CPU.体力}')

    勝者 = あい.名前 if あい.体力 > CPU.体力 else CPU.名前
    print(f'{勝者}が勝利!')


魔法使い = type('魔法使い', (), {'名前': '名無しの魔法使い', '体力': 100})
あい = 魔法使いを作成('あい', 120)

魔法 = type('魔法', (), {'名前': '無し', '威力': 0})
炎の魔法 = 魔法を作成('炎の魔法', 50,0)
水の魔法 = 魔法を作成('水の魔法', 40,1)
魔法のリスト = [炎の魔法, 水の魔法]

ゲーム開始(あい, 魔法使いを作成('CPU', 100))

この記事が気に入ったらサポートをしてみませんか?