main.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #!/usr/bin/python3
  2. from logo import logo
  3. import os
  4. import sys
  5. from PyQt5 import QtWidgets
  6. import ui
  7. import random
  8. class GuessingApp(QtWidgets.QMainWindow, ui.Ui_MainWindow):
  9. def __init__(self):
  10. super().__init__()
  11. self.number = random.randint(1, 100)
  12. self.start_text = "Hello. It's a Guessing Game\nChoose you difficulty. Type 'easy' or 'hard'"
  13. self.ask_new_game_text = "Next game? 'y' or 'n'"
  14. self.setupUi(self)
  15. self.pushButton.clicked.connect(self.next_step)
  16. self.rounds = 0
  17. self.status = 'start'
  18. self.set_text(self.start_text)
  19. def read_input(self):
  20. value = self.textEdit.toPlainText()
  21. self.textEdit.clear()
  22. return value
  23. def set_text(self, text):
  24. self.textBrowser.setText(text)
  25. def set_difficulty(self):
  26. '''Settings'''
  27. difficulty = self.read_input()
  28. if difficulty == 'easy':
  29. rounds = 10
  30. elif difficulty == 'hard':
  31. rounds = 5
  32. else:
  33. self.set_text(f"Wrong answer. Try again 'easy' or 'hard'")
  34. return
  35. self.status = 'game'
  36. self.rounds = rounds
  37. self.set_text(f"Starting the game. Try to guess a number from 1 to 100.\nYou have {self.rounds} attempts")
  38. def next_step(self):
  39. #self.textBrowser.clear()
  40. # Game Logic ------------------------
  41. if self.status == 'over':
  42. is_another_game = self.read_input()
  43. if is_another_game == 'y':
  44. self.rounds = 0
  45. self.status = 'start'
  46. self.set_text(self.start_text)
  47. self.number = random.randint(1, 100)
  48. return
  49. else:
  50. sys.exit(0)
  51. if self.rounds == 0 and self.status == 'start':
  52. return self.set_difficulty()
  53. try:
  54. guess = int(self.read_input())
  55. except ValueError:
  56. guess = False
  57. if not guess:
  58. self.textBrowser.setText(f"Wrong number. Try again\nYou have {self.rounds} attempts")
  59. return
  60. self.rounds -= 1
  61. if guess > self.number:
  62. self.set_text(f'To high\nYou have {self.rounds} attempts')
  63. elif guess == self.number:
  64. self.set_text(f'You win! The number is {guess}\n{self.ask_new_game_text}')
  65. self.game_over()
  66. else:
  67. self.set_text(f'To low\nYou have {self.rounds} attempts')
  68. if self.rounds == 0 and guess != self.number:
  69. self.set_text(f'You are lose! Answer is {self.number}\n{self.ask_new_game_text}')
  70. self.game_over()
  71. def game_over(self):
  72. self.status = 'over'
  73. def main():
  74. app = QtWidgets.QApplication(sys.argv)
  75. window = GuessingApp()
  76. window.show()
  77. app.exec_()
  78. if __name__ == '__main__':
  79. main()
  80. # is_game_over = False
  81. # while not is_game_over:
  82. # print(f'You have {rounds} attempts')
  83. # guess = int(input('Make a guess: '))
  84. # if guess > number:
  85. # print('To high')
  86. # elif guess == number:
  87. # print(f'You are win. The number is {guess}')
  88. # is_game_over = True
  89. # else:
  90. # print('To low')
  91. # rounds -= 1
  92. # if rounds == 0 and guess != number:
  93. # print('You are lose!')
  94. # is_game_over = True