THIS ASSIGNMENT IS NOT YET COMPLETE. READ AT YOUR OWN RISK!!!
Final Project: Predator Prey
In this assignment, you will program a multi-robot team of predators to hunt and capture prey. You have five predators, who have limited sonar sensors and the ability to communicate with each other. Their job is to capture two prey, who could start anywhere in the world. It takes four predators to capture one prey. They must position themselves to the North, South, East and West of the prey (or, if you prefer, above, below, and on each side). After a prey is captured, it will stop moving. There is a built-in function to determine how many prey are left.
The configuration files are provided PUT TARBALL HERE.
Inside there is a skeleton file Predator.java for the predator. This is the file in which you should program the logic for hunting the prey. There are three additional java files:
- DataChannel.java -- This is a thread that all of the predator and prey register with. It coordinates sending messages between predators and monitors the robots' locations to kill any prey who are captured.
- Prey.java -- This is the logic for the prey. They are not very intelligent, they move at random.
- Driver.java -- This starts all of the robots and the DataChannel object.
- You may not rely on anything particular to the provided map. If the predators and the prey were to begin in different locations, your code should still work.
- You cannot modify the code in Prey or DataChannel to make it easier to kill the prey (for example, making the prey stationary is not cool).
If you are not sure about the above requirements, feel free to email the TA.
Modify data channel so that there are X seconds of message latency and Y% probability of a message being lost (ie: not delivered). As X and Y increase, do the predators need to adopt a different hunting strategy?
- Submit a tarball of your robot client code using Bb Vista. The tarball should contain a README file with any necessary build instructions or peculiarities of your program.
- If something does not work properly or is incomplete, you must say so in the README.