My Opponent Vicky
I’ve got a folder of great ideas I will never get to, and one meme I’ve had in there for a long time, but never knew how to implement, was a card game involving programming logic, where two players construct applications out of conditional logic to defeat each other. Then I recently found the card game Booleo, where two players race to complete pyramids made out of logic gates that achieve a specific result. It was a quickly-played game, with simple rules, but with an engaging logic that is quite satisfying to play with.
The game starts out with six bits randomly assigned values. The bits you are assigned are the exact opposite of the bits your opponent must work with. The goal is to reduce this random series to a single binary state that matches the rightmost bit in the initial sequence before your opponent. We quickly discovered there were certain logic functions that were much more valuable than others, after reviewing the frequency of results in the function tables:
AND Gates | ||
A | B | = |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
OR Gates | ||
A | B | = |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
XOR Gates | ||
A | B | = |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
So as a good strategy, for your first layer of logic gates, you want to favor AND(0), OR(1), and XOR gates, which are more stable in the event a base binary state changes as a result of a NOT card being played, which I will explain later.
Another aspect of the game that Vicky discovered, is that, if you are working towards a final bit value of one, make sure you don’t have double-zeros for your last two bits, as there is no card that will convert them to one. I wasn’t too happy with the game allowing for a dead end, when in reality, a NAND, NOR, XNOR, or other logic gate not included in the game would have produced a one when given two zeros. A logic game missing even just this one operation is incomplete.
Double Zeros is a Dead End if You Need a One
Where the game becomes fun and chaotic is the NOT cards. Players can place a not card on one of the original six bits, flipping its value. If played properly, this card can invalidate the logic gate relying on this bit. It can also invalidate one of your own logic gates as well.
NOT Card Switches a Bit (Leftmost targeted)
When the one becomes a zero, the AND(1) logic gate converting the 1 and 1 bits suddenly becomes void, which creates a cascade of voids down the pyramid of logic gates, removing them from the game:
Switched Bit Collapses a Logic Tree
At first it seemed like NOT cards could keep the game going indefinitely, with opponents constantly switching bits to crumble one another’s logic, but we quickly uncovered a rule that allows players to play a NOT card in response to a NOT card, cancelling them out. Knowing this, we both made it a point to always keep a NOT card in hand.
Vicky and I took an hour or so to try out the game, which we agree would be a fantastic resource in teaching Boolean logic and logic gates in a fun way to high school and middle school students. I would like to figure out a solitaire version of game play, which I would definitely enjoy playing for relaxation. I could also see an electronic version of the game being highly addictive, as an AI opponent would be fairly easy to program. Overall, this is a game I would like to see more people try out and spread the word. Very cool, highly recommended.
FTW!
Comments
4 responses to “b00le0… bOOleO… Booleo… a Game of Boolean Logic Gates with an Ambiguous Spelling”