Skip to content

Instantly share code, notes, and snippets.

@rubyr
Last active May 18, 2018 15:17
Show Gist options
  • Save rubyr/0c61d63e80f100b712fcbf17aa16d17f to your computer and use it in GitHub Desktop.
Save rubyr/0c61d63e80f100b712fcbf17aa16d17f to your computer and use it in GitHub Desktop.
Simple responder module, tracks previous responses and excludes them
import random
class Responder(object):
# list of all possible responses
responses = [
"no",
"yes",
"one",
"two",
"cool"
]
def __init__(self):
# tracks previous response indexes
self.prev = [
-1,
-1,
-1
]
# gets a random response from the list
# excludes the last 3 responses it's generated
def getresponse(self):
# generate random answer
ans = random.randint(0, len(Responder.responses) - 1)
# make sure it's not been said in the last 3 times
while (ans in self.prev):
ans = random.randint(0, len(Responder.responses) - 1)
#move responses over, add current response
for i in range(2, 0, -1):
self.prev[i] = self.prev[i - 1]
self.prev[0] = ans
return Responder.responses[ans]
# test module
if __name__ == "__main__":
r = Responder()
for i in range(1, 10):
print(r.getresponse())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment