---
title: "Outguess Me"
url: "https://aigamehub.app/zh-tw/games/outguess-me-61d5ae"
source: "https://github.com/pisan-labs/outguess-me"
source_type: "github"
play_url: "https://outguess-me.pisan.me"
platform: "both"
login_required: false
pricing: "free"
origin: "original"
ai_tools: ["Claude Code"]
game_languages: ["en"]
author: "pisan-labs"
author_handle: "pisan-labs"
category: "休閒"
categories: ["casual", "puzzle"]
tags: ["browser-game", "n-gram", "prediction", "randomness", "sha-256", "statistics"]
added: "2026-11-05T06:08:50.637Z"
updated: "2026-11-05T06:08:50.638Z"
locale: "zh-tw"
content_locale: "zh-tw"
---

# Outguess Me

一款瀏覽器遊戲，挑戰你隨機按下 F 或 J，而 n-gram 神諭會試著預測每一次按鍵。

## Description

Outguess Me 是一款瀏覽器遊戲，你要盡可能不可預測地按下 F 或 J，而 n-gram 神諭會預測每一次按鍵。在揭曉前，猜測會以 SHA-256 承諾封存；按下 50、100 或 200 次後，分析會顯示命中率、交替與連續長度統計。遊戲包含簡單與困難的神諭模式，以及可分享的重播連結。

## Original post

Press F or J as randomly as you can while an n-gram oracle predicts each key, sealing every guess in a SHA-256 commitment first. Most people lose to it; a breakdown shows the patterns that gave you away. Built with Claude Code.

Topics: claude-code, commitment-scheme, entropy, game, n-gram, prediction, randomness, statistics, typescript

# Outguess Me Press F or J as unpredictably as you can. Before every press an n-gram oracle predicts your next key and seals the guess with a SHA-256 commitment; after the press it reveals the guess and the nonce, and the page re-hashes them to show the oracle did not change its mind. A coin-flipping guesser would be right half the time. Most people drift to 60-70% within 100 presses. Live: [outguess-me.pisan.me](https://outguess-me.pisan.me) ![Fifty F/J presses against the 6-gram oracle, each guess sealed with a SHA-256 hash, ending at 70% for the oracle and a breakdown that finds the presses over-alternate](demo.gif) A take on Scott Aaronson's classic "oracle" demo, prompted by the "Show HN: How random are you?" thread (October 2026). ![Desktop, after a 50-press game the oracle won 34 to 16](desktop.png) ## What you can do - **Play** 50 (default), 100 or 200 presses with the keyboard or the on-screen keys. A game only begins when you press Start, and keys pressed before Start or after the last press are ignored, so the breakdown is never wiped by an accidental extra press. There is no clock: speed does not count. The live view shows the score, the sealed hash for the next press, the last reveal with a "check it yourself" recipe, a strip of recent presses coloured by who won, and a chart of the oracle's hit rate (overall and last 20) against the band a coin-flipping oracle stays inside 95% of the time. - The settings card explains the two oracles in plain words, next to the mode switch. - **Easy mode** is Aaronson's oracle: a 6-gram table (the five previous presses predict the sixth), backing off to shorter contexts while a context is unseen or tied, and betting on a switch when it has nothing to go on. - **Hard mode** is a mixture of six such experts (1- to 6-gram) combined by weighted majority: an expert's weight is multiplied by 0.8 each time it is wrong, with a 1% floor so a benched expert can come back when you change strategy. - **Breakdown** after each game: hit rate with a Wilson 95% interval and a one-sided binomial p-value against a coin, the 6-gram table that read you, run-length histogram against a fair coin, alternation rate (people over-alternate), longest run against the ~log2(n) a coin gives, and bits per press. - **Test any sequence**: paste a string over any two symbols (F/J, 0/1, H/T or anything else) to score something you typed elsewhere or a model generated, or run the oracle against 200 real coin flips from `crypto.getRandomValues` as a control. - **Share links** carry the mode and the raw presses packed six to a character in the URL hash. The score is recomputed by replaying the oracle when the link is opened, so a link cannot claim more than its sequence earns. ## How "bits per press" is estimated For each context length k from 0 to 5 the page runs an adaptive Krichevsky-Trofimov coder over your sequence: each press is coded with probability (count + 1/2) / (total + 1) of what followed the same k presses so far. That is
