1 Welcome to UCC::ProgComp 2010!
3 This document will acquaint you with the competition: the rules, how to
4 write an agent, and what you need to do to enter.
6 === What is UCC::ProgComp? === Good question! The facetious answer is
7 that it's the package whose documentation you are currently reading. The
8 long answer is that it's a project of the University Computer Club
9 (UCC), a student club affiliated with the Guild of Undergraduates at the
10 University of Western Australia. UCC::ProgComp is designed to raise
11 interest in programming and raise awareness of what UCC offers.
13 === Why should I enter? === For a number of reasons:
15 - it's a low-risk opportunity to learn how to program or to practise
16 your programming. You don't need to be an expert to enter, and it's a
17 great way to do things that you might not otherwise get the opportunity
19 - To meet other computer-oriented people around UCC.
21 === What's the basic premise? ===
22 Entry to the UCC::ProgComp 2010 is by writing an "agent".
24 Your agent spends its life in a dystopian RPS underworld, where at any
25 moment another agent could pick a fight with it, after which your agent
26 is obliged to pick a fight with yet another.
28 On RPS Island, battles are based on Rock-Paper-Scissors, but
29 considerably more involved: the attacking agent must bluff to the
30 defending agent before making its real attack.
32 If an agent gets picked on for a fight and told rock, paper or scissors,
33 it can either get modest but mutually beneficial points by trying to
34 cause a tie, but risk being slaughtered by the other if it's lying (with
35 a small amount of points awarded if it wins "by accident"), or it can
36 try to win based on that information and get big points for exploiting
37 the other agent with a relatively small punishment for being "tricked"
38 and losing (and no point change in case of an "accidental" tie).
40 Thus, in any single round there are bigger rewards and smaller
41 consequences in "attacking" the rock, paper or scissors that the enemy
42 agent claims it will use, but cooperation leads to mutual benefit and
43 good agents should turn against agents that try to exploit them. (The
44 full points table can be found in POINTS.txt)
46 Agents start off with 50 points. If the agent loses all its points, it
47 dies. If it reaches 100 points, it forms a new agent and both return to
48 50 points. (However, the arena in which the agents battle is only so big
49 - if it's too crowded the agent will keep its points and not spawn a
52 The agent can remember who it has battled in the past and what the other
53 agent has done, but it has no way of communicating this to any other
54 agent, and any "children" of the agent don't inherit this memory.
56 To provide for both smart learning agents and agents that aren't so
57 complex, both 'long' (1000 round) and 'short' (100 round) variations
58 will be run. You are not allowed to submit different versions of your
59 agent for the different durations - you will have to make a tactical
60 decision about which to target.
64 The object of the game is for the descendants of your agent to be the
68 * You are the only species left.
69 * You are the most populous species at the 'end of time'.
70 * You are the most populous species when the judges determine that the
71 environment is stable.
74 The agent that wins the most will be declared the overall victor.
76 === But won't I get thrashed by UCC's leet coders? ===
78 There are a number of 'arenas' where your agent can battle, so that you
79 -hopefully - get the opportunity to compete with people of roughly your
80 own level of experience.
82 There will be at least the following arenas:
83 - an arena for the units CITS1200, CITS1210, and GENG2140.
84 - an arena for first-years
85 - an arena for UCC members
87 - any other arenas I think of before the submission deadline comes
90 You may enter your agent in as many arenas as you are eligible to enter.
91 However, you must enter the same agent for each arena.
93 === OK: how do I code that? ===
95 An agent consists of a Python, C, C++, Java or MATLAB file with 3
98 * A function to attack another bot.
99 * A function to defend itself against another bot.
100 * An optional function to receive the results of its battle, so that it
101 can learn how other agents play.
103 Read HOWTO.txt for more info, then go to README.txt to see what other
104 documents are available.
106 === I've read everything and I'm still confused! ===
108 Firstly, check the FAQs at <http://progcomp.ucc.asn.au>. If you're still
109 stumped, contact us via the link at <http://progcomp.ucc.asn.au>.