Build An Adversary In A Few Easy Lessons

This tutorial will teach you to build a computer game AI using "adversary search". I will show you how to build a computer opponent for a simple "mini" chess game in a series of small steps. In doing this, we will see how these players can be built for other chess-like games. Along the way, you will learn some computer science, some software engineering, and some coding skills. Instead of an exam, your mark will be based on the program you build. There will be a tournament, for fun and for a tiny prize, at the end of the course.

Outline of the Course ([*] is a take-home assignment):

    Wednesday Afternoon
  1. Rules of Mini-Chess
  2. Build a Mini-Chess Board
  3. Build a Mini-Chess Move Generator
  4. Build a Mini-Chess Mover
  5. Build a Mini-Chess Random Player [*]

  6. Thursday Morning
  7. Build a Mini-Chess State Evaluator
  8. Build a Depth-Limited Negamax Search
  9. Do Iterative Deepening Timed Search

  10. Thursday Afternoon
  11. Add Alpha-Beta Pruning to the Search
  12. Order the Moves for Alpha-Beta
  13. Do Do-Undo
  14. Some Improvements [*]

  15. Friday Morning
  16. Validate Your Program
  17. Intro to Adversary Search and Computer Games

  18. Friday Afternoon
  19. Tournament (until end)