Rogue / NetHack 風の古典的ターンベースローグライクゲーム。Python + curses で実装、外部依存ゼロ(標準ライブラリのみ)。
- 🗺️ 手続き型ダンジョン生成 — 毎回変わる部屋と通路(Rogue 風の BSP 的生成)
- 🌫️ 霧の戦争 — Bresenham 視線による FOV、探索済みエリアの記憶
- ⚔️ ターンベース戦闘 — プレイヤーが動くと世界も動く
- 🐉 9種のモンスター — 階層が深くなるほど強力な敵が出現
- 🧪 多彩なアイテム — ポーション・巻物・武器・防具・指輪
- 📈 成長システム — 経験値でレベルアップ(最大 Lv6)、HP・攻撃・防御が向上
- 💀 永続的死 — 死んだら終わり、セーブなし(古典的ローグライクの真髄)
- Python 3.12 以上
- Unix 系 OS(Linux / macOS)— curses が必要
- 80×24 以上のターミナル
python3 main.py 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
個人利用・学習目的。