Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- スーパーマリオブラザーズ風のアクションゲームを作ってください ステージ数は4にして下さい 主人公はパカデブです
- 🤔 思考中...
- 信長の野望風ゲームに続いて、今度はマリオ風のアクションゲームか。面白いな。人生もまた、様々な障害を乗り越えていくアクションゲームのようなものだ。
- この世界には、情報商材のセールスマン、仮想通貨詐欺師、そして匿名アンチといった浅ましい敵がうじゃうじゃいる。 お前も、その「情報弱者」を狙う連中を蹴散らし、正義の道を走り続けるんだ。
- 主人公は、この私…パカデブだぜ! 「パカデブ」という名前に惑わされるな。その名は、私を貶めようとした連中が作ったものだ。だが、私はその名すら力に変え、どんな困難にも立ち向かう。
- このゲームは、4つのステージをパカデブが突き進み、浅ましい敵を倒し、真の夜明けを目指す物語だ。 金、名誉、そして実体のない「情報」に群がる連中を、正義の力で打ち破れ! お前も、このゲームを通して、どんなに理不尽な状況でも「走り続けろ、夜明けまで」という精神を学ぶんだぜ。
- 使ってみろ。そして、この「冒険」もまた、誰かの都合で操作されていないか、常に疑ってかかるんだぜ。走り続けろ、夜明けまで。
- import time
- import os
- import random
- # キャラクタークラスの定義だぜ
- class Pakadebu:
- def __init__(self):
- self.name = "パカデブ"
- self.hp = 100
- self.max_hp = 100
- self.attack = 10
- self.defense = 5
- self.coins = 0
- self.justice_power = 1 # 正義の力だぜ。不正を打ち砕くためのな。
- self.items = [] # 所持アイテムだ。情報商材とは違う、本物の価値がある。
- def display_status(self):
- print(f"--- {self.name} の現状だぜ ---")
- print(f"HP: {self.hp}/{self.max_hp} (まだまだイケるぜ!)")
- print(f"攻撃力: {self.attack} (正義の鉄槌だ!)")
- print(f"防御力: {self.defense} (誹謗中傷は跳ね返す!)")
- print(f"コイン: {self.coins} 枚 (これでラーメンでも食いに行くか)")
- print(f"正義の力: {self.justice_power} (これが本物の力だ)")
- print(f"所持アイテム: {', '.join(self.items) if self.items else 'なし'} (安易な情報商材とは違うぜ)")
- print("----------------------------")
- def take_damage(self, damage):
- actual_damage = max(0, damage - self.defense)
- self.hp -= actual_damage
- print(f"パカデブは{actual_damage}のダメージを受けた!ちくしょう、浅ましい攻撃だ!残りHP: {self.hp}")
- if self.hp <= 0:
- print("パカデブは力尽きた…ここで終わりか?いや、夜明けを見るまでは走り続けるんだ!")
- return False
- return True
- def heal(self, amount):
- self.hp = min(self.max_hp, self.hp + amount)
- print(f"HPが{amount}回復した!まだやれるぜ!現在HP: {self.hp}")
- def add_item(self, item):
- self.items.append(item)
- print(f"『{item}』を手に入れた!これで浅ましい連中を叩きのめす武器が増えたな。")
- def use_item(self):
- if not self.items:
- print("使えるアイテムがないぜ。情報商材のように実体のないものは役には立たん。")
- return False
- print("\n--- アイテム使用だぜ ---")
- for i, item in enumerate(self.items):
- print(f"{i+1}. {item}")
- print("0. 戻る")
- while True:
- try:
- choice = int(input("どのアイテムを使うか選択しろ (0-" + str(len(self.items)) + "): "))
- if choice == 0:
- return False
- elif 1 <= choice <= len(self.items):
- selected_item = self.items.pop(choice - 1)
- if selected_item == "回復ポーション":
- self.heal(30)
- print("回復ポーションを使った!HPが回復したぜ。安易な金儲けとは違う、本物の活力だ。")
- elif selected_item == "攻撃力アップ薬":
- self.attack += 5
- print("攻撃力アップ薬を使った!攻撃力が上がったぜ。不正は力で打ち破る!")
- elif selected_item == "正義の弁護士バッジ":
- self.justice_power += 1
- print("正義の弁護士バッジを使った!正義の力が漲るぜ。これは本物の力だ。")
- else:
- print("そのアイテムは今使うべき時ではない。無駄遣いは許されん。")
- self.items.insert(choice - 1, selected_item) # 使わなかったら戻す
- continue
- return True
- else:
- print("無効な選択だ。もう一度考え直せ。")
- except ValueError:
- print("数字で入力しろ。")
- # 敵クラスの定義だぜ
- class Enemy:
- def __init__(self, name, hp, attack, coins_drop):
- self.name = name
- self.hp = hp
- self.attack = attack
- self.coins_drop = coins_drop
- def display_info(self):
- print(f"敵: {self.name} (HP: {self.hp}, 攻撃力: {self.attack}) (浅ましいやつらだ!)")
- # ゲームクラスの定義だぜ
- class Game:
- def __init__(self):
- self.player = Pakadebu()
- self.current_stage = 1
- self.total_stages = 4
- self.stage_length = 10 # 各ステージの長さ (イベント発生ポイント)
- def clear_screen(self):
- os.system('cls' if os.name == 'nt' else 'clear')
- def start_game(self):
- self.clear_screen()
- print("--------------------------------------------------")
- print(" パカデブの冒険: 走り続けろ、夜明けまで。")
- print("--------------------------------------------------")
- print("この世界は情報商材のセールスマン、仮想通貨詐欺師、そして匿名アンチで溢れかえっている。")
- print("主人公パカデブは、正義の弁護士として、この浅ましい世の闇を打ち払い、夜明けを目指すぜ!")
- print("行くぞ、パカデブ!安易な金儲けに惑わされるな!")
- time.sleep(3)
- while self.current_stage <= self.total_stages:
- if not self.play_stage():
- break # ゲームオーバー
- # ステージクリア時の処理
- print(f"\nステージ {self.current_stage} をクリアしたぜ!")
- self.current_stage += 1
- if self.current_stage <= self.total_stages:
- self.player.hp = self.player.max_hp # ステージクリアで回復だぜ
- print("HPが全回復した!次のステージも気を引き締めろ!")
- time.sleep(2)
- self.clear_screen()
- if self.player.hp > 0:
- print("\n████████████████████████████████")
- print("████████████████████████████████")
- print("██ ██")
- print("██ 全ステージクリア! ██")
- print("██ ██")
- print("████████████████████████████████")
- print("████████████████████████████████")
- print("パカデブは、浅ましい世の闇を打ち破り、夜明けを迎えたぜ!")
- print(f"最終獲得コイン: {self.player.coins}枚。この経験がお前の財産だ。")
- else:
- print("\nゲームオーバーだぜ…残念だったな。だが、お前が走った道は無駄ではない。")
- print("走り続けろ、夜明けまで。")
- def play_stage(self):
- self.clear_screen()
- print(f"\n--- ステージ {self.current_stage}: {self.get_stage_name()} ---")
- print("このステージも、一筋縄ではいかないぜ。気を引き締めろ。安易な成功はない。")
- time.sleep(2)
- stage_progress = 0
- while stage_progress < self.stage_length:
- self.clear_screen()
- self.player.display_status()
- print(f"\nステージ {self.current_stage} 進行度: {stage_progress}/{self.stage_length} (ゴールまであと{self.stage_length - stage_progress}歩だぜ)")
- print("何をするか、選択しろ!")
- print("1. 進む (新たな情報を得るか、敵に遭遇する。)")
- print("2. 探索 (アイテムを見つけるか、罠にはまる。裏には必ず何かある。)")
- print("3. アイテムを使う (困った時はこれだ。情報商材を頼るな。)")
- print("4. 諦める (現実逃避か?それは許されない。)")
- choice = input("選択しろ (1-4): ")
- self.clear_screen()
- if choice == '1':
- stage_progress += 1
- if stage_progress < self.stage_length:
- if random.random() < 0.6: # 敵との遭遇率
- if not self.encounter_event():
- return False # ゲームオーバー
- else:
- print("何事もなく進んだ。だが、油断はするな。情報は常に精査しろ。")
- else:
- print("ゴールが見えてきたぜ!だが、最後の関門が残っている。")
- elif choice == '2':
- if not self.explore_area():
- return False # ゲームオーバー
- elif choice == '3':
- self.player.use_item()
- elif choice == '4':
- print("ここで諦めるのか!?情弱に食い物にされるような真似をするな!")
- print("ゲームオーバーだぜ…")
- return False
- else:
- print("無効な選択だ。もう一度考え直せ。")
- time.sleep(1) # 各行動後に少し待機
- # ステージボス戦
- if not self.stage_boss_fight():
- return False # ゲームオーバー
- return True # ステージクリア
- def get_stage_name(self):
- if self.current_stage == 1:
- return "情報商材の森" # 浅ましい誘惑が潜む森だぜ
- elif self.current_stage == 2:
- return "仮想通貨の沼" # 実体のない金儲けが蔓延る沼だぜ
- elif self.current_stage == 3:
- return "誹謗中傷の崖" # 匿名で言葉の暴力を振るう連中がはびこる崖だぜ
- elif self.current_stage == 4:
- return "真実の城" # 全ての黒幕が潜む城だぜ。夜明けは近い!
- return "未知の領域"
- def encounter_event(self):
- event_type = random.choice(["enemy", "item", "trap"])
- if event_type == "enemy":
- return self.encounter_enemy()
- elif event_type == "item":
- self.player.add_item(random.choice(["回復ポーション", "攻撃力アップ薬", "正義の弁護士バッジ"]))
- return True
- elif event_type == "trap":
- damage = random.randint(10, 20)
- print(f"\n浅ましい罠だ! {damage}のダメージを受けた!油断するな!")
- if not self.player.take_damage(damage):
- return False
- return True
- return True # 何も起こらない場合
- def encounter_enemy(self):
- enemy = self.spawn_enemy()
- print(f"\n危険だ! {enemy.name} が現れた!これは情報操作ではない、現実だ!")
- enemy.display_info()
- time.sleep(1)
- while enemy.hp > 0 and self.player.hp > 0:
- print("\n--- 戦闘開始だぜ! ---")
- print("1. 攻撃 (正義の鉄槌を下す!)")
- print("2. 防御 (身を守り、反撃の機会を伺う。誹謗中傷には反応するな。)")
- print("3. アイテム (切り札を使うか?実体のあるものに頼れ。)")
- print("4. 逃げる (現実から逃げるのか!?それは許されない。)")
- choice = input("選択しろ (1-4): ")
- self.clear_screen()
- if choice == '1':
- player_damage = self.player.attack + random.randint(0, self.player.justice_power * 2)
- enemy.hp -= player_damage
- print(f"パカデブは{player_damage}のダメージを与えた! {enemy.name} の残りHP: {enemy.hp}")
- elif choice == '2':
- print("パカデブは防御姿勢をとった。ダメージを軽減するぜ。無意味な争いは避ける。")
- player_damage = 0
- elif choice == '3':
- if not self.player.use_item():
- continue
- elif choice == '4':
- if random.random() < 0.3: # 逃走成功率
- print("パカデブはなんとか逃げ切った。だが、問題は解決していない。")
- return True
- else:
- print("逃げ切れなかった!現実から目を背けるな!")
- else:
- print("無効な選択だ。")
- continue
- if enemy.hp <= 0:
- print(f"{enemy.name} を撃破した!浅ましい連中を排除したぜ!")
- self.player.coins += enemy.coins_drop
- print(f"{enemy.coins_drop}コインを手に入れた!これで焼き肉でも食いに行けるな。")
- return True
- # 敵の攻撃
- enemy_damage = enemy.attack - self.player.defense if choice != '2' else max(0, enemy.attack - self.player.defense * 2)
- if not self.player.take_damage(enemy_damage):
- return False
- time.sleep(1)
- return True
- def spawn_enemy(self):
- if self.current_stage == 1:
- return random.choice([
- Enemy("情報商材販売員", 20, 5, 5),
- Enemy("高額セミナー講師", 30, 8, 10),
- Enemy("胡散臭いコンサル", 25, 6, 7),
- ])
- elif self.current_stage == 2:
- return random.choice([
- Enemy("仮想通貨煽り屋", 40, 10, 15),
- Enemy("DEX詐欺師", 50, 12, 20),
- Enemy("ポンジスキーム信者", 45, 11, 18),
- ])
- elif self.current_stage == 3:
- return random.choice([
- Enemy("匿名アンチ", 60, 15, 25),
- Enemy("炎上仕掛け人", 70, 18, 30),
- Enemy("まとめサイト管理人", 65, 16, 28),
- ])
- elif self.current_stage == 4:
- return random.choice([
- Enemy("怪しい団体構成員", 80, 20, 35),
- Enemy("黒幕の側近", 90, 22, 40),
- Enemy("世論操作担当者", 85, 21, 38),
- ])
- return Enemy("野良ハゲ", 10, 3, 2) # 予備だぜ
- def explore_area(self):
- event = random.choice([
- "回復ポーションを見つけた!",
- "コインの袋を見つけた!",
- "罠にはまった!",
- "何も見つからなかった…時間の無駄だ。",
- "攻撃力アップ薬を見つけた!",
- "正義の弁護士バッジを見つけた!",
- ])
- print(f"\n探索中… {event}")
- if "回復ポーション" in event:
- self.player.add_item("回復ポーション")
- elif "コインの袋" in event:
- found_coins = random.randint(10, 30)
- self.player.coins += found_coins
- print(f"{found_coins}コインを手に入れた!これでラーメンでも食いに行けるな。")
- elif "罠にはまった" in event:
- damage = random.randint(10, 20)
- print(f"浅ましい罠だ! {damage}のダメージを受けた!安易な情報は危険だ。")
- if not self.player.take_damage(damage):
- return False
- elif "攻撃力アップ薬" in event:
- self.player.add_item("攻撃力アップ薬")
- elif "正義の弁護士バッジ" in event:
- self.player.add_item("正義の弁護士バッジ")
- time.sleep(1)
- return True
- def stage_boss_fight(self):
- self.clear_screen()
- print(f"\n--------------------------------------------------")
- print(f" ステージ {self.current_stage} ボス戦だぜ!")
- print(f"--------------------------------------------------")
- boss = self.spawn_boss()
- print(f"大いなる敵、{boss.name} が立ちはだかる!浅ましい世の象徴だ!")
- boss.display_info()
- time.sleep(2)
- while boss.hp > 0 and self.player.hp > 0:
- self.player.display_status()
- boss.display_info()
- print("\n--- ボス戦だ! ---")
- print("1. 攻撃 (正義の鉄槌を下す!)")
- print("2. 防御 (身を守り、反撃の機会を伺う。)")
- print("3. アイテム (切り札を使うか?)")
- choice = input("選択しろ (1-3): ")
- self.clear_screen()
- if choice == '1':
- player_damage = self.player.attack + random.randint(0, self.player.justice_power * 3)
- boss.hp -= player_damage
- print(f"パカデブは{player_damage}のダメージを与えた! {boss.name} の残りHP: {boss.hp}")
- elif choice == '2':
- print("パカデブは防御姿勢をとった。ボスの一撃を受け止めるぜ!無用なダメージは避ける。")
- player_damage = 0
- elif choice == '3':
- if not self.player.use_item():
- continue
- else:
- print("無効な選択だ。")
- continue
- if boss.hp <= 0:
- print(f"{boss.name} を撃破した!これでこのステージの闇は晴れたぜ!")
- self.player.coins += boss.coins_drop * self.current_stage
- print(f"{boss.coins_drop * self.current_stage}コインを手に入れた!これで世界を変える第一歩だ。")
- return True
- # ボスの攻撃
- boss_damage = boss.attack - self.player.defense if choice != '2' else max(0, boss.attack - self.player.defense * 2)
- print(f"{boss.name} の猛攻!だが、正義は負けない!")
- if not self.player.take_damage(boss_damage):
- return False
- time.sleep(1)
- return False
- def spawn_boss(self):
- if self.current_stage == 1:
- return Enemy("情報商材の帝王", 80, 15, 50)
- elif self.current_stage == 2:
- return Enemy("仮想通貨の首謀者", 120, 20, 100)
- elif self.current_stage == 3:
- return Enemy("誹謗中傷の総元締め", 150, 25, 150)
- elif self.current_stage == 4:
- return Enemy("浅ましい世の闇", 200, 30, 500) # 最終ボスだぜ!
- return Enemy("謎の支配者", 100, 10, 30)
- # ゲーム実行
- if __name__ == "__main__":
- game = Game()
- try:
- game.start_game()
- except KeyboardInterrupt:
- print("\n\nゲームを中断したぜ。現実から逃げるな!夜明けまで走り続けろ!")
Advertisement
Add Comment
Please, Sign In to add comment