|
Name | Description | Time Commenced | Computer |
1.Pangki God 2.Maim Chess 3.Triple Jump 4.Tic-Tac-Toe | Retrograde Analysis Game Solver Chess Engine Checkers (Draughts) Engine Tic-Tac-Toe Playing Program | November 18, 2001 January 28, 1998 October 16, 1997 June 11, 1993 | Athlon 750 486/66 486/66 286/8 |
![]() | ANGKI OD |
Pangki God is a retrograde analysis endgame database solver.It was created as a personal experiment to solve a simple perfect informationtwo player game (i.e. a game in which no luck is involved, and both opponentsknow the full exact state of the board at any given time).Pangki was chosen because 1. it is an extremely simple game,2. I could not find that it had already been solved,and3. I had a computer opponent to test the results against.Normally, retrograde analysis is used to solve as much of a game's endgame aspossible, but because Pangki is so simple, its entire game tree can fitinto the memory of a regular home computer, and thus it can be solve in its entirety. ![]() Legal moves involve moving any one piece orthogonally(either left/right or up/down)into an adjacent empty square.Captures involve placing two of your pieces directly against a singleopponent's piece all in the same row or column. This canresult in two captures in the same move. The fourthsquare of this row or columnmust be empty, which impliesthat you cannot capture a piece with three pieces in line witha single opponent piece, and you cannot capture either opponentpiece by sandwiching two of your pieces in-between two opponentpieces. The game ends when a player only has one piece remaining(as you cannot capture any further opponent pieces with onlya single piece), or when you have no legal moves(which is sometimes much quicker to do on a crowded boardwith only 4 empty squares, rather than tactically capture fiveopponent pieces).
For all of the positions that have a legal number of pieces for both sides(with the exception of one side having only a single piece - which are allpositions in which the game is already over),I have found the following (note that there may be positionswhich have the proper number of pieces, but may be impossible to reach):
These numbers are encouraging for the enjoyment of the game, since so manyof them are non-drawing positions. Any game which is too easy to draw is not usually a fun game to play.Out of these 20,746,908 legal positions, there are 123,439,680possible legal moves, making an average of 5.9 legal moves per position,which approaches the average number of legal moves for both checkers (draughts)and othello (about 7 and 8 legal moves per position, respectively).
Download:Pangki God (53KB) Note: The creation of the database can take hours,depending on the speed of your computer.It takes 51 minutes on my Athlon XP 2500+:"Pangki has been solved in 3037 seconds." |
![]() | AIM HESS |
Maim Chess was a 3rd year Software Engineering(COMP 3653)project atAcadia University.The purpose of the project was to use the software engineering approaches covered in classto engineer, develop, and implement a program of my choice in its entirety from scratch.I chose a chess engine because of my interest in Artificial Intelligence.The entire time frame of the project was restricted to8 weeks and30 man hours, which was met. This time frame includedthe original and revised proposal, the engineering, designing, implementationand the 2,000 word final report of the project.Maim Chess was chosen as the name of the project as an incentive to createthe strongest playing program possible within the time constraints. ![]() ![]() ![]() Download:Maim Chess v0.31 (135KB) The program should run on a 386+ processor. Here is a game I played againstMaim Chess set to think 10 seconds per moveon a Pentium III 550 MHz processor.Although I made a tactical error, whichMaim Chess capitalized on, I cramped its King and Bishop into the corner,rendering the Bishop useless, and its King in an awkward position.A cramped position like this is something that is relatively hard for computersto understand, even with deep analysis.Please view the game below using theMyChessViewer 2.2 Java PGN viewer,which I modified to use my own rendering(specifically for this applet)of the beautifulChess Alpha font / piece setbyEric Bentzen. Here are several annotations of the game above available for download: Download:.PGN File - Jason Doucette's Annotation,Chessmaster 8000 Score Analysis,Chessmaster 8000 Auto Annotation Download:.TXT File -Maim Chess Output |
![]() | RIPLE UMP |
Triple Jump is a checkers (draughts) playing program.It was a project created during my 3rd year Artificial Intelligencecourse(COMP 3613)atAcadia University.The project was not required for the course,but the course raised my interest in ArtificiallyIntelligent programs. So, I decided to implement one on my own.The project was completed in 2 weeks.
It also suffers from the lack of an end game database, and therefore playsthe endgame poorly.Regardless, you have to be a very good checkers player to beatTriple Jump -you will only notice it's weak endgame playif you can reach the endgame.And even then, you cannot play carelessly -Triple Jump was once down 3 pieces to 4 against an experienced player,and it sacrificed a piece to set up a position in which itquadruple jumped all of the opponent's remaining pieces.Obviously embarrassed, the opponent left without saying a word - I wouldexpect that this was probably the only game ever in which an experienced playersuffered a quadruple jump to lose the game.This is just an indication that you cannot start to play carelessly at any pointduring a game, or you will probably lose. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Some of the above pictures show amazing wins that Triple Jump solves.And you thought that checkers was a kids game...To announce a forced win,Triple Jump must analyze every possible outcome of the current position,all the way to the end of the game - where one side has either lost all his pieces, orrendered them immobile.For example,Triple Jump must see 17 moves ahead to announce a "White to Win in 9"- 9 moves for white, and 8 response moves for red.
In thethird picture above,Triple Jump solves an amazing position composed byD. Oldbury as a win for white in seconds.In case you are curious, best play for both sides is shown in the following table:Try it, and see!
In thesixth picture above,Triple Jump is about to play 10-15, which appears to be an error!The move allows white's king to split the advancing pieces (by playing 7-10),something a complete beginner can see.Whitewill win one of the two checkers in it's next move.Why wouldTriple Jump make such an error?It has not made an error -Triple Jump has just played a trap.Would you have fallen into it? If white falls for it by playing 7-10,red wins in five moves. Can you see the win?(Hint: first move to lead to win is 14-18 or 15-18) Remember, the official rules for Checkers is that youmust jump, ifyou can. This adds a lot of strategy to the game. It is, by no means, only akids game. The program should run on a 386+ processor.I know the user interface is not the greatest in this program, and I apologize for this. |
![]() | IC-AC-OE |
Tic-Tac-Toe was a grade XII computer programming final project.The course taught Q-BASIC, and the second-to-last project covered double-nested loops!Considering that I used a FOR-NEXT loop in probably one of the first BASIC programs I had everwritten in grade II, this was not a very challenging course, needless to say.The final project was a random question out of the finalchapter of the book. Since my question was very simple, I asked to program anartificially intelligent tic-tac-toe program instead, and the teacher accepted. The program is coded in BASIC, and does not use search tree methods. All AI is programmedvia patterns in the board. There are 4 levels of difficulty, each level checks for morepatterns (threats) and plays tougher. The highest level, as you probably guessed, will never lose. Download:Tic-Tac-Toe (290KB) Q-BASIC (included) is required to run the source code. |