ivapopova

GuessTheNumberSimple

Oct 10th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. from random import randint
  2. import math, time
  3.  
  4. class GuessTheNumber:
  5. def __init__(self):
  6. self.start = int(input("Enter the Start of the interval: "))
  7. self.end = int(input("Enter the End of the interval: "))
  8. self.maxTries = math.ceil( math.log2(self.end-self.start+1) )
  9. self.pastTryNumber = None
  10. self.newGame()
  11.  
  12. def newGame(self):
  13. self.tryCount = 0
  14.  
  15. print("\nNow, think of a number between [{}-{}] and remember it!".format(self.start, self.end))
  16. time.sleep(1)
  17.  
  18. print("\nI'll guess it in max {} tries!".format(self.maxTries))
  19. ready = input("Are you ready to bet some 🍺 🍺 🍺?[y/n]:")
  20.  
  21. if ready in ["n", "N"]:
  22. print("Ok, looser! Bye!")
  23. exit()
  24. else:
  25. print("""\nI'll ask you some questions. Please, answer me with:
  26. 'C' or 'c' for Correct,
  27. 'U' or 'u' for Up,
  28. 'D' or 'd' for Down
  29. """)
  30. self.gameMove(self.start, self.end)
  31.  
  32. def gameMove(self, start, end):
  33. if self.tryCount == self.maxTries :
  34. self.loseExit()
  35. self.tryCount += 1
  36.  
  37. machineNumber = start + int((end - start)/2)
  38.  
  39. userAnswer = self.askUser(machineNumber)
  40. if userAnswer in ["C", "c"]:
  41. self.machineVictory()
  42. self.proposeNewGame()
  43.  
  44. elif userAnswer in ["U", "u"]:
  45. start = machineNumber+1
  46. self.gameMove(start, end)
  47. elif userAnswer in ["D","d"]:
  48. end = machineNumber - 1
  49. self.gameMove(start, end)
  50.  
  51. def askUser(self,machineNumber):
  52. while(True):
  53. answer = input("What about {}? :".format(machineNumber))
  54.  
  55. if(answer in ["C", "c", "U", "u", "D","d"]):
  56. return answer
  57. else:
  58. print("\tPlease, answer me with 'C|c' or 'U|u' or 'D|d'\n")
  59.  
  60. def proposeNewGame(self):
  61. a = input("\nAnother game?[y/n]")
  62. if a in ["n", "N"]:
  63. print("Ok! Bye!")
  64. exit()
  65. else:
  66. self.newGame()
  67.  
  68. def machineVictory(self):
  69. print("\n")
  70. print('🍺 '*17)
  71. print("🍺 Horey! I guessed from {} try! 🍺".format(self.tryCount))
  72. print('🍺 '*17)
  73.  
  74. def loseExit(self):
  75. print("\n")
  76. print("👿 " * 22)
  77. print("👿 It is not possible for me to loose. 👿")
  78. print("👿 You have mistake! Check your answers! 👿")
  79. print("👿 " * 22)
  80. exit();
  81.  
  82. game = GuessTheNumber()
Advertisement
Add Comment
Please, Sign In to add comment