Tate Calem

and neat things he's done

tate.calem.2@gmail.com

Programming Projects

Here's a link to my GitHub!


In one programming project I designed a 2-player game (similar to, but more complicated than tic-tac-toe), programmed it, then programmed an AI to play it. At reasonable settings, even I can’t beat the AI!

The AI uses alphabeta tree pruning to search all the relevant moves both players can take up to a certain amount of moves into the future. It compares the game positions at that depth and selects the move that it thinks is the strongest.

a picture of the computer terminal, displaying a 2-player game in progress, with a person playing against an AI.

In another programming project I attempted to solve an unsolved problem in mathematics: finding a polynomial-time algorithm for determining if two graphs are isomorphic. I didn’t end up solving this difficult problem, but did cool things along the way.

First of all, let me explain what that problem is even asking. Mathematical "graphs" are how mathematicians represent networks, using dots (called vertices) and connections between the dots (called edges). Two graphs are isomorphic if (essentially) you can rearrange one to look exactly like the other.

In the top animation, the two graphs are isomorphic. You can see the mouse rearrange the left one to look like the right one.

A gif of two different graphs.  A cursor drags the vertices in the left one around until it looks like the right one.

In the bottom animation, the graphs are not isomorphic. No amount of rearranging will get the left graph to look like the right one.

A gif of two different graphs.  A cursor drags the vertices in the left one around, but can't get it to look like the right one.

Here are some key features of the project:

Games

A few years back I made a short video game, and here’s a link to it.

It's a puzzle platformer game where your character can mind-control stone golems to push or break blocks. The game was designed in the Unity game engine, with programming done in C#. The art was made in a browser-based pixel art maker, and the music was made in a program called Bosca Ceoil.

a picture of an 8-bit-style puzzle platformer.  There's a small human character next to a large stone golem character

The Game AI in the “Programming Projects” section can play a game I made up called Crisscross.

Here's a brief explanation of the rules. An example game is shown to the right.

  • Player 1 and Player 2 take turns writing their number in a circle on a grid space.
  • Draw a connection between two of the same number if they're aligned vertically or horizontally with no other numbers in between.
  • Each player's score is the sum of the length of the connections between their numbers, and players get an extra point each time one of their connections is drawn across an opponent's connection.
a gif of a pen-and-paper game.  Blue plays red.  Both players write circles with their number onto the grid, then connect their circles.

I'm currently developing a board game themed around hiring circus performers. Here's some of the placeholder art I’ve made.

Puzzles

I enjoy solving and creating puzzles, so here's one for you. Guess the 4-digit combination from the clues below.

Result:


Want more puzzles? Play the game I made! There's a link at the top of the "Games" section of this website.