X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=doc%2FWELCOME.txt;h=465ee3441812b246e2f4703b64a67da99544cae9;hb=699697dcaa730ccc26cd570cbf8975e2591344c0;hp=d2fe8309c6456d5bda3b0ffbfb1b1cb0eba08002;hpb=9de8fe1e1b7f8148cbaf850c5fa8dd1082f2353a;p=progcomp10.git diff --git a/doc/WELCOME.txt b/doc/WELCOME.txt index d2fe830..465ee34 100644 --- a/doc/WELCOME.txt +++ b/doc/WELCOME.txt @@ -1,30 +1,115 @@ Welcome to UCC::ProgComp 2010! -This document will acquaint you with the competition: the rules, how to write an agent, and what you need to do to enter. +This document will acquaint you with the competition: the rules, how to +write an agent, and what you need to do to enter. === What is UCC::ProgComp? === -Good question! The facetious answer is that it's the package whose documentation you are currently reading. The long answer is that it's a project of the University Computer Club (UCC), a student club affiliated with the Guild of Undergraduates at the University of Western Australia. UCC::ProgComp is designed to raise interest in programming and raise awareness of what UCC offers. + +Good question! The facetious answer is that it's the package whose +documentation you are currently reading. The long answer is that it's a +project of the University Computer Club (UCC), a student club affiliated +with the Guild of Undergraduates at the University of Western Australia. +UCC::ProgComp is designed to raise interest in programming and raise +awareness of what UCC offers. === Why should I enter? === + For a number of reasons: - there are prizes. - - it's a low-risk opportunity to learn how to program or to practise your programming. You don't need to be an expert to enter, and it's a great way to do things that you might not otherwise get the opportunity to do. + - it's a low-risk opportunity to learn how to program or to practise +your programming. You don't need to be an expert to enter, and it's a +great way to do things that you might not otherwise get the opportunity +to do. - To meet other computer-oriented people around UCC. === What's the basic premise? === -Entry in UCC::ProgComp is by writing an agent that plays a modified version of Rock-Paper-Scissors on the morally bankrupt underworld of RPS Island. -On RPS Island, this classic game is considerably more complex: the attacking agent must bluff to the defending agent before making its real attack. Agents receive a moderate rewarded for being nice to each other and going for a mutually beneficial tie, but receive the most points for stabbing the other in the back. +Entry to the UCC::ProgComp 2010 is by writing an "agent". + +Your agent spends its life in a dystopian RPS underworld, where at any +moment another agent could pick a fight with it, after which your agent +is obliged to pick a fight with yet another. + +On RPS Island, battles are based on Rock-Paper-Scissors, but +considerably more involved: the attacking agent must bluff to the +defending agent before making its real attack. + +If an agent gets picked on for a fight and told rock, paper or scissors, +it can either get modest but mutually beneficial points by trying to +cause a tie, but risk being slaughtered by the other if it's lying (with +a small amount of points awarded if it wins "by accident"), or it can +try to win based on that information and get big points for exploiting +the other agent with a relatively small punishment for being "tricked" +and losing (and no point change in case of an "accidental" tie). + +Thus, in any single round there are bigger rewards and smaller +consequences in "attacking" the rock, paper or scissors that the enemy +agent claims it will use, but cooperation leads to mutual benefit and +good agents should turn against agents that try to exploit them. (The +full points table can be found in POINTS.txt) + +Agents start off with 50 points. If the agent loses all its points, it +dies. If it reaches 100 points, it forms a new agent and both return to +50 points. (However, the arena in which the agents battle is only so big +- if it's too crowded the agent will keep its points and not spawn a +child.) + +The agent can remember who it has battled in the past and what the other +agent has done, but it has no way of communicating this to any other +agent, and any "children" of the agent don't inherit this memory. + +To provide for both smart learning agents and agents that aren't so +complex, both 'long' (1000 round) and 'short' (100 round) variations +will be run. You are not allowed to submit different versions of your +agent for the different durations - you will have to make a tactical +decision about which to target. + -An agent consists of a Python, C/C++, Java or MATLAB file with 3 functions: +=== How do I win? === + +The object of the game is for the descendants of your agent to be the +dominant species. + +Victory occurs when: + * You are the only species left. + * You are the most populous species at the 'end of time'. + * You are the most populous species when the judges determine that the +environment is stable. + * The judges say so. + +The agent that wins the most will be declared the overall victor. + +=== But won't I get thrashed by UCC's leet coders? === + +There are a number of 'arenas' where your agent can battle, so that you +-hopefully - get the opportunity to compete with people of roughly your +own level of experience. + +There will be at least the following arenas: + - an arena for the units CITS1200, CITS1210, and GENG2140. + - an arena for first-years + - an arena for UCC members + - an open arena. + - any other arenas I think of before the submission deadline comes +around. + +You may enter your agent in as many arenas as you are eligible to enter. +However, you must enter the same agent for each arena. + +=== OK: how do I code that? === + +An agent consists of a Python, C, C++, Java or MATLAB file with 3 +functions: * A function to attack another bot. * A function to defend itself against another bot. - * An optional function to receive the results of its battle, so that it can learn how other agents play. + * An optional function to receive the results of its battle, so that it +can learn how other agents play. -=== OK, how? === -Keep reading! Read HOWTO.txt, then go to README.txt to see what other documents are available. +Read HOWTO.txt for more info, then go to README.txt to see what other +documents are available. === I've read everything and I'm still confused! === -Firstly, check the FAQs at http://progcomp.ucc.asn.au -If you're still stumped, contact us via the link at http://progcomp.ucc.asn.au \ No newline at end of file + +Firstly, check the FAQs at . If you're still +stumped, contact us via the link at .