Skip to content

Zigler/thrill_digger_solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Thrill Digger Solver (Skyward Sword)

A browser-only JavaScript solver for the Thrill Digger minigame in
The Legend of Zelda: Skyward Sword.

This tool analyzes the visible rupee clues you reveal in-game and recommends the best next move using exact probability calculations, similar to a Minesweeper solver.


✨ Features

  • Exact probability solver

    • Computes the chance each unrevealed square is a bad spot (Bomb or Rupoor)
    • Uses constraint satisfaction and weighted enumeration (not heuristics)
  • Best Move button

    • Picks a single recommended square
    • Minimizes risk first
    • Breaks ties by maximizing information gain
  • Supports all difficulties

    • Beginner (5×4, 4 bombs)
    • Intermediate (6×5, 4 bombs, 4 rupoors)
    • Expert (8×5, 8 bombs, 8 rupoors)
  • No dependencies

    • Single HTML file
    • Runs entirely in your browser
    • No tracking, no storage, no network calls

🎮 How Thrill Digger Is Modeled

Thrill Digger behaves like Minesweeper with range-based clues:

Rupee Adjacent Bad Spots
Green 0
Blue 1–2
Red 3–4
Silver 5–6
Gold 7–8

Bad spot = Bomb or Rupoor
Bombs end the game; rupoors subtract rupees, but both count as “bad” for clue purposes.


🧠 How the Solver Works

  1. Manual input

    • You enter the results of each dig (rupee color, rupoor, or bomb)
  2. Constraint extraction

    • Each revealed rupee generates a numeric range constraint on adjacent cells
  3. Exact enumeration

    • Unknown cells touching clues (“frontier”) are exhaustively enumerated
    • Remaining unknown cells are handled combinatorially
  4. Probability calculation

    • For each unknown cell:
      P(cell is bad)
      
  5. Best move selection

    • Primary: minimize probability of a bad result
    • Tie-breaker: maximize expected information gain
      • More adjacent unknown cells
      • More adjacency to existing clues

This mirrors optimal Minesweeper-solving strategies.


🖱️ How to Use

  1. Clone or download the repository
  2. Open thrill-digger-solver.html in any modern browser
  3. Select the game difficulty
  4. Click cells to enter what the game revealed: ? → G → B → R → S → ★ → Ø → 💣 → ?
  5. Use the controls:
  • Solve / Update probabilities — highlights safest and riskiest cells
  • Best move — highlights the single recommended click

Hover over unknown cells to see their exact bad probability.


⚠️ Limitations & Assumptions

  • The solver does not optimize rupee payout
  • Thrill Digger does not publish a rupee distribution
  • The solver focuses on survival and information, not expected rupees

Assumes:

  • Correct user input

  • Standard Thrill Digger rules

  • No hidden modifiers or scripted boards

  • With no revealed clues, probabilities default to uniform.


📂 Project Structure

'''text thrill-digger-solver.html # Entire application (HTML + CSS + JavaScript) README.md # Documentation LICENSE # GNU General Public License v3.0 text '''

🤖 Code Generation & Attribution

This project’s code was generated by ChatGPT 5.2 through an iterative, conversational design and refinement process.

📜 License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0-only).

See the LICENSE file for the full license text.

About

An HTML based solve for the thrill digger game in the Legend of Zelda: Skyward Sword

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages