PBWinrate2

 Author AntiDog Submission date 2018-08-08 12:30:27.413460 Rating 1501 Matches played 257 Win rate 12.45

Use rpsrunner.py to play unranked matches on your computer.

Source code:

import random
#pick_by_winrate
output = ""
if input == "":
output = "P"
oponentmoves = ""
wins = {"R":0, "P":0, "S":0}
else:
oponentmoves += input
def beats(x,y):
if x == "R":
if y == "S": return True
if x == "P":
if y == "R": return True
if x == "S":
if y == "P": return True
return False
if last != "" and oponentmoves != "":
if beats(last, oponentmoves[-1]):
if lastIn+last in wins:
wins[lastIn+last] += 1
else:
wins[lastIn+last] = 1
if beats(oponentmoves[-1], last):
if lastIn+last in wins:
wins[lastIn+last] -= 1
else:
wins[lastIn+last] = -1
r = 0
p = 0
s = 0
for w in wins:
if len(w) >1 and w == input:
if w == "R":
r += wins[w]
if w == "P":
p += wins[w]
if w == "S":
s += wins[w]
if r > p and r > s:
output = "P"
elif p > s and p > r:
output = "S"
elif s > p and s > r:
output = "R"
if output == "":
output = random.choice(["R","P","S"])
lastIn = input
last = output