Posts

Showing posts with the label ai

trAInsported - the programming game

Image
If you ever felt that Transport Tycoon or Railroad Tycoon made you do too much micromanagement, this is just the kind game for you. In trAInsported, your mission is to write an AI that optimizes traffic better than your opponents. Although, it makes me sad to see such an influential project being hosted via vaporware methods. Setting up any kind of free shared hosting and embedding the small dynamic scoreboard and match parts via an iframe would be trivial. Caching daily stats would also be a good idea. A simple solution would be to use github.io to host the site directly from the repository, which would be both durable and scalable. For the record, if anything happens to the project, here are some relevant pointers: Official (dynamic DNS) site and scoreboard  supposedly running on a Raspberry Pi Source code, documentation, wiki at  github Forum at  indiedb Introduction at  moddb History at  yellloh Summary at  love2d Featured on  indiega...

Nano chess engine at 19 lines

I've minified  bkil-open: edu/ai/nanochess.hs  to 19 effective lines of code in Haskell, and I'm running out of ideas. The goal was to construct a tiny snippet of code that illustrates a real chess engine instead of the ever boring 8-queens. It still wouldn't fit on a black board properly without further pruning. At the same time, trivial concurrency has been introduced to bkil-open: edu/ai/minichess.lhs , which seems to give it a linear boost. My next step in the area is to add interaction and eventually introduce a more advanced algorithm like alpha-beta to gain playable speed on a full board with complete rules.

Simple artificial intelligence for board games with functional programming

This is nearly a trivial project, really. However, I do plan to achieve the most general implementation feasible. What needs to be done are the following. * Internal representation of the game state (board, turn); * Presentation to the user (only coordinates at first); * Input from the human player (coordinates); * Generating valid steps for the AI (simple enumeration at first); * Heuristic function for the AI (something wired-in at first); * AI core: minimax at first, alpha-beta with some simple ordering and pruning later on; * Simple interface that enables a GUI at a later date.