Ledger Nano X - The secure hardware wallet
SHARE
TWEET

Untitled

asikpro13 Mar 31st, 2020 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class TicTacToeBoard:
  2.     def __init__(self):
  3.         pass
  4.  
  5.     winner = 0
  6.     player = 2
  7.     per = ''
  8.     r21 = '-'  # r - это типо клетка. Первая цифра равна ряду (начинаются с 2)
  9.     r22 = '-'  # вторая цифра равна клетке, то есть r21 == будет равна:
  10.     r23 = '-'  # первой клетке в первом ряду
  11.     r31 = '-'
  12.     r32 = '-'
  13.     r33 = '-'
  14.     r41 = '-'
  15.     r42 = '-'
  16.     r43 = '-'
  17.     o = ''
  18.     x = ''
  19.  
  20.     def check(self):
  21.         if self.r21 == 'X' and self.r31 == 'X' and self.r41 == 'X' \
  22.                 or self.r22 == 'X' and self.r32 == 'X' and self.r42 == 'X' \
  23.                 or self.r23 == 'X' and self.r33 == 'X' and self.r43 == 'X' \
  24.                 or self.r21 == 'X' and self.r22 == 'X' and self.r23 == 'X' \
  25.                 or self.r31 == 'X' and self.r32 == 'X' and self.r33 == 'X' \
  26.                 or self.r41 == 'X' and self.r42 == 'X' and self.r43 == 'X' \
  27.                 or self.r21 == 'X' and self.r32 == 'X' and self.r43 == 'X' \
  28.                 or self.r23 == 'X' and self.r32 == 'X' and self.r41 == 'X':
  29.             return 'Победил игрок X'
  30.         elif self.r21 == '0' and self.r31 == '0' and self.r41 == '0' \
  31.                 or self.r22 == '0' and self.r32 == '0' and self.r42 == '0' \
  32.                 or self.r23 == '0' and self.r33 == '0' and self.r43 == '0' \
  33.                 or self.r21 == '0' and self.r22 == '0' and self.r23 == '0' \
  34.                 or self.r31 == '0' and self.r32 == '0' and self.r33 == '0' \
  35.                 or self.r41 == '0' and self.r42 == '0' and self.r43 == '0' \
  36.                 or self.r21 == '0' and self.r32 == '0' and self.r43 == '0' \
  37.                 or self.r23 == '0' and self.r32 == '0' and self.r41 == '0':
  38.             return 'Победил игрок 0'
  39.         elif self.r21 != '-' and self.r22 != '-' and self.r23 != '-'\
  40.                 and self.r31 != '-' and self.r32 != '-' and self.r33 != '-'\
  41.                 and self.r41 != '-' and self.r42 != '-' and self.r43 != '-':
  42.             return 'Ничья'
  43.         else:
  44.             return 'Продолжаем играть'
  45.  
  46.     def row1(self, r1='-', r2='-', r3='-'):
  47.         if self.r21 == '-' and r1 is not None:
  48.             if r1 != '-':
  49.                 self.r21 = r1
  50.                 return self.check()
  51.             else:
  52.                 self.r21 = '-'
  53.  
  54.         if self.r22 == '-':
  55.             if r2 != '-':
  56.                 self.r22 = r2
  57.                 return self.check()
  58.             else:
  59.                 self.r22 = '-'
  60.  
  61.         if self.r23 == '-':
  62.             if r3 != '-':
  63.                 self.r23 = r3
  64.                 return self.check()
  65.             else:
  66.                 self.r23 = '-'
  67.         return [self.r21, self.r22, self.r23]
  68.  
  69.     def row2(self, r1='-', r2='-', r3='-'):
  70.         if self.r31 == '-' and r1 is not None:
  71.             if r1 != '-':
  72.                 self.r31 = r1
  73.                 return self.check()
  74.             else:
  75.                 self.r31 = '-'
  76.  
  77.         if self.r32 == '-':
  78.             if r2 != '-':
  79.                 self.r32 = r2
  80.                 return self.check()
  81.             else:
  82.                 self.r32 = '-'
  83.  
  84.         if self.r33 == '-':
  85.             if r3 != '-':
  86.                 self.r33 = r3
  87.                 return self.check()
  88.             else:
  89.                 self.r33 = '-'
  90.  
  91.         return [self.r31, self.r32, self.r33]
  92.  
  93.     def row3(self, r1='-', r2='-', r3='-'):
  94.         if self.r41 == '-':
  95.             if r1 != '-' and r1 is not None:
  96.                 self.r41 = r1
  97.                 return self.check()
  98.             else:
  99.                 self.r41 = '-'
  100.  
  101.         if self.r42 == '-':
  102.             if r2 != '-' and r2 is not None:
  103.                 self.r42 = r2
  104.                 return self.check()
  105.             else:
  106.                 self.r42 = '-'
  107.  
  108.         if self.r43 == '-':
  109.             if r3 != '-':
  110.                 self.r43 = r3
  111.                 return self.check()
  112.             else:
  113.                 self.r43 = '-'
  114.         return [self.r41, self.r42, self.r43]  # редактиование поля
  115.  
  116.     def new_game(self):
  117.         self.winner = 0
  118.         self.player = 2
  119.         self.per = '-'
  120.         self.r21 = '-'
  121.         self.r22 = '-'
  122.         self.r23 = '-'
  123.         self.r31 = '-'
  124.         self.r32 = '-'
  125.         self.r33 = '-'
  126.         self.r41 = '-'
  127.         self.r42 = '-'
  128.         self.r43 = '-'
  129.         self.o = ''
  130.         self.x = ''
  131.  
  132.     def get_field(self):  # возврат поля
  133.         return self.row1(), self.row2(), self.row3()
  134.  
  135.     def check_winner(self, s):
  136.         if s == 'Победил игрок X':
  137.             self.winner += 1
  138.             self.x = 1
  139.             return 'Победил игрок X'
  140.         elif s == 'Победил игрок 0':
  141.             self.winner += 1
  142.             self.o = 1
  143.             return 'Победил игрок 0'
  144.         elif s == "Ничья":
  145.             self.winner -= 1
  146.             return 'Ничья'
  147.         else:
  148.             return 'Продолжаем играть'
  149.  
  150.     def check_field(self):
  151.         if self.x == 1:
  152.             return 'X'
  153.         elif self.o == 1:
  154.             return '0'
  155.         elif self.winner == -1:
  156.             return 'D'
  157.         else:
  158.             return None
  159.  
  160.     def make_move(self, row, col):
  161.         if self.winner == 0:
  162.             if self.player == 2:  # ----------------------- выбор игрока:
  163.                 self.per = 'X'
  164.                 self.player += 1
  165.             else:
  166.                 self.per = '0'
  167.                 self.player -= 1
  168.             # --------------------------------------------- игрок делает ход
  169.             if row == 1:
  170.                 if col == 1 and self.r21 == '-':
  171.                     s = self.row1(self.per)
  172.                     return self.check_winner(s)
  173.                 elif col == 2 and self.r22 == '-':
  174.                     s = self.row1(None, self.per)
  175.                     return self.check_winner(s)
  176.                 elif col == 3 and self.r23 == '-':
  177.                     s = self.row1(None, None, self.per)
  178.                     return self.check_winner(s)
  179.                 else:
  180.                     if self.player == 3:
  181.                         self.player -= 1
  182.                     else:
  183.                         self.player += 1
  184.                     return 'Клетка ' + str(row) + ', ' + str(col) + ' уже занята'
  185.             elif row == 2:
  186.                 if col == 1 and self.r31 == '-':
  187.                     s = self.row2(self.per)
  188.                     return self.check_winner(s)
  189.                 elif col == 2 and self.r32 == '-':
  190.                     s = self.row2(None, self.per)
  191.                     return self.check_winner(s)
  192.                 elif col == 3 and self.r33 == '-':
  193.                     s = self.row2(None, None, self.per)
  194.                     return self.check_winner(s)
  195.                 else:
  196.                     if self.player == 3:
  197.                         self.player -= 1
  198.                     else:
  199.                         self.player += 1
  200.                     return 'Клетка ' + str(row) + ', ' + str(col) + ' уже занята'
  201.             elif row == 3:
  202.                 if col == 1 and self.r41 == '-':
  203.                     s = self.row3(self.per)
  204.                     return self.check_winner(s)
  205.                 elif col == 2 and self.r42 == '-':
  206.                     s = self.row3(None, self.per)
  207.                     return self.check_winner(s)
  208.                 elif col == 3 and self.r43 == '-':
  209.                     s = self.row3(None, None, self.per)
  210.                     return self.check_winner(s)
  211.                 else:
  212.                     if self.player == 3:
  213.                         self.player -= 1
  214.                     else:
  215.                         self.player += 1
  216.                     return 'Клетка ' + str(row) + ', ' + str(col) + ' уже занята'
  217.         else:
  218.             return 'Игра уже завершена'
  219.  
  220.  
  221. new_game() – для создания новой игры;
  222. get_field() – для получения поля (список списков);
  223. check_field() – для проверки, есть ли победитель, который возвращает X, если победил первый игрок, 0, если второй, D, если ничья и None, если можно продолжать игру;
  224. make_move(row, col) – который устанавливает значение текущего хода в ячейку поля с координатами row, col, если это возможно, «переключает» ход игрока, а также возвращает сообщение «Победил игрок X» при победе крестиков, «Победил игрок 0» при победе ноликов, «Ничья» в случае ничьей и «Продолжаем играть», если победитель после данного хода неопределён.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top