PBWinrate3

AuthorAntiDog
Submission date2018-08-08 12:51:41.392830
Rating1121
Matches played281
Win rate10.68

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

Source code:

import random
#pick_by_winrate
output = ""
if input == "":
	output = "P"
	oponentmoves = ""
	wins = {}
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[0] == input:
				if w[1] == "R":
					r += wins[w]
				if w[1] == "P":
					p += wins[w]
				if w[1] == "S":
					s += wins[w]
		if r > p and r > s and r >0:
			output = "P"
		elif p > s and p > r and p >0:
			output = "S"
		elif s > p and s > r and s >0:
			output = "R" 
if output == "":
	output = random.choice(["R","P","S"])
lastIn = input
last = output