So there's this card game called Spot It. There are 55 cards each with 8 symbols on it. Typically the game is played where a target card is flipped up and players try to match the next card from their hand to the target card.
The interesting thing about Spot It is that every card shares exactly 1 matching symbol with every other card in the deck. This is due to a combinatronic trick.
The number of cards and symbols C are calculated like so:
C = q² + q + 1
And the number of symbols per card S is
S = q + 1
So, for any value of q you can figure out a set of symbols and cards that operate the same as Spot It.
Now, the thing that caught my attention while playing Spot It is how when I commit to playing a card, it completely changes the strategy everyone else must use, because now they must match their card to my card rather than the target card. Each card that is played totally resets the symbol matching process.
There are no turns. When someone plays a card, it creates a checkpoint in time that alters the game state and completely changes each player's strategy.
I have been interested in how to establish a chronology of events in a trustless way without a blockchain. I am curious if this symbol matching mechanism could be abtracted to a cryptographic operation where each commitment by a party changes the requirements for the next commitment. If the commitment is linked to an event or action, it could establish a definitive ordering of events even when no trusted clock is available.
There may be better ways to do this already, such as collaborative hash chains, but I still think the idea is worth exploring.
Another interesting aspect of this combinatronic trick is that you can visualize the set of cards and symbols with lines and points respectively. You can draw the points and connect them with lines such that each point has exactly S lines and any two lines may only share 1 point. It gets really difficult after q=2 but I did it for q=3 😅