fukuzatsu calculator

Overview
Making of a custom point calculator for Fukuzatsu (Balatro-like real life spicy poker game). As cool as the Fukuzatsu book by NeonRott is, the core mechanics of the game are quite intense. It uses a tarot deck where each card has an effect to modify yours or other players' cards permanently - using a sharpie or destroying by ripping them apart, burning or eating(that is a quote from the rulebook).
The game is great, but the math is somewhat heavy. Designing and coding up a web calculator felt like a fun small challenge that would enhance the gameplay experience by removing one of the main friction points: calculating points.
Details
The point calculation in Fukuzatsu is based on the value of the hand played, plus the individual cards used in the hand. As the game progresses, you add multipliers and extra points to cards, further complicating the math.
For example, if you played a full house containing 2× Ace and 3× 7(with one of the 7's having extra 5x multi), your calculation would work like this:
Get values from everything
40 chips and 4× multiplier from Full house
11 chips per Ace
7 chips per 7 (also let's say that one of the 7's has been modified to have an extra 5× multiplier)
Adding all of those together
Chips = 40(full house) + 11×2(aces) + 7×3(sevens) = 83
Multiplier = 4×(full house) + 5×(from modified 7) = 9
Finally we take both values and multiply them: 83 × 9 = 747, which is your final score
Doing this mentally or using pen and paper is somewhat taxing, especially when you're focused on strategic gameplay. Having a calculator that could handle all of this based on some simple inputs would be a great help.

Solving the Math
I discussed the potential approach with some very big-brained developers (https://github.com/WhatFor). They advised that having an array with predefined values would be the cleanest approach, which looked like this:

After establishing the values, the next job was to start with two base variables that would be modified throughout the calculation process: chips and multi (multiplier). These would serve as the foundation for the entire calculation engine. Where values are added as you go providing you a total straight away
UX
I tested a couple of different approaches while playing the game and found that the best way was to split the process into two steps while displaying the score at all times:
Picking the hand
Adding cards and any extra values if needed
Other Options I Considered:
Single-step process
Have the whole process completed all at once. The issue with this approach was that my intended use case (either phone or tablet) presented problems with limited screen space and required scrolling.
Three-step process
Split everything into individual steps - picking hand, selecting cards, adding extra values. The issue here was that until the game is well underway, there are no extra values to add. Having it as an optional extra step would have made the user flow less clean.
Being primarily a tablet user and writing this calculator mostly for myself, tablet dimensions became my target screen size for the initial iteration.

The app works pretty well on mobile too, but I have ideas for further optimisation which I covered in the Future Improvements section.
Additional consideration was to show breakdown of where points are coming from and allowing user to remove unwanted entries.
UI
This is probably the most exciting part of this project: nailing an aesthetic adjacent to both Balatro (quite clean and pixel-based yet very colourful) and Fukuzatsu (chaotic full art blasted and oozing with flavor).
I borrowed a font and general concepts from Balatro, added some some screen scan effects and colours inspired by Fukuzatsu and added additional twists to incorporate my personal touch. The result is a calculator that feels at home in the Fukuzatsu universe while maintaining the clarity needed for a utility app.
The visual design needed to balance several considerations:
Being visually interesting and thematically appropriate
Maintaining clear legibility for numbers and calculations
Supporting the two-step process I'd designed for the UX
Working across different device sizes
Analytics

Since the app has been running, the device split is quite telling and surprisingly, a lot of users are coming from all over the world. The analytics data provides some fascinating insights into who's actually using the calculator.
Device Usage
The device distribution confirms my initial focus on mobile was the right call:
90% of users access the calculator on smartphones
Only 3% use tablets (despite this being my personal preference)
Desktop users account for just 8% of traffic
This validates my mobile-first approach but suggests I might need to reconsider some tablet optimizations since they represent such a small portion of actual users.
Global Reach
What's particularly surprising is the geographic spread of users. Despite creating this for my personal use and friends, the calculator has found an audience worldwide:
94% of users come from the United States
The UK accounts for 2% of traffic
Japan represents 1% of users
Several countries including France (0.9%), Canada, Germany, Spain, and Indonesia each contribute about 0.4% of users
This global spread suggests the niche appeal of Fukuzatsu extends further than I anticipated, with small but dedicated player communities in multiple countries.
Future improvements
Nothing is ever truly finished, and there are some improvements I would love to add once I find time to get back to this project. Since I have more projects than sense, these upgrades might only happen after someone actually chooses to tip the project, as I've moved on to different things.
Potential improvements include:
Making the points total sticky on mobile and optimising screen usage
Adding support for keyboard enter on extra value fields
Adding an option to preserve values for each round, so you know who the winner is. At the moment, it's very much doing all the calculations and requiring users to write outcomes on a piece of paper
Reflection
This project was a perfect intersection of my interests: gaming, problem-solving, and design. Building utility tools for niche audiences(mostly myself) has always been something I enjoy, especially when I can craft an experience that enhances rather than distracts from the core activity.