Guest User

Untitled

a guest
Nov 28th, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.89 KB | None | 0 0
  1. # -*- coding: utf8 -*-
  2. from __future__ import unicode_literals
  3.  
  4. import random
  5. import datetime
  6. import re
  7.  
  8.  
  9. def main():
  10. global u_win, c_win, i
  11. while success == 1:
  12. input_wins()
  13. while int(c_win) != int(wins) and int(u_win) != int(wins):
  14. game()
  15. game_inf()
  16. print("Результат игры: ", winner_final(u_win, c_win), "\n\n")
  17. i = 2
  18. output()
  19. error()
  20.  
  21.  
  22. def input_wins():
  23. global wins
  24. wins = input("Введите количество побед, до которого будет вестись игра: ")
  25. check1(wins)
  26.  
  27.  
  28. def sign_tostring(a):
  29. if a == 0:
  30. return "Камень"
  31. elif a == 1:
  32. return "Ножницы"
  33. elif a == 2:
  34. return "Бумага"
  35.  
  36.  
  37. def winner_tostring(a):
  38. if a == -1:
  39. return "победил " + comp + "."
  40. elif a == 0:
  41. return "ничья."
  42. elif a == 1:
  43. return "победил " + name + "."
  44.  
  45.  
  46. def winner_final(a, b):
  47. if a > b:
  48. return "победил " + name + "."
  49. elif a < b:
  50. return "победил " + comp + "."
  51. else:
  52. return "ничья."
  53.  
  54.  
  55. def winner_name(a):
  56. if a == -1:
  57. return comp
  58. elif a == 0:
  59. return "ничья."
  60. elif a == 1:
  61. return name
  62.  
  63.  
  64. def winner(a, b):
  65. if a == 0 and b == 1 or a == 1 and b == 2 or a == 2 and b == 0:
  66. return 1
  67. elif a != b:
  68. return -1
  69. else:
  70. return 0
  71.  
  72.  
  73. def count_win():
  74. global u_win, c_win
  75. if winner(u_sign, c_sign) == 1:
  76. u_win += 1
  77. if winner(u_sign, c_sign) == -1:
  78. c_win += 1
  79. if winner(u_sign, c_sign) == 0:
  80. c_win += 1
  81. u_win += 1
  82.  
  83.  
  84. def check1(a):
  85. global i
  86. i = 0
  87. if a.isdigit() and int(a) > 0:
  88. a = int(a)
  89. return a
  90. else:
  91. error()
  92.  
  93.  
  94. def check2(a):
  95. global i
  96. i = 1
  97. if a.isdigit():
  98. if int(a) == 0:
  99. return True
  100. elif int(a) == 1:
  101. return True
  102. elif int(a) == 2:
  103. return True
  104. else:
  105. error()
  106. else:
  107. error()
  108.  
  109.  
  110. def error():
  111. global i, j, u_win, c_win
  112. if i == 0:
  113. j = input("\nПроизошла ошибка.\nВернуться к вводу количества побед - 1 Выход из игры - 0\n")
  114. if j.isdigit():
  115. if int(j) == 0:
  116. exit()
  117. elif int(j) == 1:
  118. main()
  119. else:
  120. error()
  121. else:
  122. error()
  123. elif i == 1:
  124. j = input("\nПроизошла ошибка.\n"
  125. "Вернуться к вводу количества побед - 1 "
  126. "Вернуться к вводу игрового знака - 2 "
  127. "Выход из игры - 0\n")
  128. if j.isdigit():
  129. if int(j) == 0:
  130. exit()
  131. elif int(j) == 1:
  132. main()
  133. elif int(j) == 2:
  134. game()
  135. else:
  136. error()
  137. else:
  138. error()
  139. elif i == 2:
  140. u_win, c_win = 0, 0
  141. j = input("Информация об игре была выведена в файл\n"
  142. "Для продолжения нажмите любую клавишу\n"
  143. "Выход из игры - 0\n")
  144. if j.isdigit():
  145. if int(j) == 0:
  146. exit()
  147. else:
  148. main()
  149. else:
  150. main()
  151.  
  152.  
  153. def game():
  154. global u_sign, c_sign
  155. u_sign = input("Выберите игровой знак:\n0 - Камень 1 - Ножницы 2 - Бумага\n")
  156. if check2(u_sign):
  157. u_sign = int(u_sign)
  158. c_sign = int(random.randint(0, 2))
  159. count_win()
  160.  
  161.  
  162. def game_inf():
  163. global u_sign, c_sign, u_win, c_win
  164. print("------------------------------------\nИгровой знак игрока:", sign_tostring(u_sign))
  165. print("Игровой знак компьютера:", sign_tostring(c_sign))
  166. print("------------------------------------\n ", winner_tostring(winner(u_sign, c_sign)),
  167. "\nТекущий счет: \n---------------", u_win, "-", c_win, "---------------\n\n")
  168.  
  169.  
  170. def output():
  171. global f, name, comp, u_win, c_win
  172. f = open('main.txt', 'a')
  173. f.write("Дата проведения игры: |" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") +
  174. "| Результат игры: |" + winner_final(u_win, c_win) +
  175. "| Игровой счет: |" + name + " " + str(u_win) + "-" + str(c_win) + " " + comp +
  176. "|\n")
  177. f.close()
  178.  
  179. i = 0
  180. comp, u_win, c_win, success = "Компьютер", 0, 0, 1
  181. name = input("Введите имя игрока: ")
  182. main()
Advertisement
Add Comment
Please, Sign In to add comment