Contest is now closed. Noah Roberts, as the only submitter, is the winner.
| ![]() | ![]() |
This year's contest is Rock-Paper-Scissors. The contest is to write a program that plays Rock-Paper-Scissors against the other contestants AND against three "dummy" bots which are specified and provided.
The four top placing contestants of this year's contest will each receive a prize. The prizes available are three of $25 gift card to Best Buy and a nice PowerEdge server. If you wish to donate additional prizes to be given away then please contact me!
Thanks to several former students for donating $25 Best Buy gift cards to the contest.
Wow! Kyle Gaspard has donated an impression server as a contest prize.
Dell PowerEdge 1500SC Server UltraSCSI-160 RAID with 2 36GB drives, capable of up to 6 drives in RAID. 1152MB ECC RAM 2x 1.4Ghz Tualatin P-4 2x PCI, 4x PCI-E slots on-board video, LAN No operating system
Note that a team member or representative must be present at the live showdown to be eligible to win a prize.
The game is rock-paper-scissors. Every combination of players will play a match. The order of play is random; that is, which order the matches occur in is randomized. Also, which player is "first" and which is "second" is randomized. Effectively, both players go concurrently, so "first" and "second" is used only for managing the state and has no effect on play.
Each match will consist of 50 rounds. In each round, both players will receive the complete history of moves made by the opposing player and themselves for that round so far. The players will then decide which move to make. The game engine will determine the winner of the round. The winner will receive one point. If the players tie (throw the same move), neither will receive a point.
At the end of each match, the points for each player will be added to their totals.
When all matches all completed, the player with the most points is the winner. In the event of a tie, the human contestants will play live rock-paper-scissors with 3 round matches to determine the winner.
Note that opponents are anonymous, that is, your program will NOT be told the name of the program it is playing against in any match. If you have specific strategies to use against specific players, you must determine which player is which by the sequence of moves.
The contest is open to anyone interesting in programming. However, faculty and staff of South Puget Sound Community College are not eligible to win any prizes.
Each contestant may enter only one program. A team or two or more programmers may also submit a program; but again, each team must submit only one program. Contestants on a team may not also submit individual programs nor participate on other teams.
If a program throws an exception or returns an invalid move, that program will automatically lose the current match and receive NO POINTS for that match regardless of how many rounds in the match it has won so far. In addition, the opposing player will receive 50 points, as if they won each round in the match.
Although there is no programmatic time limit, if programs take more than 5 seconds to make a decision, they may be disqualified and removed from the competition. Intentionally stalling is prohibited.
Cheating is prohibited. Cheating is defined as gaining access to or determining in any way any data that would not be legally available to a human player in your position. In addition, finding the name of your opponent through any means other than your own pattern recognition of moves is prohibited. Using reflection or other techniques to determine your opponent or your opponent's strategy is also prohibited. You may use only the opponent data given to you. Collusion is prohibited. Collusion is defined as communication or signalling through any means between two programs, or between the program and any human, during the game. Connecting to external resources is prohibited. An external resource is defined as any data or computation service which is outside the test machine.
Clarification: "guessing" the random number seed to synchronize your bot with another counts as cheating! So is using reflection to figure out their name, or to instantiate them and see how they work.
Programs which exhibit prohibited or disruptive behavior may be disqualified and removed from the competition.
In you did not know anything about your opponents, it would be very difficult to come up with an interesting strategy. However, you are guaranteed that three of your opponents will be dummy bots whose source code is included in the framework and whose strategies are explicitly known.
Sequential: At the first round of a match, sequential throws rock, then in the next round throws paper, then scissors, then rock, and so on.
The Rock: The Rock always throws rock.
Random: Random throws any of the possible moves randomally.
To enter the contest, each contestant or team must submit their program, including full source code licensed under an accepted Open Source license to the contest organizer at least 24 hours before the contest.
The program must be written in VB, C#, or Java. VB and C# programs must implement the IPlayer interface and be addable to the contest Visual Studio solution. Java programs must use the FilePlayer connector.
The full source code of all programs entered will be made available to the public after the contest.
The contest is now closed.
The framework may be modified as bugs and other problems are discovered. Each contestant is responsible for keeping up to date with the most recent framework.
Version 11Apr2008: 2008SummerContest_11Apr2008.zip
A good way to get started is to view the source of the given bots and start modifying from there.
Canceled due to lack of entries.
The contest is organized and run by Professor Steve Kollmansberger. You can contact him at skollmansberger (at) spscc (dot) ctc (dot) edu. Replace the (at) and (dot) with the appropriate symbols.