Receive a prompt
Hear a full Ayah, see a Surah name, or continue a short passage.
HOW IT WORKS
Practice in short, repeatable seven-round sessions. Listen closely, estimate from memory, learn from the reveal, then go again.
Hear a full Ayah, see a Surah name, or continue a short passage.
Use what you know and give the prompt a try before moving on.
Wrong guesses cost a try; some modes also give directional or positional feedback.
Use the answer and score as an anchor for the next time you meet it.
FOUR WAYS TO PRACTICE
A complete Ayah is recited. Search the Surah catalog and identify where it belongs in up to five tries.
See a Surah and recall how many Ayahs it contains. Switch between a strict answer and an estimation-first style.
Read a short block of one to three Ayahs and work out what comes next. Choose the next Ayah, or rebuild the following sequence in the right order.
Both versions use seven rounds, five tries, and no hints. Audio, karaoke, transliteration, and translation stay available with the passage.
Move through the Qur’an page by page in book or scrolling view, then hide what you want to recall. There is no score, timer, or attempt limit.
Switch between Mushaf, Ayah + translation, and translation-only reading. Your reader preferences and hidden blocks stay on this device.
Open Learning BlocksSCORING WITHOUT MYSTERY
Your game rules stay the same, even if you refresh or continue on another device.
Recognition, Ayah Counts, and Completion keep their seven-round scoring. Learning Blocks stays open-ended so you can study without a timer or score.
BEHIND THE SCORE
A friendly look at the formula, why the curve is shaped the way it is, and how short and long Surahs stay fair.
Exact Figure asks, “Do you know the count?” Closest Figure asks a slightly different question: “How good is your estimate, and can you improve it using feedback?” Because of that, a near miss should not be treated the same way as a random guess.
Let a be the actual number of Ayahs and g be the player's guess. The raw distance is:
Ten Ayahs away means very different things on a 286-Ayah Surah and a 3-Ayah Surah. Closest Figure therefore uses a tolerance window based on the Surah's own size:
Normally the tolerance is half of the true count. The minimum of three protects very short Surahs from becoming disproportionately harsh.
This converts “how many Ayahs off?” into a scale that can be compared across Surahs of very different lengths.
An exact guess is always worth 100. If e ≥ 1, the guess has moved outside the scoring window and earns zero. The exponent 1.5 makes the curve stricter than a straight line, so genuinely close guesses remain valuable while vague guesses lose value more quickly.
Because Surahs vary dramatically in length. A miss of ten Ayahs can be an excellent estimate for a long Surah and a very poor estimate for a short one.
When a guess is below the answer, you’ll see Higher. When it is above the answer, it responds with Lower. The exact distance remains hidden so the feedback narrows the search without solving the round.
Every try receives its own proximity score. The strongest score is kept, then five points are removed for each additional try:
Best-of scoring preserves the strongest evidence of knowledge while the additional-try cost still rewards reaching the answer efficiently.
Suppose the actual count is 78 Ayahs:
The best single-guess score is 92. Three tries means two additional-try penalties, so the current round value is 82 points.
The scoring curve is only one part of the system. Closest Figure also needs predictable behavior around unusual input, skipping, exhausted tries, and repeated requests.
Zero, negative numbers, decimals, text, and values above 300 are rejected before they affect the round.
Non-finite values and impossible actual counts resolve to zero instead of propagating NaN or throwing.
A one-Ayah miss should matter without becoming disproportionately punishing.
Once the estimate leaves the tolerance window, the proximity score simply stops at zero.
It contributes zero to the score history so skipping cannot be used to avoid the cost of another try.
Abandoning a round is different from banking the best estimate already made.
The best score does not improve, but another five-point try cost is added.
An exact fifth guess can still score 80; otherwise the final best proximity result is settled and the answer is revealed.
Double submissions or replayed requests using old state are rejected instead of mutating the round twice.
The active-round payload does not expose the value being estimated.
The scoring function is deliberately pure: numbers go in and a score comes out. That keeps it straightforward to test, reuse, and compare between client previews and authoritative server scoring.
const FALLOFF_EXPONENT = 1.5;
const TOLERANCE_RATIO = 0.5;
const MIN_TOLERANCE = 3;
export const TRY_PENALTY = 5;
export function closestFigureScore(
guess: number,
actual: number
) {
const distance = Math.abs(guess - actual);
if (distance === 0) return 100;
const tolerance = Math.max(
MIN_TOLERANCE,
actual * TOLERANCE_RATIO
);
const error = distance / tolerance;
if (error >= 1) return 0;
return Math.round(
100 *
Math.pow(
1 - error,
FALLOFF_EXPONENT
)
);
}Validation, try limits, session state, revision checking, and answer secrecy make sure the mathematical model continues to behave fairly in real gameplay.
READY WHEN YOU ARE