Design a bowling score calculator
PremiumMachine codingEasy
- Frame scoring
- Strike spare bonus
- Input validation
Quick answer
This machine coding interview question asks you to design a bowling score calculator. Aim for a design that meets its requirements at the stated scale, then explain its main components, data flow and trade-offs. Interviewers want to see how you scope the problem, size it and defend each choice.
The problem
Build a bowling score calculator for ten-pin bowling, like the scoreboard above each lane. It takes rolls one at a time and returns the score of each frame. The hard parts are bonuses that depend on future rolls, the special tenth frame and rejecting rolls that cannot happen.
A game has 10 frames. In frames 1–9 the player gets up to two rolls to knock down 10 pins. A strike (all 10 on the first roll) scores 10 plus the next two rolls; a spare (all 10 over two rolls) scores 10 plus the next roll. In the tenth frame a strike or spare earns fill balls, so that frame has up to three rolls.
What must a bowling score calculator do?
- Roll: roll(pins) records one roll of 0–10 pins and throws for an impossible roll or a roll after the game is over.
- Score: score() sums the frames whose score is final; a strike or spare still waiting for bonus rolls adds nothing yet.
How well must it do it?
- Correct after every roll: The score and frames are right after each single roll, not only at the end.
- Clear errors: Each rejected roll says why, for example frame 3: 7 + 5 exceeds 10 pins, and leaves the game unchanged.
What scale should you design for?
Use these numbers in your estimates.
The scale numbers unlock with this questionUnlock
Key concepts
- Frame scoring
- Strike spare bonus
- Input validation
- TDD
- State machine
- Unit testing
How you’ll practise
- Requirements
- Entities and interfaces
- Core implementation
- Edge cases and tests
- Extensions
- Wrap-up
Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.
What do interviewers look for?
In any machine coding design round.
- Clarifies the requirements before drawing anything
- Uses a few numbers that actually change the design
- Draws a clear path from the client to storage
- Picks storage and caching with reasons, not by habit
- Explains what breaks first under load and how to fix it
- States trade-offs openly instead of claiming a perfect design
Questions people ask about this interview question
- Which design type is this question?
- It is a machine coding question. You design a bowling score calculator and explain your choices the way you would in an interview.
- Is this question asked at entry level?
- It is marked Easy, so it suits engineers who are new to machine coding interviews. It is also a good warm-up before harder questions.
- What should I cover first?
- Start with the requirements: what the system must do, how well it must do it and which numbers change the design. Agree on scope with the interviewer before you design anything.
- Can I practise it for free?
- It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.
Related questions
Updated · Written by the SevyDevy team