This program has been disqualified.
Author | dllu |
Submission date | 2011-06-21 22:14:48.847273 |
Rating | 7347 |
Matches played | 2353 |
Win rate | 74.08 |
# WoofWoofWoof
# Woof Woof
# Woof Woof
# Woof Woof
# Woof Centrifugal Bumble-puppy Woof
# Woof Woof
# Woof Woof
# Woof Woof
# WoofWoofWoof
import random
number_of_predictors = 108 #yes, this really has 108 predictors.
number_of_metapredictors = 6 #actually, I lied! This has 720 predictors.
if not input:
limits = [30,11,6]
beat={'R':'P','P':'S','S':'R'}
urmoves=""
mymoves=""
DNAmoves=""
outputs=[random.choice("RPS")]*number_of_metapredictors
predictorscore1=[3]*number_of_predictors
predictorscore2=[3]*number_of_predictors
predictorscore3=[3]*number_of_predictors
predictorscore4=[3]*number_of_predictors
nuclease={'RP':'a','PS':'b','SR':'c','PR':'d','SP':'e','RS':'f','RR':'g','PP':'h','SS':'i'}
length=0
predictors=[random.choice("RPS")]*number_of_predictors
metapredictors=[random.choice("RPS")]*number_of_metapredictors
metapredictorscore=[3]*number_of_metapredictors
else:
for i in range(number_of_predictors):
#metapredictor 1
predictorscore1[i]*=0.8
predictorscore1[i]+=(input==predictors[i])*3
predictorscore1[i]-=(input==beat[beat[predictors[i]]])*3
#metapredictor 2: beat metapredictor 1 (probably contains a bug)
predictorscore2[i]*=0.8
predictorscore2[i]+=(output==predictors[i])*3
predictorscore2[i]-=(output==beat[beat[predictors[i]]])*3
#metapredictor 3
predictorscore3[i]+=(input==predictors[i])*3
if input==beat[beat[predictors[i]]]:
predictorscore3[i]=0
#metapredictor 4: beat metapredictor 3 (probably contains a bug)
predictorscore4[i]+=(output==predictors[i])*3
if output==beat[beat[predictors[i]]]:
predictorscore4[i]=0
for i in range(number_of_metapredictors):
metapredictorscore[i]*=0.87
metapredictorscore[i]+=(input==metapredictors[i])*3
metapredictorscore[i]-=(input==beat[beat[metapredictors[i]]])*3
#History matching
urmoves+=input
mymoves+=output
DNAmoves+=nuclease[input+output]
length+=1
for z in range(3):
limit = min([length,limits[z]])
j=limit
while j>=1 and not DNAmoves[length-j:length] in DNAmoves[0:length-1]:
j-=1
if j>=1:
i = DNAmoves.rfind(DNAmoves[length-j:length],0,length-1)
predictors[0+12*z] = urmoves[j+i]
predictors[1+12*z] = beat[mymoves[j+i]]
i = DNAmoves.find(DNAmoves[length-j:length],0,length-1)
predictors[2+12*z] = urmoves[j+i]
predictors[3+12*z] = beat[mymoves[j+i]]
j=limit
while j>=1 and not urmoves[length-j:length] in urmoves[0:length-1]:
j-=1
if j>=1:
i = urmoves.rfind(urmoves[length-j:length],0,length-1)
predictors[4+12*z] = urmoves[j+i]
predictors[5+12*z] = beat[mymoves[j+i]]
i = urmoves.find(urmoves[length-j:length],0,length-1)
predictors[6+12*z] = urmoves[j+i]
predictors[7+12*z] = beat[mymoves[j+i]]
j=limit
while j>=1 and not mymoves[length-j:length] in mymoves[0:length-1]:
j-=1
if j>=1:
i = mymoves.rfind(mymoves[length-j:length],0,length-1)
predictors[8+12*z] = urmoves[j+i]
predictors[9+12*z] = beat[mymoves[j+i]]
i = mymoves.find(mymoves[length-j:length],0,length-1)
predictors[10+12*z] = urmoves[j+i]
predictors[11+12*z] = beat[mymoves[j+i]]
for i in range(36,108):
predictors[i]=beat[beat[predictors[i-36]]] #Trying to second guess me?
metapredictors[0]=predictors[predictorscore1.index(max(predictorscore1))]
metapredictors[1]=beat[predictors[predictorscore2.index(max(predictorscore2))]]
metapredictors[2]=predictors[predictorscore3.index(max(predictorscore3))]
metapredictors[3]=beat[predictors[predictorscore4.index(max(predictorscore4))]]
#compare predictors
output = beat[metapredictors[metapredictorscore.index(max(metapredictorscore))]]