Rules of the Challenge
|
SuperBot Rules:
- SuperBot has Super Powers. He can leap buildings in a single bound, move a building's location, or devise new and creative ways to collect the "loot" — it's up to each competitor. See "Programming SuperBot" for limitations.
- SuperBot may not destroy obstacles or opponents, he is a peaceful "Bot".
- SuperBot may only collect and return "loot" to the bank. Obstacles/opponents may be moved but not destroyed.
- SuperBot will encounter a variety of obstacles. It is best to build "SuperBot" with rational search logic rather than a specific map memory. Maps, obstacles, and Bots SuperBot encounters will change throughout the competition.
- All competitor created maps may only use obstacles provided in the current SuperBot World. Characteristics of these obstacles may not change.
Naming the Bot:
- Each Challenger should name their Bot with the Challenger’s name, including first initial, and the first five letters of the Challenger’s last name, followed by Bot.
Ex. Bruce Wayne’s Bot would be named: bwaynebot
- Challengers with a last name shorter than five characters should use their whole last name, Ex. Bat Man’s Bot would be named: bmanbot.
General Programming Rules:
- Challengers may use methods in Character and Obstacle as well as methods that contestants write in the SuperBot class.
- Challengers cannot use attributes from the Character or the Obstacle class unless they are public.
- Challengers cannot use methods or attributes in the Actor class unless they appear in the Character class.
- Challengers cannot use methods or attributes in the World class.
- Challengers may use methods in Java's Math class.
- Challengers should not hardcode any numbers except the numbers -1, 0, and 1.
- Challengers may not import anything other than Greenfoot.
- Challengers cannot change any code provided except for inside SuperBot and the competitor’s World.
Programming SuperBot:
- SuperBot may turn as many times as needed within an act method.
- SuperBot cannot walk on top of obstacles or destroy obstacles, but he may jump, move, and dodge. SuperBot may walk on streets or grass. Get creative, but be careful. Whatever makes the game easier for one Bot may also help an opponent.
- SuperBot’s name (not the class name but the String called name) must be changed.
Scoring in SuperBot:
- Each character gets one point for picking up a bag of loot.
- In order to pick up the loot, SuperBot must be directly on top of the loot.
- When a Bot brushes past the loot and does not appear to pick the loot up the Bot and the loot were not actually in the same cell.
- Each character gets five points for dropping a bag of loot in the bank.
- SuperBot must physically deliver the loot to the bank to make a deposit; he may not throw the loot at the bank or magically transport the loot.
- The loot must be within the image of the bank after a deposit is made (not outside it) or a score will not register.
- If the counter does not register a loot deposit the loot was deposited into a cell near, but not at the bank.
- SuperBot and StickyFingers cannot pick up loot that has been delivered to the bank.
- A character can call the move or transport methods just once within each act method, except when putting loot in the bank.
- When putting loot in the bank, a Bot can move or transport into the bank, drop the loot, then move or transport out of the bank all within one act method.
- SuperBot may not to steal loot from the bank. SuperBot is an honest Bot.
- SuperBot may not drop the loot and pick up again to inflate the score.
- SuperBot's goal is to return all loots to the bank, before StickyFingers snatches it up and takes it to his hideout.
Designing a New World:
- Once SuperBot is programmed design a World that is best suited to the search logic created.
- Only use provided images and obstacles.
- Do not change the characteristics of the obstacles provided.
- When changing the world, be sure to change the value of "numLoot" so it reflects the quantity of loot objects in the world.
- Code GanthumCity with an odd number of Loots to prevent a tie.
- Check that loot is not located directly over any obstacles or on the bank — this will prevent the Bots from clearing the screen and result in a null game.
- Uncomment the following line of code to run a new world "contestantPopulate()"
|
|
|