Over the last few weeks I've been toying with the idea of some kind of game engine. We did this a few times in the AI class and I have a few options for exploration open to me:

  • Backgammon, which is a new game to me that I barely know the rules for.
  • Reversi (aka Othello)
  • Revisit the checkers project from my AI class
  • Revisit the clobber bots project from my AI class
  • Create a Sudoku game generator and solver

While the last one isn't really an AI project, I've still thought it could be a fun problem to solve. 

As a side note, as I am writing this, I started the process for installing the GNU Backgammon game (on Linux) that Wikipedia talks about and noticed that there over 300 major games now for download from the "apps store" on my Fedora 8 box, crazy!

Backgammon and Othello are of the most interest to me actually as they were some of the first game players to be able to beat humans. Both of these have GNU engines I can pit my AI against, so I will likely end up with one of them and it also would be easier to observing the decisions being made at each move unlike the clobber bots game. More next time I get bored and dream about this..

 

A friend sent me this, haven't had a chance to read the whole thing but looks like it could be an interesting and worthwhile dive back into some AI dev to try it out:

http://www.developer.com/java/other/article.php/1546201

As if I don't already have enough going on in life, I've decided to start going back and re-visiting topics from class that were interesting but I didn't feel like I'd explored completely. My AI class was one of those. Likely this will be a long long process, starting with some of the more "fun" programs and working backward. Without checking my subversion repository to verify, we wrote a program to: play checkers, solve theorems and to play ClobberBots; might be one more in that list. Unfortunately I didn't come close to winning any of the competitions; not even. So what will follow will be just slightly less blundered (hopefully) attempts at bettering my abilities. 

Description:

In this assignment, you will develop an agent (or bot) for a video game. More than 1 copy of your bot may be placed in the game. So, for maximum performance you will need to make your bots cooperate with each other - at a minimum they shouldn't intentionally shoot each other. I plan on running tournaments with teams of size 1, 2, and 4. I'll run the tournaments as 1 team vs 1 team round robbin, and free-for-all (everybody all at once). There are two goals in the game:

  • Destroy as many of the other bots in the game as possible by shooting them or ramming them (but if you ram them you die too, so that may not be the best strategy) - worth +10 points for each kill.
  • Survive to the end of the game - worth +40 points.
  • The score for all copies of your bots will be summed.

 


 

Without formally drudging up the results spread sheet (I will post that information eventually), I know that ours didn't fair much better than the bots who didn't know that they were on a team. Something like maybe 70% more likely to win. And against our other classmates I think we were second to last place. I hate even second place. So this program is going to be revisited. However, rather than taking a scenario by scenario approach, I'm going to try to create a bot using genetic algorithms. Until I have more, here's a fun little applet that lets you play with evolving intelligence as a population of "eaters" matures. 

http://math.hws.edu/xJava/GA/ 

© 2017 Chad Jorgenson. All Rights Reserved.