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