Games

Below are some games created using this game framework. There are implementations for games like Chess, Checkers, Go, Blockade, Pente, Mancala, Poker, and others.

Download this zip file and unzip it. Then in the bin directory, run one of commands indicated below.

All the two player games on this page use the strategy design pattern to determine how to search. This means that it is easy to plug in alternative search algorithms. So far, I have implemented minimax, negamax, negascout, negamax with memory, negascout with memory, MTD-f, and UCT. Go requires a very different strategy in order to be successful, but for now these methods provide a starting point for experimentation. A more cutting edge version of go can be found in Leela-Zero. If you look in the options, you will see a way to show a visualization of the game tree while you are playing.

Go-Moku

bb4-games -name gomoku

Try to win by getting five in a row before the computer does. I used to play gomoku a lot with my wife when we first met (she is quite good at it). GoMoku is the first game that I created using my game framework. I first created a Turbo Pascal version back in 1991, nbut this one is better. My motivation has been to make it good enough to beat my wife. The object of the game is to get 5 in a row (horizontally, vertically, or diagonally). As with all the games created using this framework, you can play against the computer, another person, or have the computer play against itself.

Go-Moku

Chess

bb4-games -name chess

Chess is a relatively simple game compared to go. I implemented it in only 3 days - after I spent a year implementing go and the rest of my java game framework. Try to beat the computer by check-mating her king. Your pieces are at the top. Checkmate the opponent's King to win.

Chess

Checkers

bb4-games -name checkers

Checkers is a simple game. I implemented it in only 2 weekends after I got the gomoku program running and already established a framework for creating additional games. Capture all of the opponents pieces to win.

Checkers

Go

bb4-games -name go

Go has long been a grand challenge for computer scientists. Until the year 2000, the Ing Foundation offered a million dollar prize to anyone that could create a go program capable of beating a professional player. In 2017, AlphaGo became the first program to beat a professional. I started work on this program in the year 2000. It does not play very well, but it lead me on an interesting journey. For those interested in learning about a deep learning solution to Go, I recommend looking at Leela-Zero.

Go

Blockade

bb4-games -name blockade

Blockade is a relatively new game created by Lakeside. I used to play it as a kid, but I don't see it in the stores anymore. Each player starts with two pawns on designated spaces near their side of the board. They each have (typically) ten blue walls and ten green walls, which fit in the slots between the grid squares and are two squares wide. A player's turn consists of moving his pawn two spaces and then placing a wall anywhere on the grid. The object is to get one of your pawns around the obstacles being set by your opponent and onto one of his or her starting spaces.

Blockade

Hex

bb4-games -name hex

Hex Alternate placing of pieces. When players edges connect by a string of pieces of the same color, that player wins. The player who goes first has a distinct advantage.

Hex

Galactic Empire

bb4-games -name galactic

This multi-player game is loosely based on a game I played on a Comodore 128 back in the late 80's. the original game had only text graphics, but was fun to play with friends in the college dorm at RPI. This version has several improvements: better graphics, robot players, and there are visual indications of fleet sizes and locations.

Galactic Empire

Poker

bb4-games -name poker

This is basic 5 card stud poker. I may expand it to play Texas holdem and other poker variations in the future. There is also a client server version of this and the other games for online play, but its a work in progress. This version takes a little while to start because it checks to see if there is a server first, and has to wait for that check to timeout.

Poker

Mancala

bb4-games -name mancala

Mancala Move stones on your side of the board. To move, you click on one of the bins in your row. This picks up all the stones in that bin and moves them counter-clockwise, putting one stone in each bin as it goes. If the last stone lands in your home, then you go again. If the last stone lands in an empty bin on your side and there are stones in the opponent's cup right across from it, then all the stones in both cups get put into your home.

Mancala

Tic-Tac-Toe

bb4-games -name tictactoe

Implementing unbeatable Tic-Tac-Toe was very easy using the game framework. If you want to add your own game, this implementation may provide a useful example.

Tic-Tac-Toe