Introducing Immat — a license plate collection game. This was my very first experiment with the Flutter framework, and it’s now available on the Google Play Store.
The game
A few months ago, my uncle set us a quirky challenge: Find a car with a specific license plate number.
In France, plates have the format AA-123-AA
(two letters, three digits,
two letters). The goal was to spot any of the 1,000 cars with the letters
“BR-NA” — the name of a small town on the Croatian coast — and send my uncle a photo.
My family quickly got into the game, scanning plates and jotting down interesting finds. Just four letters… but a finite set, and only 1,000 of each combination.
At the same time, I was learning Flutter. So I built Immat — a simple app to record discovered plates and display your growing collection.



How absurd is it?
Quite absurd.
Let’s start with the simplest goal: collect all 999 possible three-digit combinations.
When you already have x numbers, you’ll need to see roughly (999 - x) / x
cars on average to find a new plate.
At first it’s easy: up to the 500th plate, more than half the cars you see are new, taking fewer than 700 sightings.
But reaching 900 plates requires around 2,300 sightings… and the final one?
You’ll have just a 1/999 chance each time.
And with letters?
For letters, the goal is to complete all plates starting with two specific letters — say BR-...
.
In France, combinations aren’t random: plates are assigned sequentially, so by
the time I built the app, they’d reached around G...
.
You’re now hunting for 23 × 23 - 1
different plates1, each existing
only 999 times across the country’s ~85 million registered plates.
- The first ones appear about once every 160 cars.
- The last? Around once every 85,000.
- Total: over 582,000 cars to check for a full set.
But…
One day, my father did spot the elusive BR-NA plate. So maybe, just maybe, you’ll get lucky too.
1 The “SS” combination is banned, and the letters O, U, and I are avoided because they’re too close to 0, V, and 1.