Hello, it’s been a while since my last devlog but the FuzzBuzz Engine has been getting steady updates, so here is everything that changed.
Developments : Input Validation
Last time I said the script was highly vulnerable to unhandled inputs commas, empty enters, random letters, all of it caused instant crashes. That’s fixed now. Every number input is wrapped in a while True + try/except ValueError loop, so instead of the program dying it just tells you to enter an integer and asks again, forever, until cooperation. I also added range validation on the print limits, so you can’t tell it to start printing from a number that isn’t even in your range. The program refuses.
New: Data Visualization
The counter engine from last time was just sitting there, so I thought I would make use of it. At the end of the run the program prints an ASCII bar chart of how many times FuzzBuzz, Fuzz, Buzz, and regular numbers showed up, built out of █ characters right in the terminal (inspired by terminal UIs like the one for Claude Code). The bars are scaled so large ranges stay readable. Each bar’s width is normalized against the most frequent category:
bar_width = (count / max_count) × max_width
with max_width capped at 25 characters. The biggest category always gets the full bar and everything else is proportional to it.
New: Statistics Report
Below the chart there is now a stats report showing each category as a percentage of the total numbers processed, formatted to two decimal places and aligned into columns with f-strings.
Next Steps
Letting the user choose what numbers Fuzz and Buzz are multiples of (custom divisors instead of the hardcoded 3 and 5), giving the user control over whether the bar chart prints and its max width, and testing for remaining edge cases.
Well that’s all from me,
Kamil