Contest Blog
We will update this part of the website whenever we have extra information to tell you. As we receive questions during the contest we will post appropriate answers here so that everyone has access to the same information.
We will update this part of the website whenever we have extra information to tell you. As we receive questions during the contest we will post appropriate answers here so that everyone has access to the same information.
There are now just a few days left to submit your entry, the submission deadline in June 1st. Up-to-date information regarding the Awards Evening on June 12th can be found here.
If you are planning to continue programming over the next few days, it may still be appropriate to submit now. Please remember that the submission system allows you to resubmit each entry as many times as you wish, please ensure that each time you resubmit, the JAR file is named the same. You may of course submit multiple entries, in this case simply give each JAR file a unique name when submitting. You will need to login before submitting.
Finally, a quick warning about deterministic strategies. Have you tried playing your strategy against itself on continuous play? Do you get exactly the same sequence of moves played each time? This is because you have not introduced any non-determinism into your strategy. If you play another deterministic strategy that beats you, it will beat you all twenty times you play, even if fundamentally you have written a 'better' strategy. Whenever your strategy decides that a set of moves are of similar benefit you may wish to randomly pick which move it chooses. An example of how to make random moves can be found in Tutorial 2 (if you have not yet found the tutorials you'll need to login and view 'Further Resources'). This is a quick fix to introduce non-determinism that will improve your overall solution.
The winners of the BCS Student Contest 2009 will be announced at an Awards Evening in London on June 12th. Simply email your Username to info@bcsstudentcontest.com. Be sure to include 'Awards Evening' in the subject header. Up-to-date information regarding the Awards Evening can be found here.
We wish to encourage beginner programmers to come up with interesting strategies whilst expanding their knowledge of Java programming. As such, the 'beginner' stream offers the less-experienced programmer the chance of winning a prize by specifying that the solution should be non-recursive, with the aim of excluding strategies that attempt to build/use a tree of all the possible moves in an attempt to find the optimal move.
However, it would be possible to develop sophisticated strategies that utilise a tree of moves created without the use of recursion. As such, a panel of five judges will be convened to determine if a solution should be recognised as a 'beginner' entry, in order to achieve the aim of the 'beginner' stream.
As stated, the tournament will run as previously described, with all entries playing all other entries. The entry that tops the league table will be crowned the open contest winner. The source code of the highest-ranked non-recursive entry will then be evaluated by the panel of judges to determine whether there is any reason not to consider the entry an appropriate winner of the 'beginner' stream. Should the judges decide the solution cannot be recognised as a beginner entry, they will continue down the league table until an appropriate winner of the 'beginner' stream is found. The judges' decision will be final.
The following procedure would be used in the event of a tie
A tournament will be held involving the tied teams. If a tie remains further tournaments between the tied teams will be held with a reducing amount of time per play. If we are still unable to find a winner we will look at the average game length (number of moves taken to win) in the original full tournament. Should a tie still exist we will evaluate the average game length for the tournaments held between just the tied teams. In the unlikely event that a tie still remains a panel of judges will be convened to evaluate the source code of the submitted solutions - looking at elegance of design, coding style and good practice. The judges will choose a winner and a ranking for the tied teams. The judges' decision will be final.
The board is a standard size board, 7 columns wide by 6 rows high. This is fixed and will not change during the tournament
Please bear in mind that there is an upload size limit, currently set to 2Mb. The heap size of the tournament platform is also set to 512Mb. So there is a limit to the amount of data that can be stored within your module and held in memory.
There are a number of reasons for stopping you from storing data between moves. In order to protect the cluster, which the contest will be run on, the security policy prevents any access to the file store or any network connections. Your class will be reloaded for each turn; this prevents a malicious player from attempting to take resources away from an opponent. For example, if you could store data to memory between moves you could potentially use up the entire heap space and leave your opponent with no memory. It also prevents players from using learning strategies that would learn from opponents and past games. If these were allowed it would mean the order in which the opponents were played would influence the success of the strategy. Due to the parallel nature used to run the tournament, different strategies would play opponents in a different order and this would be unfair.
You should assume the class has been recreated before each turn. Also note that the platform explicitly prevents the use of static variables. This prevents the use of structures like singleton classes. As such your player should be able to start from any state in any game and be able to play.
To clairfy this, you can submit as many entries as you like, just make sure you give each JAR file a unique name. If you want to submit an update to an existing submission use the same JAR file name and it will overwrite the previous version. We would also like to clarify that a single entry or entrant cannot win both prizes. Once an entry or entrant has won a stream of the contest they will be excluded from winning further prizes.