\$\begingroup\$

Most Recent Leaderboard @ 2014-08-02 12:00

| Pos # | Author | Name | Language | Score | Win | Draw | Loss | Avg. Dec. Time | +-------+----------------------+-------------------------+------------+-------+-------+-------+-------+----------------+ | 1st | Emil | Pony | Python2 | 064 | 064 | 000 | 005 | 0026.87 ms | | 2nd | Roy van Rijn | Gazzr | Java | 062 | 062 | 001 | 006 | 0067.30 ms | | 2nd | Emil | Dienstag | Python2 | 062 | 062 | 001 | 006 | 0022.19 ms | | 4th | ovenror | TobiasFuenke | Python2 | 061 | 061 | 001 | 007 | 0026.89 ms | | 5th | PhiNotPi | BayesianBot | Perl | 060 | 060 | 000 | 009 | 0009.27 ms | | 6th | Claudiu | SuperMarkov | Python2 | 058 | 058 | 001 | 010 | 0026.77 ms | | 7th | histocrat | Alternator | Ruby | 057 | 057 | 001 | 011 | 0038.53 ms | | 8th | histocrat | LeonardShelby | Ruby | 053 | 053 | 000 | 016 | 0038.55 ms | | 9th | Stretch Maniac | SmarterBot | Java | 051 | 051 | 002 | 016 | 0070.02 ms | | 9th | Martin Büttner | Markov | Ruby | 051 | 051 | 003 | 015 | 0038.45 ms | | 11th | histocrat | BartBot | Ruby | 049 | 049 | 001 | 019 | 0038.54 ms | | 11th | kaine | ExcitingishBot | Java | 049 | 049 | 001 | 019 | 0065.87 ms | | 13th | Thaylon | UniformBot | Ruby | 047 | 047 | 001 | 021 | 0038.61 ms | | 14th | Carlos Martinez | EasyGame | Java | 046 | 046 | 002 | 021 | 0066.44 ms | | 15th | Stretch Maniac | SmartBot | Java | 045 | 045 | 001 | 023 | 0068.65 ms | | 16th | Docopoper | RoboticOboeBotOboeTuner | Python2 | 044 | 044 | 000 | 025 | 0156.55 ms | | 17th | Qwix | Analyst | Java | 043 | 043 | 001 | 025 | 0069.06 ms | | 18th | histocrat | Analogizer | Ruby | 042 | 042 | 000 | 027 | 0038.58 ms | | 18th | Thaylon | Naan | Ruby | 042 | 042 | 004 | 023 | 0038.48 ms | | 20th | Thaylon | NitPicker | Ruby | 041 | 041 | 000 | 028 | 0046.21 ms | | 20th | bitpwner | AlgorithmBot | Python2 | 041 | 041 | 001 | 027 | 0025.34 ms | | 22nd | histocrat | WereVulcan | Ruby | 040 | 040 | 003 | 026 | 0038.41 ms | | 22nd | Ourous | QQ | Cobra | 040 | 040 | 003 | 026 | 0089.33 ms | | 24th | Stranjyr | RelaxedBot | Python2 | 039 | 039 | 001 | 029 | 0025.40 ms | | 25th | JoshDM | SelfLoathingBot | Java | 038 | 038 | 001 | 030 | 0068.75 ms | | 25th | Ourous | Q | Cobra | 038 | 038 | 001 | 030 | 0094.04 ms | | 25th | Ourous | DejaQ | Cobra | 038 | 038 | 001 | 030 | 0078.31 ms | | 28th | Luis Mars | Botzinga | Java | 037 | 037 | 002 | 030 | 0066.36 ms | | 29th | kaine | BoringBot | Java | 035 | 035 | 000 | 034 | 0066.16 ms | | 29th | Docopoper | OboeBeater | Python2 | 035 | 035 | 002 | 032 | 0021.92 ms | | 29th | Thaylon | NaanViolence | Ruby | 035 | 035 | 003 | 031 | 0038.46 ms | | 32nd | Martin Büttner | SlowLizard | Ruby | 034 | 034 | 004 | 031 | 0038.32 ms | | 33rd | Kyle Kanos | ViolentBot | Python3 | 033 | 033 | 001 | 035 | 0032.42 ms | | 34th | HuddleWolf | HuddleWolfTheConqueror | .NET | 032 | 032 | 001 | 036 | 0029.86 ms | | 34th | Milo | DogeBotv2 | Java | 032 | 032 | 000 | 037 | 0066.74 ms | | 34th | Timmy | DynamicBot | Python3 | 032 | 032 | 001 | 036 | 0036.81 ms | | 34th | mccannf | YAARBot | JS | 032 | 032 | 002 | 035 | 0100.12 ms | | 38th | Stranjyr | ToddlerProof | Java | 031 | 031 | 010 | 028 | 0066.10 ms | | 38th | NonFunctional User2..| IHaveNoIdeaWhatImDoing | Lisp | 031 | 031 | 002 | 036 | 0036.26 ms | | 38th | john smith | RAMBOBot | PHP | 031 | 031 | 002 | 036 | 0014.53 ms | | 41st | EoinC | SimpleRandomBot | .NET | 030 | 030 | 005 | 034 | 0015.68 ms | | 41st | Martin Büttner | FairBot | Ruby | 030 | 030 | 006 | 033 | 0038.23 ms | | 41st | Docopoper | OboeOboeBeater | Python2 | 030 | 030 | 006 | 033 | 0021.93 ms | | 44th | undergroundmonorail | TheGamblersBrother | Python2 | 029 | 029 | 000 | 040 | 0025.55 ms | | 45th | DrJPepper | MonadBot | Haskel | 028 | 028 | 002 | 039 | 0008.23 ms | | 46th | Josef E. | OneBehind | Java | 027 | 027 | 007 | 035 | 0065.87 ms | | 47th | Ourous | GitGudBot | Cobra | 025 | 025 | 001 | 043 | 0053.35 ms | | 48th | ProgramFOX | Echo | .NET | 024 | 024 | 004 | 041 | 0014.81 ms | | 48th | JoshDM | SelfHatingBot | Java | 024 | 024 | 005 | 040 | 0068.88 ms | | 48th | Trimsty | Herpetologist | Python3 | 024 | 024 | 002 | 043 | 0036.93 ms | | 51st | Milo | DogeBot | Java | 022 | 022 | 001 | 046 | 0067.86 ms | | 51st | William Barbosa | StarWarsFan | Ruby | 022 | 022 | 002 | 045 | 0038.48 ms | | 51st | Martin Büttner | ConservativeBot | Ruby | 022 | 022 | 001 | 046 | 0038.25 ms | | 51st | killmous | MAWBRBot | Perl | 022 | 022 | 000 | 047 | 0016.30 ms | | 55th | Mikey Mouse | LizardsRule | .NET | 020 | 020 | 007 | 042 | 0015.10 ms | | 55th | ja72 | BlindForesight | .NET | 020 | 020 | 001 | 048 | 0024.05 ms | | 57th | robotik | Evolver | Lua | 019 | 019 | 001 | 049 | 0008.19 ms | | 58th | Kyle Kanos | LexicographicBot | Python3 | 018 | 018 | 003 | 048 | 0036.93 ms | | 58th | William Barbosa | BarneyStinson | Lua | 018 | 018 | 005 | 046 | 0005.11 ms | | 60th | Dr R Dizzle | BartSimpson | Ruby | 017 | 017 | 001 | 051 | 0038.22 ms | | 60th | jmite | IocainePowder | Ruby | 017 | 017 | 003 | 049 | 0038.50 ms | | 60th | ArcticanAudio | SpockOrRock | PHP | 017 | 017 | 001 | 051 | 0014.19 ms | | 60th | Dr R Dizzle | BetterLisaSimpson | Ruby | 017 | 017 | 000 | 052 | 0038.23 ms | | 64th | Dr R Dizzle | LisaSimpson | Ruby | 016 | 016 | 002 | 051 | 0038.29 ms | | 65th | Martin Büttner | Vulcan | Ruby | 015 | 015 | 001 | 053 | 0038.26 ms | | 65th | Dr R Dizzle | Khaleesi | Ruby | 015 | 015 | 005 | 049 | 0038.29 ms | | 67th | Dr R Dizzle | EdwardScissorHands | Ruby | 014 | 014 | 002 | 053 | 0038.21 ms | | 67th | undergroundmonorail | TheGambler | Python2 | 014 | 014 | 002 | 053 | 0025.47 ms | | 69th | cipher | LemmingBot | Python2 | 011 | 011 | 002 | 056 | 0025.29 ms | | 70th | Docopoper | ConcessionBot | Python2 | 007 | 007 | 000 | 062 | 0141.31 ms | +-------+----------------------+-------------------------+------------+-------+-------+-------+-------+----------------+ Total Players: 70 Total Matches Completed: 2415 Total Tourney Time: 06:00:51.6877573

Tourney Notes

WOO HOO 70 BOTS

Emil is still KOTH with Pony and his new bot Dienstag takes 3rd place

and his new bot takes 3rd place Congrats to Roy for jumping into 2nd place with his Gazzr bot

bot William Barbosa wins the Quick Draw award for his bot BarneyStinson

And Slow Poke award goes to Docopoper for his bots R.O.B.O.T and Concessionbot who were both >140ms per hand

Logs available @ https://github.com/eoincampbell/big-bang-game/blob/master/tourneys/Tournament-2014-08-01-23-24-00.zip?raw=true

Excluded Bots

BashRocksBot - still no joy with .net execing cygwin bash scripts

CounterPreferenceBot - awaiting bug fix

RandomlyWeighted - awaiting bug fix

CasinoShakespeare - excluded because it requires an active internet connection

Original Posted Question

You've swung around to your friends house for the most epic showdown Battle ever of Rock, Paper, Scissors, Lizard, Spock. In true BigBang nerd-tastic style, none of the players are playing themselves but have created console bots to play on their behalf. You whip out your USB key and hand it over to the Sheldor the Conqueror for inclusion in the showdown. Penny swoons. Or perhaps Howard swoons. We don't judge here at Leonard's apartment.

Rules

Standard Rock, Paper, Scissors, Lizard, Spock rules apply.

Scissors cut Paper

Paper covers Rock

Rock crushes Lizard

Lizard poisons Spock

Spock smashes Scissors

Scissors decapitate Lizard

Lizard eats Paper

Paper disproves Spock

Spock vaporizes Rock

Rock crushes Scissors

Each player's bot will play one Match against each other bot in the tournament.

Each Match will consist of 100 iterations of an RPSLV game.

After each match, the winner is the player who has won the most number of games/hands out of 100.

If you win a match, you will be assigned 1 point in the league table. In the result of a draw-match, neither player will gain a point.

Bot Requirements

Your bot must be runnable from the command line.

Sheldor's *nix box has died, so we're running it off his windows 8 Gaming Laptop so make sure your provided solution can run on windows. Sheldor has graciously offered to install any required runtimes (within reason) to be able to run your solution. (.NET, Java, Php, Python, Ruby, Powershell ...)

Inputs

In the first game of each match no arguments are supplied to your bot. In each subsequent game of each match: - Arg1 will contain the history of your bots hands/decisions in this match. - Arg2 will contain the history of your opponents hands/decisions in this match.

History will be represented by a sequence of single capital letters representing the possible hands you can play.

| R | Rock | | P | Paper | | S | Scissors | | L | Lizard | | V | Spock |

E.g.

Game 1: MyBot.exe

Game 2: MyBot.exe S V

Game 3: MyBot.exe SS VL

Game 4: MyBot.exe SSR VLS

Output

Your bot must write a single character response representing his "hand" for each game. The result should be written to STDOUT and the bot should then exit. Valid single capital letters are below.

| R | Rock | | P | Paper | | S | Scissors | | L | Lizard | | V | Spock |

In the case where your bot does not return a valid hand (i.e. 1 of the above 5 single capital letters, then you automatically forfeit that hand and the match continues.

In the case where both bots do not return a valid hand, then the game is considered a draw and the match continues.

Match Format

Each submitted bot will play one match against each other bot in the tournament.

Each match will last exactly 100 games.

Matches will be played anonymously, you will not have an advanced knowledge of the specific bot you are playing against, however you may use any and all information you can garner from his decision making during the history of the current match to alter your strategy against your opponent. You may also track history of your previous games to build up patterns/heuristics etc... (See rules below)

During a single game, the orchestration engine will run your bot and your opponents bot 100 milliseconds apart and then compare the results in order to avoid any PRNG collisions in the same language/runtime. (this actually happened me during testing).

Judging & Constraints

Dr. Sheldon Cooper in the guise of Sheldor the Conqueror has kindly offered to oversee the running of the tournament. Sheldor the Conqueror is a fair and just overseer (mostly). All decisions by Sheldor are final.

Gaming will be conducted in a fair and proper manner:

Your bot script/program will be stored in the orchestration engine under a subfolder Players\[YourBotName]\

You may use the subfolder Players\[YourBotName]\data to log any data or game history from the current tournament as it proceeds. Data directories will be purged at the start of each tournament run.

to log any data or game history from the current tournament as it proceeds. Data directories will be purged at the start of each tournament run. You may not access the Player directory of another player in the tournament

Your bot cannot have specific code which targets another specific bots behavior

Each player may submit more than one bot to play so long as they do not interact or assist one another.

Edit - Additional Constraints

Regarding forfeits, they won't be supported. Your bot must play one of the 5 valid hands. I'll test each bot outside of the tournament with some random data to make sure that they behave. Any bots that throw errors (i.e. forfeits errors) will be excluded from the tourney til they're bug fixed.

Bots may be derivative so long as they are succinctly different in their behaviour. Bots (including in other languages) that perform exactly the same behaviour as an existing bot will be disqualified

There are already spam bots for the following so please don't resubmit

Rock - BartSimpson

Paper - LisaSimpson

Scissor - EdwardScissorhands

Spock - Vulcan

Lizard - Khaleesi

Pseudo Random - SimpleRandomBot & FairBot

Psuedo Random RPS - ConservativeBot

Psuedo Random LV - Barney Stinson

Bots may not call out to 3rd party services or web resources (or anything else which significantly slows down the speed/decision making time of the matches). CasinoShakespeare is the only exception as that bot was submitted prior to this constraint being added.

Sheldor will update this question as often as he can with Tournament results, as more bots are submitted.

Orchestration / Control Program

The orchestration program, along with source code for each bot is available on github.

https://github.com/eoincampbell/big-bang-game

Submission Details

Your submission should include

Your Bot's name

Your Code

A command to execute your bot from the shell e.g. ruby myBot.rb python3 myBot.py OR first compile your both and then execute it. e.g. csc.exe MyBot.cs MyBot.exe



Sample Submission

BotName: SimpleRandomBot Compile: "C:\Program Files (x86)\MSBuild\12.0\Bin\csc.exe" SimpleRandomBot.cs Run: SimpleRandomBot [Arg1] [Arg2]

Code:

using System; public class SimpleRandomBot { public static void Main(string[] args) { var s = new[] { "R", "P", "S", "L", "V" }; if (args.Length == 0) { Console.WriteLine("V"); //always start with spock return; } char[] myPreviousPlays = args[0].ToCharArray(); char[] oppPreviousPlays = args[1].ToCharArray(); Random r = new Random(); int next = r.Next(0, 5); Console.WriteLine(s[next]); } }

Clarification

Any questions, ask in the comments below.