Critter Tournament Rules

How do I participate?

If you want to participate in the tournament, just turn in your assignment by , at 11:00pm to be included in the tournament automatically. If you want to be in the tournament but still want to work on your assignment past Tuesday night, submit it an initial time before Tuesday night (with your working Wolf included, and then re-submit it again later once you're done with the rest. The section leader will grade the latest version.

How do the battles work?

The tournament consists of a series of battles. In each battle, two students' Wolf classes will be placed into the simulator along with the other standard animals: Ant, Bird, Crab, Hippo, Vulture, and Stone. We run CritterMain with a standard 60x50 world, using 25 of each kind of animal. Your classes are renamed to unique names for the tournament; so one might be called Wolf_AA_Smith_James and one might be called Wolf_C_BD_Doe_Jane.

We let the battle run until either one student's Wolfs are completely eliminated and/or until at least 1000 moves have passed. At this point, generally whichever student's Wolf species has the more points wins the battle. If the battle is still being hotly contested after 1000 moves, we'll keep the simulator running until the scores and state are fairly stable and the clear winner has emerged.

It's possible that one Wolf will be ahead in terms of points, but all of that species has been killed off (0 alive), and the other student still has Wolves alive and earning points. In such a case, the simulator will keep running to allow the living huskies to overtake the dead one, if this will happen in a reasonably short amount of time.

At the instructor's discretion, if the victory is considered a "weak" victory, we may choose to change the match into best 2 out of 3. This is done by pressing the Reset button and starting the simulator again. A "weak" victory is one that meets one of the following conditions:

Ultimately the final decision about which Wolf "wins" a given tournament battle is solely decided by the instructor. The instructor will generally try to be fair and impartial and follow the above rules as closely as possible.

Which students' Wolves are shown in class on the last day of lecture?

Unfortunately there isn't enough time in the lecture to show every Wolf. We only have time to face off the top 16 in a bracket, NCAA basketball tournament style. In order to figure out which 16 to use for the in-class tournament, we run a "regular season" in which every student's Wolf species will play many battles against randomly chosen opponent Wolf classes. We run a season of many games (at least 64 for each student), then we grab the top 16 students that have the best win/loss records. They advance to the "playoffs", which will take place live in lecture on the last day of class. Wolf #1 battles #16, #2 battles #15, and so on. Winners advance and losers are eliminated. Eventually one Wolf is the champion. (The instructor reserves the right to remove a player from the bracket if that student is not present at lecture on the day of the tournament.)

IMPORTANT NOTE: The simulator runs these 64+ battles for your Wolf by essentially 'resetting' the class between each battle and adding 25 new huskies to the world. It's like if you were to push the 'Reset' button on the simulator user interface. Some students' Wolves crash when the Reset button is pressed, because they assume there will only be 25 huskies that are ever constructed during the entire run of the program, etc. This common problem sometimes prevents some of the very best Wolves from advancing in the tournament. Test your Wolf with the Reset feature to make sure it doesn't crash!

When the simular resets the game, it calls the reset method on each of your Wolf critters. If your class uses any static/shared state, it can be hard to clean that up properly. So therefore the simulator will also check for the following static method and call it on your Wolf class if it is present (the header must match exactly):

public static void resetAll()

Are there any things I am not allowed to do?

A student's Wolf will be given a loss for the battle if it throws an exception. (Be careful with those array bounds and null values.)

A Wolf will be removed from the tournament if it tries to "hack" or "cheat" at the game, such as by writing files on the instructor's computer, connecting to the internet or network, or directly accessing the game model to change its contents or force a certain game result. We run our tournament system with a tighter security setting that blocks such access from most "hack" attempts and sets that student to be the loser of the match. Play fair!

What is at stake? What do I get if I win?

No grade points will be based on tournament performance. For example, a Wolf that sits completely still might fare well in the tournament, but it will not receive full grade points because it is too trivial.

But we will give out not-very-valuable silly little prizes for some of the top-ranked winners. The prizes will not be very neat; the goal is just to have fun and give a very small reward for doing well in the competition.

Why do you reward only bloodshed and violence? Is there no prize for a cool/interesting Wolf that doesn't want to kill others?

If you'd like to submit a cool Wolf that is interesting in a non-violent way (perhaps a neat movement pattern, color, etc.), then submit it with the following comment placed in your Wolf.java file somewhere. Your comment must match exactly, including spelling, spacing, and capitalization

// NON-VIOLENT WOLF

We will search through the student submissions and look for ones with this comment in them and look at them. To encourage creativity and non-violence, we may do a few runs of interesting non-violent "herbivore" Wolves that have been submitted that we think are neat to watch.

This document and its content are copyright © Marty Stepp, 2015. All rights reserved. Any redistribution, reproduction, transmission, or storage of part or all of the contents in any form is prohibited without the authors' expressed written permission.