×
Modal Header
Modal Body
Here are all my games, most with advanced AI opponents (bots) built in!
Games with a check mark () have a setting menu (accessible via 's' click) that allow you to save your settings. These settings will be remembered whenever you log in again, even if you log in on mobile devices.
Many of my games with bots use the Monte Carlo tree-search algorithm. In short, it uses statistical sampling of random games as heuristics to build a search tree which it uses to determine the best move.
Some games have an analysis shown (in the bottom-left) giving you the following information:
If you have any more questions about how any of my games were made, you can always find them on GitHub, or just email me directly.
This game is a rather obscure Israeli game that I had lying about my house. It's unique in that despite technically being a 'perfect information' game (omniscient), it requires memory.
The idea is to get your pieces fall out of the ends by placing pieces in one at a time (try the omniscient view style in the settings to understand this better)
Simply click next to an opening to place your disk.
Other settings like the display mode and number of players can be changed in the settings menu.
I was hesitant in making an AI for this game because it defeats the purpose—the bot would have a huge advantage over humans in that it has perfect memory, and I thought that the game without the memorization aspect would be trivial. However, after playing a bit accordingly, it was surprisingly still fun.
I finally decided to try this when my friend challenged me to a week-long AI challenge for the game. I created a working version that seems to play ideally with 2 players in a day (you can see it all on GitHub).
The computer, after doing millions of simulations, seems to think that the first player can always win. Despite this, I seem to always lose against it as the first player (and as second). Go ahead and try for yourselves!
Play the classic Minesweeper game online! Play in various difficulties and board sizes.
You win by revealing all the land but the mines, flags are not necessary but are also not a problem.
Simply click to reveal a square, ctrl + click to place a flag, and shift + click to place a question mark.
I coded the first fully-working version of this game while on a flight from San Francisco to Hawaii. I was on the plane when I wanted to play minesweeper. I didn't have it on my computer, so I programmed it.
While by far the simplest, buggiest, and most sluggish game on the website, the Lame Duck game remains the key attraction of my website for some reason.
Simply move your mouse and the duck will follow. There are no settings.
This game's original version was created in one day, and predates agar.io.
Since then, there have been some minor tweaks to some logistics—how quickly the duck/fish shrink—and only two major tweaks that change the way it works behind the scene to make it much less laggy (try imagining 10 times slower than it is now). Also a large jQuery -> vanilla js conversion did most of that anti-lagging work (jQuery should die).
Play Mancala against a very strong AI (bot), or against another player with you. Nearly everything is customizable—from the number of pits, to the seeds per pit, to the capturing rules. By default, it is set to the Kalah rules.
Get a glimpse into the brain of the bot by showing the Monte Carlo move weights.
The AI difficulty and turn can be changed, but their settings are a bit more technical. Have fun!
Press ‘s’ for settings, or ‘n’ for a new game, or simply click the huge on-screen buttons. Otherwise, simply click on the pit you want to sow.
This is another one of those games that I coded first in Java years back. I wanted to try making an AI years ago, and implemented something akin to Minimax (I didn't know what Minimax was back then), but I stopped working on it when summer began, leaving my AI unfinished. You can find all the code on GitHub
This is the first game I implemented a Monte Carlo tree-search AI for, and it plays very strongly! On larger board sizes, it may be a bit sluggish though.
This uses an optimized implementation of the Monte Carlo tree-search. Email me for more information if you're interested.
Play Weiqi (Go), or Gomoku (5-in-a-line) or Wu! Gomoku comes with an AI (bot).
You can change the board size, basic time control, and handicap.
There are no hotkeys, just hit the "New Game" button to change settings and start a new game. Sorry for the disappointing GUI in the right-hand side :/
There is currently no way to undo moves, so avoid making mistakes.
The Gomoku AI uses pure Minimax, making it very weak relative to my other bots. Surprisingly, it fairs pretty well against some of the popular bots out there online.
Important: This game has been tested to work on Google chrome for Linux Mint, OSX, and android, Vivaldi for Ubuntu, and Microsoft Edge on Windows. It has been confirmed not to work on Firefox or Safari, or Google chrome for Windows. Mileage may vary on other browser / operating system pairs.
This innocuous game of Hangman is designed to be a hacking challenge, but you can now play it in local multiplayer with your friends.
The hacking challenge comprises of four rounds. The first two are easy, and are just meant to get the hang of the game interface, and provide clues for the final two rounds. The final two rounds can be beat by entering the correct guesses like in a normal game of Hangman, but are not meant to be won this way. They are meant to be won by hacking. While no amount of hacking is off-limits, please avoid causing permanent damage to my website, or hacking for purposes not strictly related to beating the Hangman game. If you cause damage to my website, please try to restore it.
To change between the game modes, use the settings.
Play the classic Old Snakey game online! Here you can also play with another player simultaneously, and you can play with an AI opponent!
This version includes 'boulders' or random obstacles, that spawn in every 10 foods eaten (by default). This can be changed, or disabled entirely.
By default, running into the walls kills the snake, but this can be changed in the settings to teleport to the other side of the map.
Control the snake using the arrow keys, and the secondary snake (if multiplayer) using the wasd keys. You cannot access the settings ('s') while a game is going, so hit 'n' to start a new game beforehand.
This is one of the first games I coded when I learned how to make GUIs in Java at school. The first AIs that I made involved much more convoluted code, and you can play against them or see their code in GitHub still in Java.
The shortest path AI implemented here uses a relatively naive breadth-first search implementation, and can be laggy with shorter delay intervals.
Beforehand I tried optimizing breadth-first search to be much more efficient, but in hindsight what I did makes no sense conceptually or logically, but for some reason still plays decently well. It plays significantly faster, so I left the weirdly good flawed version online.
Play Ultimate Tic Tac Toe (a 9x9 tic tac toe variant) online either singleplayer or multiplayer. In singleplayer, play against the strongest Ultimate Tic Tac Toe bot out there (so far), and amongst the fastest!
Get a glimpse into the brain of the bot by showing the move weights—heatmaps of the best moves.
You can also play with some weird Ultimate Tic Tac Toe variants, like anti Ultimate Tic Tac Toe (where the goal is to lose), Tie Tic Tac Toe (where X wants to tie and O wants win), or even a combination of the two! :D
Press ‘s’ for settings, or ‘n’ for a new game. On mobile, hit the 'S' or 'N' buttons on the top navbar ('U' is undo). The settings themselves should be pretty self-explanatory.
Pressing 'u', or hitting the undo button on top undos a move, and on desktop you can also redo moves with 'r'.
When I was 15, I went on a family trip to Sedona, where I played this Tic Tac Toe variant with my older brother, who easily defeated me. 10pm that night, I started programming using my mother’s laptop, on jsbin.com. At 2am, I had a working AI (with more or less the exact same GUI as exists today). Sadly, my brother beat it.
The next day, same thing: I started working at 10pm, and came up with a lot of ways to speed up my program and improve its efficiency (I simultaneously applied many of these improvements to my Connect Four AI as well). At around 12am, I got my brother to play against it again, and he lost. Since then, no human being that has ever beaten it (that I know of).
After a long search, I finally found the only worthy opponent in an app by Magma Mobile (for both Android and Apple). When my AI began, it would always win, but when it went second, it would usually tie, but sometimes win or lose. My AI was still on average stronger, but not by too far. Since then, I’ve made my AI around 10 times faster and 20 times more memory efficient, and it never loses now and usually wins as second.
This uses an optimized implementation of the Monte Carlo tree-search. Email me for more information if you're interested.
Play Connect Four online either singleplayer or multiplayer. In singleplayer, play against a super strong and super fast bot with ranging difficulty levels, from “Stupid” to “Hard” to “Good Luck”. Good luck beating the Good Luck difficulty ;)
By default, you play first and the bot plays second, but this, (along with many other settings) can be modified in the settings (click the ‘settings’ button). You can either choose from the 10 built-in difficulty settings, or power users can choose their values manually.
You can undo moves with the back button, and you can cause the AI to start playing at any specific move using the play AI button. You can also stop the AI at any point by clicking the stop AI button.
The AI works on simulations of games (more simulations means more accurate), and you can see how many simulations it did in the bottom-right corner. If you allow pondering, it will run simulations even when it’s your move, and I’ve found that showing the number of simulations increases pressure on the human player ;)
This uses an optimized implementation of the Monte Carlo tree-search. Email me for more information if you're interested.