Learn riichi mahjong on your own
Ippatsu is a single-player riichi mahjong game that opens in a browser tab, and every opponent is a bot. You can start before you know the rules, but the distinctive part comes after the hand is over: the replay screen reopens a finished match with all four hands and the wall face up, and a notebook screen collects only the hands you dealt into. What follows is what that looks like, in the order you meet it.
You can start before you know the rules
The first time you open the game, a real hand starts before any explanation. A coach sits beside you, tells you one line at a time what to do now, and points at the spot on screen to press. When that hand ends, the Mahjong Classroom route map opens.
The route map looks like a subway map. Each station is one lesson, and there are twenty-four stations on five lines: Tiles and Table, Completing and Riichi, Using Others' Tiles, Points and Defense, and Real Play. You do not have to go in order. Tap any station to enter it right away, and finished stations are marked on the map.

If you already know mahjong, pick Straight to real play after the first hand. The classroom never locks, so you can come back for just the stations you are curious about. And if you head for Seoul before finishing the classroom, the game does not block you: it suggests the classroom first, then lets you through if you still want to go.
Fifteen match stages, and second place clears them
Leaving the classroom takes you to the map. The 15 stages are grouped into five cities, Seoul, Incheon, Busan, Osaka and Tokyo, and every one of them is a real four-player match. Thirty NPCs appear as opponents, and later cities field bots set to higher difficulty tiers. You choose the length before a match starts: East-only (4 hands) or a full game (8 hands), as scheduled. If the leader is short of 30,000 points at the final hand, it does not end there: play runs on for at most one more wind.
The clear condition is what matters most to a beginner. Second place clears the stage; first is not required. In a four-player game, counting only first place means you can improve and still be held at the same stage by luck alone. So the top half ("you did not lose this one") counts as a pass.
A third-place finish is not wasted either. Take third four times at the same stage and it counts as a breakthrough to the next one. Fourth place does not accumulate, so the honest phrasing is "keep finishing third". Either way, no stage can hold you forever.
The assist, and the numbers behind it
The coaching assist has five levels (Off, Minimal, Brief, Standard, Detailed); each includes everything below it, and it starts on Standard. Minimal shows, for the tile you are about to discard, which tiles you would then be waiting on and how many of each are left. Brief adds shanten at all times plus han and expected score per wait. Standard adds a recommended discard along with safe tiles, omote-suji, kata-suji and danger tiers, and Detailed speaks in sentences: whether this is a spot to call, whether it is time to defend.
Danger comes in four tiers: safe (genbutsu, meaning that player discarded it or it already passed them without a ron, so they cannot ron it), omote-suji, kata-suji, and dangerous. Hover a legend row (or touch it on a phone) and the screen explains the term itself, for example that omote-suji is only guaranteed against two-sided waits and stays risky against kanchan, penchan, shanpon and tanki. This game does not estimate opponents' hands. The four tiers sort only what can be argued from what opponents have discarded. That is why you will never see "this tile is N% dangerous".

The recommendation is not simply the fastest tile. It decides push or fold first, and when the answer is fold, danger becomes the primary key. Efficiency only breaks ties between tiles of the same tier. That ordering exists to remove a contradiction: advice that says "safe tiles first" while the board points at a dangerous one.
This part was measured, not guessed. Running 3,000 hands before the fold judgment and 3,000 after, against the same normal-difficulty bots, the deal-in rate fell from 15.5% to 13.7% and the win rate held at 25.1% (unchanged, not a fraction of it traded away). There is a cost: of the hands that reached an exhaustive draw, the share ending in tenpai fell from 50.8% to 45.1%. Folding early makes that inevitable, and it was measured and kept in the record along with the rest.
Replays with every hand face up
Matches are recorded without you turning anything on. The Replay Room keeps the 20 most recent; past that, the oldest go. Star the ones you want to keep and they survive being pushed out.
The replay steps a move at a time, and all four hands are open. What each opponent was holding, whether they were tenpai, what they were waiting on: all of it, seat by seat. The wall is laid out in draw order with the next tile, the dora and ura dora, and the replacement tile a kan would draw. It is the same round again, with everything that was hidden the first time laid open.
Each bot move carries the reason it was played. "Defense: this tile has already passed the riichi player, so it is guaranteed safe against them." "No gain from calling: shanten wouldn't drop, or the yaku would disappear." One line, that turn's reasoning. Where the reason was efficiency, the tiles that actually open up after the discard are shown as images with how many of each remain.
If stepping through gets tedious, "Next divergence" jumps straight to the next move where the recommendation and your actual choice parted ways. Skipping moves with no decision in them (bot draws, forced discards after a riichi) is on from the start. Your own moves are never skipped.
A notebook of the hands you dealt into
The Mistake Notebook collects only the moments you were ronned. Open one and the hand you held is rebuilt exactly as it was, ready for you to choose again.
It does not tell you the right answer, and it does not grade the tile you pick. A notebook that never says what the mistake was sounds odd, and it is deliberate: pushing with a good hand and getting hit is a legitimate choice, not an error. A bad result and a bad decision are different things, and blurring them teaches only fear.
What it does instead is lay out facts. While you are choosing, opponents' hands stay face down. Being shown tiles you could not see then would not train anything. Once you choose, an evidence table opens. Some of it is what you could have held at the time: if there was a riichi, which tier the assist would have called that tile; where your hand stood after the discard; which tile the assist itself would have picked; and, had you folded, which tile was best by the folding criteria.
The rest is only knowable once the hand is over: what the winner won with, what they were waiting on, how far the score moved. And at that point all four hands open as well. On screen these run together as one list with no divider between them. Splitting them in two is this article's device for reading order; the screen only lists facts. Either way, the judgment is yours.
The safety marks here are measured differently from the ones in a match, and the screen says so before you ask: in a match the reference is the player who declared riichi, while here it is the discards of whoever actually ronned you. That is why marks appear even in hands where nobody declared.
Deal-ins it cannot handle are not dropped in silence. It prints the counts. Hands where you were in riichi and had no tile to choose; chankan, where there was no discard at all; and records that today's rules can no longer unfold. How many of each fell out is on the screen, because a short list and a clean record are not the same thing.
In fairness
The classroom will not manage your progress for you. Nothing locks and no order is enforced, so where you start and when you leave for real play are both your call. If you are new, taking the lines in order is the least confusing route, but the game will not stop you from doing otherwise.
Even with the assist on Detailed, its highest level, matches that include a strong opponent hide the steps-to-complete readout. It is not missing (later stages were built to withhold it), and the pre-match briefing states in one line what applies to that match.
Every opponent is a bot. The things you can only learn across a table from people (reading someone's habits, being read yourself) are not here. Think of it as the place to build the skeleton of rules and judgment on your own.
Where to look next
There are no rules explanations on this page. The yaku list, the scoring tables and fu counting live in the rulebook, which computes its values with the same code as the calculator inside the game.
Rulebook: rules and the yaku list
When one particular position is nagging at you, the analyzer takes it. Enter the hand, the dora and the opponents' discards, and it works out the scoring and a recommended discard. It is a way to set a spot you let slip during a match back up and argue it out.