Sunday, July 30, 2017

Elwyn's CG Videos

Elwyn Berlekamp's video-talk at Fundy and Games, "A Program of Introductory Videos on Combinatorial Games", alerted me to something I didn't realize: Elwyn's been creating a bunch of videos to introduce CGT.  Since the meta-video presentation, I've been watching the videos.

He's using some good philosophy towards introducing concepts:
  • Examples come before the abstractions.  It's easier to motivate the abstract notions once you've seen some concrete examples.
  • Delay notation as long as possible.  The non-standard notation used while still showing the initial concepts works just fine.  For example, instead of using N and P (outcome classes), the impartial videos start off with just checkmarks (for N-positions) and circles (P).
Here's the sequence of videos on impartial games.  They use an impartial version of chess where each piece occupies it's own board and each piece can only move towards the southwest corner.  The first video describes what happens with one King, and the following videos show what happens as other pieces get added, each time adding a new concept to the theory of games.

Here's the sequence on partisan games.  I haven't watched as many of these yet.

These are a great resource for introducing CGT.  I'd really like to know how effective these are in a classroom setting (at any level).

Friday, July 28, 2017

Game Description: NoCanDo

For the tournament game at Fundy and Games, we played a variant of Domineering known as NoCanDo.  (We spent the first day deciding on the name.)  This is a very nice mix of Domineering with a little splash of NoGo: each domino on the board must be adjacent to at least one uncovered square.  That's it.  You're not allowed to play a domino if it would be completely surrounded or if would cause another domino (already played) to be completely surrounded.

This little rules change makes a huge difference! 
  • You can place pieces aggressively to force an opponent to leave spots open.
  • You need three spaces in a line for a free move, instead of two.  (And sometimes you can't play in those three anyways because it blocks other dominoes.)  Five in a line can often net you two plays, but I don't think I ever had a group worth three.
  • The "liberty" rule is still different from Go and NoGo, because each domino needs the free space, not just each connected group of similarly-oriented dominoes.
  • When the game breaks up into subregions, sometimes they're not all independent.
We held human and computer tournaments at Fundy and Games.  RJN won the human tournament, and my program won the computer tournament.  Richard handily beat my computer player to win the overall title.

Thursday, July 27, 2017

Game Description: Slimetrail

One of the games Ludus has used in their national tournaments is Slimetrail.  This game is simple enough that it can be played by a wide age range, but there are many complicated strategies that can be used by more advanced players.

Slimetrail is played on a connected graph, with one vertex colored Blue, another colored Red, and a third vertex with a moveable piece or token which will create the trail of slime.  The two players alternate turns moving the token one space, then marking the previous space (where the token was) a third color (usually green).  The token can never be moved back to one of these "slimed" spaces.

A player wins when the token is moved onto the space of their color.  Since we want to make sure that one player can still win, it's not allowed to move the token to a space where it can't reach at least one of the two goals.

In all the examples I've seen, Slimetrail is played on a grid, with adjacencies in all 8 directions.  Apparently, it's also played on hex grids.

I wrote a playable version using Javascript.  My auto-AI players are terrible at this game, but you can still try it out.  In order to make this strictly-combinatorial (the last player wins) I altered the rules slightly so that you can't move to your opponent's goal space. 

(Edit: the link to the game didn't auto-clickableify, so I added a clickable link.)

Tuesday, July 25, 2017

Fundy & Games 2017: Quick Highlights

Fundy and Games was excellent!  After driving through Saint John three times, I'm really happy that I got to experience it first-hand.  I love the fog!

Here are some quick highlights (from my perspective):
  • The talks were great!  I'll include another post summarizing these.
  • I worked with a group that solved a complexity problem on the first full day of working groups.  Both of the undergraduates from Plymouth State made significant contributions towards the result!
  • The game Richard proposed, NoCanDo, made for a great conference tournament game.  (I'll have a separate post describing the game, but it's a variant of Domineering.)  
  • My students were interested in participating in a NoCanDo computer tournament, so I wrote some code to model the game, then a display to show the progress in the game.  To give them something to play against, I wrote a very basic AI (just case-based, with no end-game wrangling).  Amie wrote a player with a very similar strategy.  In the computer finals, my code squeaked out a victory against her, winning 507 of 1000 games.  Yikes!
  • Amie also beat me in the human tournament.  I had a slightly better record, then got beaten by RJN in the finals.  RJN went on to handily defeat my computer player to be the Overall 2017 NoCanDo World Champion!
  • I saw the Reversing Falls go backwards!  Sweet!  (I saw them go forwards last year when we dropped Neil off.)
  • Neil and Rebecca McKay were excellent organizers!  I greedily ate many of the snacks they provided.  They even made certificates for the tournament winners!
  • I'm still not sure what a Seawolf is.  

  • I continue to enjoy traveling to Atlantic Canada for games!

Monday, July 17, 2017

Sprouts 2017 Summaries, Session III

After lunch we had three more talks to wrap up Sprouts 2017.

Matt Ferland: Applying Heuristics in Combinatorial Games

My own student, Matt, explained some of the tactics used by AI to play Chess and Go.  He talked about all the different heuristics used to approximate the values of Chess boards (I had no idea how deep this really was) and then gave a good overview of just how far computer Go players have come.

I learned a ton from this!  It's been great to have a student really interested in exploring Artificial Intelligence.

Ethan Wester: Protect the King

Ethan presented a game similar to Crab & Gulls.  This game is partisan, with two kings (one per player).  The bishops, however, now threaten both kings.  A turn consists of first moving your own king (like a King does in Chess) to an unthreatened location, then placing a new bishop that threatens the opposing king.

Ethan found a bunch of values for this ruleset: all integers, all switches, *, *2, Up, Down, 1/2 and 1/4.  Wow!

Cameron Hodgdon: Analysis of a New All-Small Game: An Introduction to Kanye

Cameron created the game Kanye (I think he named his before Ashlee named "Also Kanye").  This is very similar to Also Kanye, except that all pieces are the same color, so the game is dicotic (all-small).  The is still partisan, though: Right chooses a column and moves that column North.  Left chooses a row and moves it West.

Cameron evaluated games for a bunch of different patterns of starting configurations.  Then he even found the atomic weights for these games!


As you can see, it was very easy to get excited about all of the great work these undergrads had done!

Sunday, July 16, 2017

Sprouts 2017 Summaries, Session II

Two talks were given in the second session at Sprouts 2017.

Kristen Falcinelli: Undecidability demonstrated by a tiling game

Kristen showed a new game, Infinitiles, where players each have their own library of Wang Tiles.  The starting position is a finite or infinite grid with at least one tile already on the board.  Each turn consists of a player choosing one of their tiles, then placing a copy of it onto the board somewhere adjacent to one of the tiles already on the board.  The placed tile must match all the other tiles it touches.

Kristen was able to find many values in the game: all integers, all switches, *, Up, Down, and 1/2.  One issue she found was that on an infinite board, it is undecidable to determine whether the game will finish on an infinite board!

Ashlee Tiberio: Also Kanye: Examining patterns in a strip game variant

Ashlee created a grid game similar to Drag Over, but in two dimensions.  On a grid with red and blue pieces, you move by choosing a row or column, then you move all pieces in that space.  If it's a column, you move all pieces up ("North"); if it's a row, you move all the pieces left ("West").  If the pieces fall off the board, they are removed.  You can only make a move if you have pieces left on the board.

Ashlee found number values for all 1-by-n strips where either all spaces had a token (of the same color) or one space had a token.  She also found values for 1-by-n strips with two tokens of separate colors.

Ashlee also noted that the misere version of this game should be called "Imma Let you Finish".

Saturday, July 15, 2017

Sprouts 2017 Summaries, Session I

Here are summaries of the first round of presentations from Sprouts 2017!

Destiny Martin: The game of Locking Nim

Destiny presented a really cool version of Nim: Locking Nim.  The only difference between this and Nim is that players cannot play on heaps of the same size as another heap in the game.  First glance: this should be the same as Nim, right?  After all, in Nim, two equal-sized heaps cancel out in the Nim-sum.  This isn't the same here, though, because there could be three heaps with the same size, and now they're all irrelevant!

Destiny found that with three (non-zero) heaps, games are in P exactly when they nim-sum to zero and the piles have unique sizes.  If they are not unique, the position is in P exactly if they're all the same size.  For four heaps, the regular nim-sum-to-zero property holds for P, whether or not the four piles are unique.


Nick Paolini: Node Hackenbush disguised as a Chomp variant

Nick modified Hackenbush to create Polar Bear Plunge, a game played on a grid-graph.  On one node of the grid sits the polar bear, acting as the ground from Hackenbush.  Players take turns removing other nodes (ice bergs) from the graph.  If another node is not reachable from the bear, it disappears too.

Nick determined formulas for all 1-by-n and 2-by-n boards, no matter where the bear is located.  For other n-by-m grids (both greater than 2), all you need to know is the parity: the game is equal to * if n times m is even, and 0 otherwise!

Emilee Jurkowski: Crab & Gulls

Emilee built a variant of Queens: a game where players alternate turns placing non-threatening Queens onto a chessboard.  Crab and Gulls is similar, except that Bishops (Gulls) are placed instead of Queens and they don't need to threaten each other, but instead must threaten a separate Crab piece.  A turn consists of two parts: place a threatening Gull, then move crab to any other space (not necessarily adjacent) that isn't threatened.  (Both parts of the move need to be completed.)  She came up with two further variants: King & Gulls (the Crab moves like a King) and Rock & Gulls (Crab doesn't move, but each new Gull needs to threaten it).

Emilee calculated the nimbers for all Crab & Gulls starting positions on a 2-by-{2, ..., 8}, 3-by-{3, 4, 5, 6}, and 4-by-{4, 5}.  She also found the King & Gulls nimbers for starting boards for 2-by-{2, .., 11}, 3x{3, ... 7}, and 4-by-{4, 5}.  For Rock & Gulls, she realized that this game is just equivalent to Nim with 4 heaps.

Thursday, June 15, 2017

Game Description: Cutthroat and Impartial Cutthroat

A long time back, while going through Lessons in Play, I got hung up on the definition of Impartial Cutthroat in section 2.2.  I completely forgot about this until recently, when a student asked me to explain what was going on.  Today, I had a look back at Cutthroat and Impartial Cutthroat and confirmed my understanding with Richard Nowakowski.  In this post, I'll try to clarify both games.

Cutthroat is a partisan game played on a graph where each vertex is colored Blue or Red.  In addition, each connected component of the graph must include vertices of both colors.  Each turn a player chooses one of the vertices of their color and removes it from the board, including all incident edges.  Then, remove any connected component that includes only vertices of one color.

Here's a whiteboard sketch of a Cutthroat game tree I made today:

 
Notice that Red has an immediate move to zero by choosing the lower red vertex.  (The remaining two connected components are both mono-colored, so they are immediately removed.)

I've added this as it's own entry in the ruleset table.

Impartial Cutthroat is a bit different.  On one hand, it's the same game if you assume that players can choose vertices of any color AND all vertices are given a unique color.  

Another way to explain it is that a position is an uncolored graph where each vertex must have at least one neighbor.  On a player's turn, they choose a vertex and remove it and all incident edges.  Afterwards, all vertices with no neighbors are also removed.

Yet another way to explain Impartial Cutthroat is by considering it as a variant of Node Kayles.  In Kayles, a player chooses a vertex, then removes that vertex and all of its direct neighbors.  Here, there are two differences:
  • The player must choose a vertex that has at least one neighbor.
  • Only the chosen vertex is removed, not any of the neighbors.
Because of this similarity, I've included it in the ruleset table as a variant of Node Kayles, instead of a standalone game or a variant of Cutthroat.

Monday, May 1, 2017

Sprouts 2017: Overall Awesomeness

I spent all Saturday at Sprouts 2017, and it was excellent!

Craig Tennenhouse organized an amazing experience.  Everyone got a Gamester Pen, a program with a CGT quick-reference-page, a grid-lined notebook decked out with a gamey cover, and a nametag with the logo.

 Official Sprouts Notebook

His students gave amazing talks.  Each had created their own game, complete with actual pieces they had 3-D printed or otherwise manufactured!  It was clear they had spent lots of time analyzing their games, and had learned CGSuite to help get results.  One student had learned about Atomic Weights and applied that theory to their analysis!

Infinitiles

My student, Matt, also gave an excellent talk.  He discussed AI methods to play Chess and Go.  After all the talks, we got into working groups and looked at a few games more deeply.  I am definitely convinced that undergraduates can contribute to this field!

I'll post comments about the individual talks, though that may have to wait until the semester wraps up.  In the meantime, I've already started dreaming about Sprouts 2018.

Sunday, April 23, 2017

Sprouts 2017: A CGT Conference for Undergrads

Exciting news for New England Gamesters: Craig Tennenhouse is organizing the first Sprouts, a conference for undergrad CGT research.  (I helped by making the website.)  Sprouts 2017 will take place at the University of New England (Biddeford, ME) on April 29.  The basic plan is to continue hosting Sprouts every year at either UNE or Plymouth State (NH).

I know this announcement is a bit late, but things have come together only recently.  Inspired by our desire to get our gamester undergrads involved in research, we're harnessing the opportunity presented by Craig's research class.

Hopefully in the future, we'll be able to get the word out sooner to attract visitors from the region.

Monday, January 2, 2017

CGT Facebook group

Simon Rubinstein-Salzedo started a Combinatorial Game Theory Facebook group!  Join us here: https://www.facebook.com/groups/413534538978745/

Happy New Year!