Задание:
Реализовать на языке программирования высокого уровня игру (компьютера с компьютером) тенниса. Архитектура должна основываться на работе 3х потоков: 1 поток - управление игрока №1; 2 поток - управление игрока №2; 3 поток - отображение игры на холсте.
Реализация:
Для начала нам надо создать модель классов, в которой я отображу отношение классов между собой. Работы на 10 -20 минут.
Готово. Получилось следующее:
У нас есть 3 графических объекта:
Так как ракетка и мяч это игровые снаряды, которые присутствуют на игровом поле, то создам для них отдельный класс (TSnaryad). Так как игра происходит на поле, то для этого надо создать отдельный класс (TGame). Этот класс будет заниматься отображением игры в реальном времени.У него есть один наследник, графический - поле. На нем и будет происходить игра(позиционироваться) снаряды, согласно создаваемым условиям, это позже.
Кстати, ещё, Класс снарядов относится к игре как "много к 1".
Игра и снаряды есть наследники общего класса, который выполняет элементарные функции/процедуры на холсте.
Класс игры относится к абсолютно абстрактному классу "TMain" как "1 к 1". Будет у меня судья. выполняет все те же самые функции: определение победителя…управление потоками кароче.
Дальше. Время жмет.
Теперь начинаю определять наборы возможностей для каждого класса.
Поехали. 40-60 минут.
Готово. Получилось даже немного быстрей.
Теперь когда практически все вопросы архитектуры решены, время перенести это все в код.
Потом мне останется только написать следующие алгоритмы:
- Процесс выпуска мяча;
- Процесс отражения мяча от стенок;
- Процесс удара ракеткой по мячу;
- Процесс слежения игрока за мячом;
- Определение победителя…если такой вообще потребуется, у меня складывается такое ощущение, что эти ребята будут давать фору по выдержке и Федереру и Сафину.
Show most go on.