Guest User

testtesttesttest

a guest
Apr 11th, 2019
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.63 KB | None | 0 0
  1. """
  2. Задание на знание ООП и декомпозицию.
  3. В примере описаны сущности для воображаемой игры. Необходимо придумать валидную
  4. с точки зрения ООП архитектуру для этих сущностей. Важно: не требуется писать логику,
  5. нужно просто написать имена классов, их публичные методы и связи между ними (можно
  6. использовать UML или псевдокод)
  7. Есть игровое поле 5x5. Каждая из клеток на этом поле может быть нейтральной или
  8. принадлежать одному из двух игроков. Изначально все клетки нейтральные кроме клеток
  9. в двух противоположных углах поля - они принадлежат игрокам.
  10. Игроки по очереди атакуют одну из клеток. При атаке нейтральной клетки, она успешно
  11. захватывается. При атаке клетки, захваченной другим игроком, исход решается броском
  12. кубиков. Атаковать можно только клетки, находящиеся по соседству с одной из уже
  13. захваченных клеток. Игра завершается при захвате стартовой клетки соперника или по
  14. истечении 7 ходов с каждой стороны.
  15. """
  16. import sys
  17.  
  18.  
  19. class Game():
  20.     def __init__(self):
  21.         self.board = Board()
  22.         self.player1 = Player('White')
  23.         self.player2 = Player('Black')
  24.         # self.history = {"0": [[],[]], "1w": [[],[]], "2b": [[],[]], ...}
  25.         self.choices = {
  26.                 '1': self.board.print_board(),
  27.                 '2': self.round(),
  28.                 '3': self.quit()
  29.         }
  30.  
  31.     def play(self):
  32.         while True:
  33.             self.show_choices()
  34.             choice = input()
  35.             action = self.choices.get(choice)
  36.             if action:
  37.                 action()
  38.             else:
  39.                 print('any')
  40.  
  41.     @staticmethod
  42.     def show_choices():
  43.         pass
  44.    
  45.     def round(self):
  46.         # is_success, x, y = self.move()
  47.         pass
  48.  
  49.     @staticmethod
  50.     def successful_move_message():
  51.         print('any')
  52.  
  53.     @staticmethod
  54.     def error_message(error):
  55.         print(error)
  56.  
  57.     def update_board(self):
  58.         pass
  59.  
  60.     @staticmethod
  61.     def quit():
  62.         sys.exit(0)
  63.  
  64.  
  65. class Cell():
  66.     def __init__(self, x, y, colour=None):
  67.         self.x = x
  68.         self.y = y
  69.         self.colour = colour
  70.  
  71.  
  72. class Board():
  73.     def __init__(self):
  74.         self.board = self.initialize()
  75.  
  76.     def initialize(self):
  77.         board = []
  78.         return board
  79.  
  80.     def print_board(self):
  81.         # self.board
  82.         pass
  83.  
  84.     def update_board(self, x, y):
  85.         pass
  86.  
  87.     def capture_cell(self, x, y):
  88.         pass
  89.  
  90.  
  91. class Player():
  92.     def __init__(self, colour):
  93.         self.colour = colour
  94.         self.cells = []
  95.         if colour == 'White':
  96.             # set start position (1, 1, white)
  97.             pass
  98.         elif colour == 'Black':
  99.             # set start position (5, 5, black)
  100.             pass
  101.         else:
  102.             print("fix it")
  103.  
  104.     def move_from(self):
  105.         pass
  106.    
  107.     def move(self):
  108.         # return is_success
  109.         pass
  110.  
  111.  
  112. if __name__ == '__main__':
  113.     game = Game()
  114.     game.play()
Advertisement
Add Comment
Please, Sign In to add comment