Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Задание на знание ООП и декомпозицию.
- В примере описаны сущности для воображаемой игры. Необходимо придумать валидную
- с точки зрения ООП архитектуру для этих сущностей. Важно: не требуется писать логику,
- нужно просто написать имена классов, их публичные методы и связи между ними (можно
- использовать UML или псевдокод)
- Есть игровое поле 5x5. Каждая из клеток на этом поле может быть нейтральной или
- принадлежать одному из двух игроков. Изначально все клетки нейтральные кроме клеток
- в двух противоположных углах поля - они принадлежат игрокам.
- Игроки по очереди атакуют одну из клеток. При атаке нейтральной клетки, она успешно
- захватывается. При атаке клетки, захваченной другим игроком, исход решается броском
- кубиков. Атаковать можно только клетки, находящиеся по соседству с одной из уже
- захваченных клеток. Игра завершается при захвате стартовой клетки соперника или по
- истечении 7 ходов с каждой стороны.
- """
- import sys
- class Game():
- def __init__(self):
- self.board = Board()
- self.player1 = Player('White')
- self.player2 = Player('Black')
- # self.history = {"0": [[],[]], "1w": [[],[]], "2b": [[],[]], ...}
- self.choices = {
- '1': self.board.print_board(),
- '2': self.round(),
- '3': self.quit()
- }
- def play(self):
- while True:
- self.show_choices()
- choice = input()
- action = self.choices.get(choice)
- if action:
- action()
- else:
- print('any')
- @staticmethod
- def show_choices():
- pass
- def round(self):
- # is_success, x, y = self.move()
- pass
- @staticmethod
- def successful_move_message():
- print('any')
- @staticmethod
- def error_message(error):
- print(error)
- def update_board(self):
- pass
- @staticmethod
- def quit():
- sys.exit(0)
- class Cell():
- def __init__(self, x, y, colour=None):
- self.x = x
- self.y = y
- self.colour = colour
- class Board():
- def __init__(self):
- self.board = self.initialize()
- def initialize(self):
- board = []
- return board
- def print_board(self):
- # self.board
- pass
- def update_board(self, x, y):
- pass
- def capture_cell(self, x, y):
- pass
- class Player():
- def __init__(self, colour):
- self.colour = colour
- self.cells = []
- if colour == 'White':
- # set start position (1, 1, white)
- pass
- elif colour == 'Black':
- # set start position (5, 5, black)
- pass
- else:
- print("fix it")
- def move_from(self):
- pass
- def move(self):
- # return is_success
- pass
- if __name__ == '__main__':
- game = Game()
- game.play()
Advertisement
Add Comment
Please, Sign In to add comment