Skip to content

ykkn0113/roguelike

Repository files navigation

Dungeons of Doom

Rogue / NetHack 風の古典的ターンベースローグライクゲーム。Python + curses で実装、外部依存ゼロ(標準ライブラリのみ)。

roguelike python deps

✨ 特徴

  • 🗺️ 手続き型ダンジョン生成 — 毎回変わる部屋と通路(Rogue 風の BSP 的生成)
  • 🌫️ 霧の戦争 — Bresenham 視線による FOV、探索済みエリアの記憶
  • ⚔️ ターンベース戦闘 — プレイヤーが動くと世界も動く
  • 🐉 9種のモンスター — 階層が深くなるほど強力な敵が出現
  • 🧪 多彩なアイテム — ポーション・巻物・武器・防具・指輪
  • 📈 成長システム — 経験値でレベルアップ(最大 Lv6)、HP・攻撃・防御が向上
  • 💀 永続的死 — 死んだら終わり、セーブなし(古典的ローグライクの真髄)

🔧 必要環境

  • Python 3.12 以上
  • Unix 系 OS(Linux / macOS)— curses が必要
  • 80×24 以上のターミナル

🎮 実行方法

python3 main.py

🕹️ 操作方法

移動(8方向)

    y   k   u
     \  |  /
  h  ── @ ──  l
     /  |  \
    b   j   n

矢印キー(4方向)とテンキー(1-9)にも対応。

アクション

キー 操作
. 5 s Space 待機(1ターン経過)
g , 足元のアイテムを拾う
> 階段を下りる
i 持物を使用・装備
d アイテムを捨てる
c キャラクター情報
Q Esc 終了(確認ダイアログあり)

👾 モンスター

文字 名前 出現階層 特徴
r 巨大ネズミ 1-2 最弱。経験値少
b コウモリ 1-4 素早い
k コボルト 1-4 入門の敵
o ゴブリン 3-4 小型 humanoid
O オーク 3+ 中堅戦力
s スケルトン 5+ アンデッド
G ゴースト 5+ 霊体
T トロール 5+ 高HP・高攻撃
W レイス 7+ 最強クラス

🎒 アイテム

文字 種類
! ポーション 治癒の薬 / 特大治癒の薬
? 巻物 雷撃 / 混乱 / 火球
) 武器 短剣 / 剣
[ 防具 革鎧 / 鎖帷子
= 指輪 力の指輪 / 守りの指輪

🎯 目標

ダンジョンの深層へ潜り、モンスターを倒して強くなる。死は永続的 — セーブはない。どこまで深く潜れるかが勝負。

📁 ファイル構成

main.py              エントリポイント、タイトル/ゲームオーバー画面
setup_game.py        プレイヤー生成、新規ゲーム初期化
engine.py            ゲーム状態・ターン処理・描写の中核
input_handlers.py    キー入力 → Action 変換、メニュー状態管理
render_functions.py  マップ・HUD・メニュー描画
game_map.py          タイル定義、GameMap、部屋
map_gen.py           ダンジョン生成(部屋と通路方式)
fov.py               視界計算(Bresenham 視線)
entity.py            Entity / Actor / Item 基底クラス
components.py        Fighter / AI / Level / Inventory / Equipment / Consumable
entity_factory.py    モンスター・アイテムのテンプレート定義と配置
action.py            プレイヤー・モンスターの行動(Action システム)
message_log.py       メッセージ履歴管理
colors.py            curses カラーペア定義
exceptions.py        ゲーム状態例外(Impossible / GameOver)

🏗️ アーキテクチャ

コンポーネント指向のエンティティシステムを採用。詳細は AGENTS.md を参照。

graph TD
    MAIN[main.py] --> SETUP[setup_game.py]
    SETUP --> ENGINE[engine.py]
    ENGINE --> IH[input_handlers.py]
    ENGINE --> RF[render_functions.py]
    ENGINE --> EF[entity_factory.py]
    ENGINE --> MG[map_gen.py]
    ENGINE --> FOV[fov.py]
    IH --> ACTION[action.py]
    EF --> COMPONENTS[components.py]
    COMPONENTS --> ENTITY[entity.py]
    MG --> GAMEMAP[game_map.py]
    FOV --> GAMEMAP
    ACTION --> ENTITY
    IH -.TYPE_CHECKING.-> ENGINE
    RF -.TYPE_CHECKING.-> ENGINE
Loading

📜 ライセンス

個人利用・学習目的。

About

Dungeons of Doom — Rogue/NetHack風の古典的ローグライクゲーム (Python + curses)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages