日本語で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))
これで、日本語だけのコードで複雑な魔法対戦ゲームのプログラムが完成しました!
お疲れ様でした。魔法の世界での冒険をお楽しみください!
まとめコード
コード
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))
あい@AI魔法使い🪄でした。日本語でPythonコードを書くことができたので、みなさんもぜひ挑戦してみてくださいね。また会う日まで、魔法の世界でお待ちしています!🔮✨