б) Описание полей классов.
В классе TDomino все поля находятся в секции Private.
Поле Go_game типа Boolean используется для определения того, идет ли игра.
Поле schet говорит само за себя: в нем хранится счет игры.
В поле OnTable почти одноименного типа хранится информация о состоянии игрового стола на текущий момент.
Переменная Tekuschaya определяет номер доминошки, на которую указывает стрелка.
Оставшиеся три поля Bazar, Player и Computer соответствующих типов используются для хранения данных о доминошках на базаре, у игрока и у компьютера. Поля Player и Computer – объекты, которые содержат в себе следующие поля:
CountD – сигнализирует о количестве доминошек на руках;
Hand – массив записей – для хранения доминошек.
Поле Bazar – запись: VarD: ArrD – базар; CountDInHeap: Shortint – количество доминошек на базаре.
в) Спецификации процедур и функций.
Заголовок: Function TPlayer.GetVar(k : byte) : byte;
Назначение: возвращает случайное число от 1 до k.
Вх. параметры: k : byte
Вых. параметры: нет;
Возвр. значение: случайное число от 1 до k.
Заголовок: Procedure TPlayer.TakeFromHeap (var Bazar: TBazar);
Назначение: берет одну доминошку из базара.
Вх. параметры: Bazar – базар;
Вых. параметры: Bazar – базар;
Заголовок: Procedure TPlayer.MoveArr(help: byte);
Назначение: удаляет доминушку под номером help из массива доминошек игрока.
Вх. параметры: help – номер доминошки;
Заголовок: Procedure TPlayer.Init(var Bazar: TBazar);
Назначение: инициализирует объект типа TPlayer: берет семь доминошек из базара.
Вх. параметры: Bazar – базар;
Вых. параметры: Bazar – базар;
Заголовок: Procedure TPlayer.Init(var Bazar: TBazar);
Назначение: инициализирует объект типа TPlayer: берет семь доминошек из базара.
Вх. параметры: Bazar – базар;
Вых. параметры: Bazar – базар;
Заголовок: procedure TComputer.Select(var D: byte; A, B: byte; var Basar: TBazar; var Netu:boolean);
Назначение: осуществляет выбор доминошки из массива доминошек.
Вх. параметры: A, B – доминошки по краям стола;
Bazar – базар;
Вых. параметры: D – номер выбранной доминошки в массиве доминошек;
Bazar – базар;
Netu – флаг, показывающий выбрал ли компьютер доминошку;
Заголовок: procedure Basar_init(var Bazar: TBazar);
Назначение: инициализирует базар.
Вх. параметры: нет;
Вых. параметры: Bazar – базар;
Заголовок: procedure ontable_init(var OnTable: TOnTable);
Назначение: игровой стол.
Вх. параметры: нет;
Вых. параметры: OnTable – игровой стол;
Заголовок: procedure TDomino.Draw_on_table(D: TDominoInHand);
Назначение: рисует доминошку D на игровом столе;
Вх. параметры: D – доминошка, которую нужно нарисовать;
Вых. параметры: нет;
Заголовок: procedure TDomino.Draw_schet;
Назначение: рисует текущий счёт;
Вх. параметры: нет;
Вых. параметры: нет;
Заголовок: procedure TDomino.Draw_count_comp;
Назначение: рисует количество доминошек на руках у компьютера;
Вх. параметры: нет;
Вых. параметры: нет;
Заголовок: procedure TDomino.Strelka(i: byte; steret: boolean);
Назначение: рисует - стирает стрелку над i-ой доминошкой;
Вх. параметры: i – доминошка, над которой нужно нарисовать-стереть;
Street – нарисовать или стереть;
Вых. параметры: нет;
Заголовок: procedure TDomino. Draw_igrok;
Назначение: прорисовывает доминошки, которые на руках у игрока;
Вх. параметры: нет;
Вых. параметры: нет;
Заголовок: procedure TDomino. Draw_count_basar;
Назначение: прорисовывает количество доминошек на базаре;
Заголовок: procedure TDomino. Draw_nachalo;
Назначение: прорисовывает на игровом столе начало игры (вызывает по очереди
процедуры прорисовки);
Заголовок: procedure TDomino.Draw_Domino(XX, YY, tolshina, A, B: integer; horiz:
Boolean);
Назначение: рисует доминошку A, B толщины tolshina в позиции XX, YY игрового
стола;
Вх. параметры: XX, YY – координаты;
A, B – доминошка;
Tolshina – толщина доминошки;
Horiz – флаг, показывающий как рисовать: горизонтально или
вертикально;
Заголовок: procedure TDomino.MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
Назначение: перекрытый обработчик события MouseDown реализовывает основной
алгоритм игры;
Заголовок: procedure TDomino.constructor Create(AOwner: TComponent); override;
Назначение: перекрытый конструктор создаёт объект типа TDomino и вместе с ним
объекты TPlayer и TComputer;
Вх. параметры: AOwner – компонент-родитель(на нем создается объект TDomino);
Заголовок: procedure TDomino. Destroy; override;
Назначение: перекрытый деструктор удаляет объект типа TDomino и вместе с ним
объекты TPlayer и TComputer, освобождая память;
Заголовок: procedure TDomino. Begin_game;
Назначение: с помощью этой процедуры начинается игра;
Заголовок: procedure TDomino.End_game;
Назначение: с помощью этой процедуры заканчивается игра;
Заголовок: procedure TDomino.Move_strelka_l;
Назначение: осуществляет перерисовку стрелки на одну доминошку левее;
Заголовок: procedure TDomino.Move_strelka_r;
Назначение: осуществляет перерисовку стрелки на одну доминошку правее;