The Search for Satoshi — Java Text Adventure

A single-player Java adventure game (Zuul variant).
You play an investigator mandated by the IMF to locate Satoshi Nakamoto’s HQ and press the kill-switch to stop Bitcoin—before time runs out.

GitHub Repository Project Report (PDF, fr)

Overview

  • Goal. Explore the suspects’ houses, collect clues and three keys, unlock the trapdoor in Adam’s office, reach the Bitcoin Temple, and press the button.
  • Lose condition. A move counter acts as a timer; too many moves → Game Over.
  • World. A compact village with streets, offices, and special rooms (see map).

Core Mechanics

  • Inventory & weight limit. Pick up and drop items; capacity can be increased by a magic cookie.
  • Locked doors. Multi-key door logic (requires 3 keys) with proper messages on failure/success.
  • Teleporter (Beamer). Charge in one room, fire later to jump back instantly.
  • Transporter room. Exits teleport you to a random room (room randomizer).
  • Backtracking. back uses a stack to return across multiple steps.
  • GUI. Swing UI with command buttons (movement, inventory, beamer, stopBTC).
  • Images & map. Each room has an illustration; HUD shows remaining moves.

Map

Map of the game world with suspects and special rooms
Figure. World layout — streets, suspects’ homes, HQ, and special rooms.

What I implemented

  • Refactoring with encapsulation, HashMap exits/items, and a clean Room / Player / Item / ItemList split.
  • Robust command set (take, drop, inventory, eat, back, charge, fire, stopBTC, …) and JUnit-style tests + Javadoc.
  • Clear win/lose flow and GUI messages; small scripts to auto-test command sequences.