-
Notifications
You must be signed in to change notification settings - Fork 1
/
hangman.py
70 lines (62 loc) · 2.05 KB
/
hangman.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import copy
import importlib
from math import log10, floor
from random_words import RandomWords
import re
from zulip_bots.bots.converter import utils
from typing import Any, Dict, List
'''
class hangman(object):
def usage(self) -> str:
return 'This plugin a hangman game. Guess the right name of movie to win.'
def handle_message(self, message: Dict[str, str], bot_handler: Any) -> None:
bot_response = self.get_response(message, bot_handler)
bot_handler.send_reply(message, bot_response)
handler_class = hangman
'''
def get_response(message: Dict[str, str], bot_handler: Any) -> str:
content = message['content']
words = content.lower().split()
if len(words) < 2:
return "Invalid Input."
elif words[2] == "start" :
# chances = "6"
# word = "avishek"
chances = 5
word = RandomWords().random_word()
done = "".join(['*' for i in range(len(word))])
# done = "*******"
bot_handler.storage.put("word", word )
bot_handler.storage.put("done" , done )
bot_handler.storage.put("chances" , chances )
return "Prediction String: " + done + "\nChances Left: " + str(chances)
else :
word = bot_handler.storage.get("word")
done = bot_handler.storage.get("done")
chances = bot_handler.storage.get("chances")
letter = words[2]
i = 0
val = False
while i < len( word ) :
if letter == word[i] and done[i] == "*" :
val = True
done = done[:i] + word[i] + done[i+1:]
i += 1
if val == False :
temp = int(chances)
temp -= 1
chances = str(temp)
if chances == "0" :
bot_handler.storage.put("word", word )
bot_handler.storage.put("done" , done )
bot_handler.storage.put("chances" , chances )
return "You Lose :(\nString was: " + word
if done == word :
bot_handler.storage.put("word", word )
bot_handler.storage.put("done" , done )
bot_handler.storage.put("chances" , chances )
return "You Win :)"
bot_handler.storage.put("word", word )
bot_handler.storage.put("done" , done )
bot_handler.storage.put("chances" , chances )
return "Prediction String: " + done + "\nChances Left: " + str(chances)