Author | momo |
Submission date | 2011-06-11 10:10:33.957533 |
Rating | 5663 |
Matches played | 5492 |
Win rate | 48.18 |
Use rpsrunner.py to play unranked matches on your computer.
import random
import sys
def highest(v):
return random.choice([i for i in range(3) if max(v) == v[i]])
#mem = 4
folge = [1, 2 ,2 ,3 ,3 ,1 ,2 ,2 ,1 ,1 ,2 ,1 ,2 ,3 ,1 ,2 ,1 ,2 ,1 ,2 ,3 ,3 ,3 ,2 ,1 ,2 ,1 ,2 ,2 ,2 ,2 ,2 ,1 ,2 ,2 ,2 ,3 ,2 ,1 ,3 ,2 ,3 ,3 ,2 ,1 ,1 ,1 ,3 ,3 ,1 ,1 ,3 ,3 ,2 ,1 ,1 ,2 ,3 ,1 ,1 ,3 ,2 ,1 ,3 ,3 ,2 ,1 ,1 ,1 ,1 ,2 ,3 ,3 ,3 ,1 ,2 ,1 ,1 ,3 ,3 ,2 ,1 ,3 ,2 ,2 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,2 ,3 ,3 ,3 ,1 ,1 ,1 ,1 ,1 ,1 ,3 ,1 ,2 ,2 ,3 ,2 ,3 ,2 ,1 ,2 ,3 ,3 ,2 ,2 ,2 ,1 ,2 ,1 ,1 ,1 ,2 ,3 ,3 ,2 ,2 ,1 ,3 ,1 ,2 ,1 ,2 ,3 ,3 ,2 ,3 ,2 ,3 ,1 ,2 ,3 ,3 ,2 ,1 ,3 ,2 ,2 ,1 ,2 ,2 ,1 ,3 ,3 ,1 ,3 ,3 ,3 ,3 ,2 ,3 ,1 ,1 ,2 ,3 ,3 ,1 ,1 ,1 ,2 ,2 ,1 ,3 ,3 ,3 ,1 ,2 ,3 ,2 ,3 ,3 ,2 ,3 ,3 ,1 ,3 ,1 ,2 ,3 ,1 ,3 ,1 ,1 ,2 ,3 ,3 ,3 ,1 ,3 ,2 ,1 ,2 ,2 ,1 ,3 ,1 ,1 ,1 ,1 ,1 ,3 ,1 ,1 ,3 ,1 ,3 ,1 ,1 ,2 ,2 ,3 ,1 ,2 ,3 ,3 ,2 ,2 ,1 ,1 ,3 ,2 ,2 ,2 ,3 ,1 ,1 ,2 ,2 ,3 ,3 ,2 ,2 ,3 ,1 ,3 ,3 ,2 ,3 ,2 ,2 ,2 ,2 ,1 ,1 ,2 ,3 ,2 ,2 ,1 ,1 ,2 ,2 ,2 ,1 ,3 ,3 ,3 ,3 ,1 ,2 ,2 ,2 ,2 ,3 ,2 ,3 ,3 ,3 ,3 ,2 ,2 ,3 ,2 ,2 ,3 ,1 ,1 ,2 ,3 ,2 ,1 ,1 ,1 ,2 ,1 ,1 ,3 ,1 ,1 ,3 ,2 ,2 ,3 ,3 ,1 ,2 ,3 ,3 ,2 ,1 ,3 ,1 ,3 ,3 ,2 ,2 ,2 ,2 ,1 ,3 ,2 ,1 ,2 ,1 ,1 ,2 ,2 ,1 ,2 ,1 ,3 ,3 ,1 ,1 ,2 ,2 ,2 ,1 ,1 ,1 ,1 ,3 ,3 ,3 ,2 ,2 ,1 ,3 ,1 ,2 ,2 ,1 ,2 ,3 ,3 ,3 ,3 ,1 ,1 ,3 ,1 ,2 ,3 ,1 ,1 ,1 ,2 ,2 ,1 ,3 ,3 ,2 ,2 ,1 ,1 ,1 ,3 ,2 ,1 ,2 ,3 ,2 ,3 ,1 ,1 ,1 ,3 ,1 ,2 ,2 ,2 ,2 ,2 ,2 ,3 ,2 ,3 ,3 ,2 ,2 ,3 ,3 ,1 ,1 ,1 ,1 ,3 ,2 ,3 ,1 ,1 ,1 ,1 ,3 ,3 ,3 ,3 ,2 ,3 ,1 ,3 ,3 ,2 ,1 ,2 ,3 ,2 ,2 ,2 ,1 ,3 ,1 ,1 ,2 ,2 ,3 ,2 ,2 ,3 ,2 ,2 ,2 ,3 ,3 ,2 ,1 ,1 ,1 ,1 ,2 ,2 ,2 ,3 ,2 ,2 ,1 ,2 ,3 ,2 ,3 ,1 ,3 ,2 ,3 ,3 ,1 ,2 ,1 ,1 ,3 ,2 ,3 ,2 ,3 ,1 ,2 ,2 ,3 ,1 ,3 ,2 ,3 ,2 ,2 ,2 ,2 ,3 ,2 ,2 ,1 ,1 ,1 ,3 ,1 ,3 ,3 ,2 ,1 ,3 ,1 ,1 ,1 ,1 ,2 ,1 ,1 ,3 ,1 ,2 ,1 ,1 ,2 ,1 ,3 ,2 ,1 ,1 ,3 ,2 ,2 ,2 ,1 ,1 ,3 ,3 ,2 ,3 ,2 ,1 ,3 ,3 ,2 ,1 ,3 ,2 ,3 ,2 ,3 ,3 ,3 ,1 ,1 ,2 ,1 ,3 ,2 ,2 ,1 ,2 ,1 ,1 ,1 ,3 ,2 ,2 ,1 ,2 ,3 ,2 ,1 ,1 ,2 ,2 ,3 ,2 ,3 ,3 ,2 ,2 ,3 ,3 ,1 ,3 ,3 ,1 ,3 ,2 ,3 ,2 ,3 ,3 ,1 ,3 ,2 ,2 ,3 ,1 ,2 ,2 ,2 ,3 ,2 ,1 ,1 ,2 ,1 ,3 ,2 ,1 ,1 ,1 ,3 ,3 ,1 ,3 ,1 ,3 ,2 ,3 ,1 ,2 ,2 ,3 ,2 ,1 ,2 ,3 ,2 ,2 ,2 ,2 ,2 ,3 ,1 ,1 ,1 ,3 ,2 ,1 ,3 ,2 ,3 ,1 ,1 ,2 ,2 ,2 ,1 ,3 ,3 ,3 ,3 ,1 ,3 ,1 ,3 ,2 ,2 ,2 ,1 ,2 ,2 ,3 ,1 ,3 ,2 ,1 ,1 ,3 ,3 ,2 ,1 ,2 ,2 ,3 ,3 ,1 ,3 ,2 ,1 ,3 ,1 ,2 ,1 ,3 ,1 ,3 ,2 ,1 ,3 ,1 ,3 ,1 ,2 ,3 ,3 ,1 ,3 ,3 ,1 ,3 ,2 ,2 ,2 ,3 ,1 ,3 ,2 ,3 ,1 ,3 ,3 ,2 ,2 ,1 ,3 ,2 ,1 ,1 ,3 ,3 ,3 ,1 ,2 ,1 ,1 ,1 ,3 ,2 ,2 ,3 ,1 ,1 ,1 ,3 ,2 ,1 ,1 ,3 ,1 ,1 ,1 ,3 ,3 ,1 ,2 ,2 ,1 ,2 ,1 ,1 ,2 ,1 ,3 ,2 ,2 ,3 ,1 ,2 ,2 ,3 ,3 ,3 ,3 ,3 ,1 ,1 ,1 ,3 ,1 ,1 ,3 ,3 ,1 ,3 ,2 ,3 ,3 ,3 ,3 ,3 ,1 ,1 ,1 ,1 ,2 ,1 ,2 ,2 ,1 ,1 ,1 ,3 ,1 ,2 ,3 ,2 ,3 ,2 ,3 ,3 ,1 ,2 ,2 ,1 ,2 ,1 ,1 ,1 ,3 ,1 ,2 ,2 ,1 ,2 ,3 ,1 ,3 ,2 ,3 ,1 ,2 ,1 ,1 ,3 ,2 ,2 ,3 ,2 ,1 ,1 ,1 ,2 ,3 ,2 ,3 ,2 ,2 ,1 ,2 ,1 ,3 ,1 ,3 ,1 ,2 ,1 ,1 ,3 ,1 ,3 ,1 ,2 ,3 ,1 ,3 ,1 ,3 ,1 ,1 ,1 ,1 ,2 ,3 ,1 ,1 ,1 ,2 ,3 ,2 ,2 ,3 ,3 ,1 ,2 ,1 ,1 ,1 ,2 ,2 ,1 ,1 ,1 ,2 ,1 ,2 ,2 ,3 ,2 ,1 ,3 ,1 ,1 ,1 ,2 ,1 ,2 ,1 ,3 ,1 ,3 ,3 ,1 ,2 ,1 ,3 ,1 ,2 ,1 ,3 ,2 ,2 ,1 ,3 ,1 ,2 ,2 ,2 ,1 ,3 ,2 ,2 ,1 ,1 ,3 ,2 ,3 ,2 ,3 ,3 ,1 ,3 ,1 ,1 ,1 ,3 ,1 ,1 ,3 ,2 ,1 ,1 ,1 ,1 ,2 ,1 ,2 ,3 ,1 ,1 ,3 ,2 ,1 ,1 ,3 ,2 ,2 ,1 ,2 ,2 ,2 ,3 ,3 ,3 ,3 ,2 ,2 ,2 ,3 ,1 ,3 ,2 ,1 ,3 ,1 ,2 ,2 ,1 ,3 ,1 ,1 ,2 ,2 ,3 ,2 ,3 ,2 ,3 ,2 ,2 ,3 ,1 ,1 ,2 ,1 ,2 ,1 ,1 ,1 ,2 ,3 ,2 ,3 ,2 ,2 ,1 ,2 ,3 ,3 ,3 ,2, 3]
if(1):
if (input == ""):
N = 1
states = ["R","S","P"]
sdic = {"R":0, "S":1, "P":2}
result = ["-","=","+"]
res = [[0, 1, -1], [-1, 0, 1], [1, -1, 0]]
state = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
total=0
r=0
move = 0
last = random.choice([1,2,3])
charge = 0
else:
lastrow = r
r = res[sdic[output]][sdic[input]]
total = total + r
state[lastrow-1][move-1] += r
for i in range(3):
for j in range(3):
state[i][j] = 0.9*state[i][j] + random.gauss(0,0.1)
move = highest(state[r+1])-1
if (N == 500 and total < 10):
charge = 1
if (charge==0):
move = ( last - folge[N % 1000]) % 3
if (move==2): move = -1
last = (last + move) % 3 + 1
output = states[last-1]
N = N + 1