---
title: "Outguess Me"
url: "https://aigamehub.app/en/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: "Casual"
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: "en"
content_locale: "en"
---

# Outguess Me

A browser game that challenges you to press F or J randomly while an n-gram oracle tries to predict every press.

## Description

Outguess Me is a browser game where you press F or J as unpredictably as possible while an n-gram oracle predicts each press. Guesses are sealed with SHA-256 commitments before reveal, and after 50, 100 or 200 presses a breakdown shows hit rate, alternation and run-length statistics. Easy and hard oracle modes and shareable replay links are included.

## 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
