Back in my youth, as part of our AI course we had to write a simple tank program. The problem was thus:
There was an imaginary landscape (I can't remember how big, but for the sake of argument we'll say 100x100 grids).
Each programmer is given 10 tanks which are placed randomly on this grid. They each know their x and y co-ordinates and they can each see for 4 squares around them.
Each tank has a limited amount of energy and can do one of the following each round.
Move forward or backwards 1 square (uses energy)
Turn 90 degrees left or right (uses energy)
Fire 1 shot in any direction for up to 6 squares range (uses 10 points of ammo)
Stay still and get a slight energy charge (and 1 point of ammo)
Shells fired take 1 turn to arrive at their destination. i.e. You fire. If there is a tank on your target grid in the next turn then it will be destroyed.
Simple enough rules.
This was done on a mainframe, and the central control program that ran the scenario dumped text files into each persons account. Each persons program would then read this text file (which would contain what their tanks could see and their energy levels) and create an output file which would specify the tanks instructions for the next round.
We each had a max of 10 minutes run time, any program using more than that would be ignored and their tanks would sit there recharging. (I suspect the 10 minute rule was to stop us all hogging the resources).
Now it strikes me that we could do a similar challenge with VB. A central server could e-mail out the text file, we could write AI routines that would compete, and e-mail the responses back.
They were always talking of adding new complexities like walls, scout tanks (fast, but no guns), long range guns (fixed but long range with shells landing 2-3 turns later), bases to defend, damage to tanks (as opposed to being destroyed with one hit), recharging basis etc. Unfortunately it turned out to be a hectic enough challenge with just those simple rules. (110 students with10 tanks each in mass barny!).
About the only thing they did do, was the final all out war, where all the tanks were split into two teams and set to it. More than a few of the AI's though hadn't finished their Freind or Foe procedures and were pretty much taking pot shots at everyone.
Anyone interested in such a challenge?
SD
