I’m in a class about AI right now and am required to do a project over the course of the entire semester that applies AI in some way. The professor said that it could be pretty much anything in pretty much any language. For reference, the “default” project is writing something to solve the Wumpus world, but the professor said that that would be a little bit too easy and we should try to come up with our own problem. I really don’t know what to do. I’m a big chess player so I was thinking maybe simplifying the game rules a bit or writing something that would play the opening because there are really specific goals in the opening (get space, develop pieces, control the center). Any other suggestions? Thank you.
Share
Normally the way these questions go, I always suggest that you explore a passion you have. If one of your passions is chess, then that’s an ideal domain for an AI project.
It shouldn’t be terribly difficult to come up with a chess program. In fact, you could easily bootstrap things by using an existing chess codebase, and just hollow out their search algorithm and replace it with your own. While there likely be some challenges trying to figure out what the input and output from that top-level function is (based on how the original developers wrote it), it’s a small price to pay to get all of the “boring” work out of the way (reading in moves, showing a board, etc.) for “free”.
Chess is a great domain because it’s a deterministic game with no hidden information. What you’ll be learning is how to write a search algorithm for a chess AI. Since you like chess already, you understand the rules, and you can probably come up with some interesting ideas for an evaluation function (i.e. beyond simple material difference). You can then extend your basic alpha-beta search to include things like a search cache, Zobrist hashing, determining “interesting” lines of play, and so on.