any_good

AuthorLlewellyn Strydom
Submission date2019-02-19 12:26:48.828710
Rating4874
Matches played256
Win rate46.09

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

Source code:

import random

sequences = [['R', 'R', 'R', 'R'], ['R', 'R', 'R', 'P'], ['R', 'R', 'R', 'S'], ['R', 'R', 'P', 'R'],
             ['R', 'R', 'P', 'P'], ['R', 'R', 'P', 'S'], ['R', 'R', 'S', 'R'], ['R', 'R', 'S', 'P'],
             ['R', 'R', 'S', 'S'], ['R', 'P', 'R', 'R'], ['R', 'P', 'R', 'P'], ['R', 'P', 'R', 'S'],
             ['R', 'P', 'P', 'R'], ['R', 'P', 'P', 'P'], ['R', 'P', 'P', 'S'], ['R', 'P', 'S', 'R'],
             ['R', 'P', 'S', 'P'], ['R', 'P', 'S', 'S'], ['R', 'S', 'R', 'R'], ['R', 'S', 'R', 'P'],
             ['R', 'S', 'R', 'S'], ['R', 'S', 'P', 'R'], ['R', 'S', 'P', 'P'], ['R', 'S', 'P', 'S'],
             ['R', 'S', 'S', 'R'], ['R', 'S', 'S', 'P'], ['R', 'S', 'S', 'S'], ['P', 'R', 'R', 'R'],
             ['P', 'R', 'R', 'P'], ['P', 'R', 'R', 'S'], ['P', 'R', 'P', 'R'], ['P', 'R', 'P', 'P'],
             ['P', 'R', 'P', 'S'], ['P', 'R', 'S', 'R'], ['P', 'R', 'S', 'P'], ['P', 'R', 'S', 'S'],
             ['P', 'P', 'R', 'R'], ['P', 'P', 'R', 'P'], ['P', 'P', 'R', 'S'], ['P', 'P', 'P', 'R'],
             ['P', 'P', 'P', 'P'], ['P', 'P', 'P', 'S'], ['P', 'P', 'S', 'R'], ['P', 'P', 'S', 'P'],
             ['P', 'P', 'S', 'S'], ['P', 'S', 'R', 'R'], ['P', 'S', 'R', 'P'], ['P', 'S', 'R', 'S'],
             ['P', 'S', 'P', 'R'], ['P', 'S', 'P', 'P'], ['P', 'S', 'P', 'S'], ['P', 'S', 'S', 'R'],
             ['P', 'S', 'S', 'P'], ['P', 'S', 'S', 'S'], ['S', 'R', 'R', 'R'], ['S', 'R', 'R', 'P'],
             ['S', 'R', 'R', 'S'], ['S', 'R', 'P', 'R'], ['S', 'R', 'P', 'P'], ['S', 'R', 'P', 'S'],
             ['S', 'R', 'S', 'R'], ['S', 'R', 'S', 'P'], ['S', 'R', 'S', 'S'], ['S', 'P', 'R', 'R'],
             ['S', 'P', 'R', 'P'], ['S', 'P', 'R', 'S'], ['S', 'P', 'P', 'R'], ['S', 'P', 'P', 'P'],
             ['S', 'P', 'P', 'S'], ['S', 'P', 'S', 'R'], ['S', 'P', 'S', 'P'], ['S', 'P', 'S', 'S'],
             ['S', 'S', 'R', 'R'], ['S', 'S', 'R', 'P'], ['S', 'S', 'R', 'S'], ['S', 'S', 'P', 'R'],
             ['S', 'S', 'P', 'P'], ['S', 'S', 'P', 'S'], ['S', 'S', 'S', 'R'], ['S', 'S', 'S', 'P'],
             ['S', 'S', 'S', 'S']]

mI6wslpJpf = ['P','P','S','P','S','R','P','P','R','S','S','S','P','S','P','R','S','P'
,'S','P','R','S','R','R','R','P','R','P','S','S','P','R','R','P','R','R'
,'S','S','S','R','S','P','P','S','P','S','S','R','S','P','R','S','S','R'
,'P','R','P','P','S','S','P','S','R','R','S','P','R','S','R','P','S','R'
,'S','R','R','R','S','R','P','P','R']

if input == '':
    history = ['X'] * 4
    output = random.choice(['R', 'P', 'S'])
else:
    history.pop(0)
    history.append(input)
    try:
        index = sequences.index(history)
        output = mI6wslpJpf[index]
    except:
        output = random.choice(['R', 'P', 'S'])
    history.pop(0)
    history.append(output)

not_lose = {'R': ['R', 'S'], 'P': ['P', 'S'], 'S': ['S', 'R']}
weights=[0.8, 0.2]

choices = sum([[element] * int(weight * 100)for element, weight in zip(not_lose[output], weights)], [])

output = random.choice(choices)