Zulip Chat Archive
Stream: combinatorial-games
Topic: Games with win/lose/draw states
Violeta Hernández (Aug 06 2025 at 06:44):
A lot of "real-life" games aren't just played until you can't move; rather, there are certain end positions categorized as wins, loses, or draws. Think chess, or tic-tac-toe.
Violeta Hernández (Aug 06 2025 at 06:45):
I'm wondering what the best way to represent them would be.
Violeta Hernández (Aug 06 2025 at 06:52):
For games without draws, we could make it so that positions where left wins have a single move to 1, and positions where right wins have a single move to -1. This does feel unelegant somehow, since you're adding extra states that didn't exist in the original game.
Violeta Hernández (Aug 06 2025 at 06:53):
I wonder if a better approach is by using loopy games wholesale. A state where left wins is one with a single left move to itself. A state where right wins is one with a single right move to itself. A draw is a state with both a left and right move to itself.
Violeta Hernández (Sep 09 2025 at 12:37):
I've been thinking about tic tac toe again
Violeta Hernández (Sep 09 2025 at 12:56):
I think using an LGame is by far the most natural representation
Violeta Hernández (Sep 09 2025 at 12:57):
If X wins, have that position loop back to itself for X, and lead to nothing for O
Violeta Hernández (Sep 09 2025 at 12:58):
This position is a stopper (a definition we need to add) so ties aren't possible
Violeta Hernández (Sep 09 2025 at 14:09):
Should Stopper be a typeclass, or just a predicate?
Violeta Hernández (Sep 09 2025 at 14:10):
I don't think it's nearly as compositional as our other typeclasses like Impartial, Numeric, etc. since basically the only results it satisfies is Stopper (-x) ↔ Stopper x and Stopper x.toLGame
Violeta Hernández (Sep 09 2025 at 14:10):
(unless I'm missing something)
Django Peeters (Sep 09 2025 at 15:49):
I think it should be a predicate.
Last updated: Dec 20 2025 at 21:32 UTC