This program has been disqualified.
Author | dllu |
Submission date | 2011-06-22 22:51:30.540244 |
Rating | 6072 |
Matches played | 3 |
Win rate | 100.0 |
# WoofWoofWoof
# Woof Woof
# Woof Woof
# Woof Woof
# Woof Centrifugal Bumble-puppy Woof
# Woof Woof
# Woof Woof
# Woof Woof
# WoofWoofWoof
import random
numPre = 96
numMeta = 24
if not input:
limits = [32,20,10,5]
beat={'R':'P','P':'S','S':'R'}
moves=['','','','']
pScore=[[3]*numPre,[3]*numPre,[3]*numPre,[3]*numPre,[3]*numPre,[3]*numPre,[3]*numPre,[3]*numPre]
centrifuge={'RP':'a','PS':'b','SR':'c','PR':'d','SP':'e','RS':'f','RR':'g','PP':'h','SS':'i'}
centripege={'RP':'a','PS':'a','SR':'a','PR':'b','SP':'b','RS':'b','RR':'c','PP':'c','SS':'c'}
length=0
p=[random.choice("RPS")]*numPre
m=[random.choice("RPS")]*numMeta
mScore=[3]*numMeta
lol=3
helicase=[0]*6
else:
for i in range(numPre):
pScore[0][i]=0.8*pScore[0][i]+((input==p[i])-(input==beat[beat[p[i]]]))*3
pScore[1][i]=0.8*pScore[1][i]+((output==p[i])-(output==beat[beat[p[i]]]))*3
if input==beat[beat[p[i]]] and random.random<0.51:
pScore[0][i]=0
if output==beat[beat[p[i]]] and random.random<0.51:
pScore[1][i]=0
pScore[2][i]=0.87*pScore[2][i]+(input==p[i])*3.3-(input==beat[p[i]])*0.9-(input==beat[beat[p[i]]])*3
pScore[3][i]=0.87*pScore[3][i]+(output==p[i])*3.3-(output==beat[p[i]])*0.9-(output==beat[beat[p[i]]])*3
pScore[4][i]=(pScore[4][i]+(input==p[i])*3)*(1-(input==beat[beat[p[i]]]))
pScore[5][i]=(pScore[5][i]+(output==p[i])*3)*(1-(output==beat[beat[p[i]]]))
pScore[6][i]=(pScore[6][i]+(input==p[i])*3)*(1-((input==beat[beat[p[i]]]) or (input==beat[p[i]])))
pScore[7][i]=(pScore[7][i]+(output==p[i])*3)*(1-((output==beat[beat[p[i]]]) or (output==beat[p[i]])))
for i in range(numMeta):
mScore[i]=0.956*mScore[i]+(input==m[i])-(input==beat[beat[m[i]]])
if input==beat[beat[m[i]]] and random.random<0.51:
mScore[i]=0
moves[0]+=centrifuge[input+output]
moves[1]+=input
moves[2]+=output
moves[3]+=centripege[input+output]
length+=1
for z in range(4):
limit = min([length,limits[z]])
for y in range(4):
j=limit
while j>=1 and not moves[y][length-j:length] in moves[y][0:length-1]:
j-=1
if j>=1:
i = moves[y].rfind(moves[y][length-j:length],0,length-1)
p[0+2*y+8*z] = moves[1][j+i]
p[1+2*y+8*z] = beat[moves[2][j+i]]
for i in range(32,32*3):
p[i]=beat[beat[p[i-32]]] #Trying to second guess me?
m[0]=p[pScore[0].index(max(pScore[0]))]
m[1]=beat[p[pScore[1].index(max(pScore[1]))]]
m[2]=p[pScore[2].index(max(pScore[2]))]
m[3]=beat[p[pScore[3].index(max(pScore[3]))]]
m[4]=p[pScore[4].index(max(pScore[4]))]
m[5]=beat[p[pScore[5].index(max(pScore[5]))]]
m[6]=p[pScore[6].index(max(pScore[6]))]
m[7]=beat[p[pScore[7].index(max(pScore[7]))]]
for i in range(8,24):
m[i]=beat[m[i-8]]
output = beat[m[mScore.index(max(mScore))]]
if max(mScore)<lol or random.random<0.1 or random.randint(3,40)>length:
try:
output=random.choice(moves[1])
except IndexError:
output=random.choice("RPS")
lol=0.98*max(mScore)