Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Описание класса судьи TReferee






Описание класса СУДЬИ надо продолжить в файле Game.h, вслед за описанием класса TPlayer:

class TReferee

{

public:

TPlayerHuman, Computer; // две переменные типа TPlayer — игрока-человека и

//игрока-компьютера

TDiceDice; // переменная типа TDice— кубик

void ComputerMove(); // ТРИ МЕТОДА: ход компьютера

bool GameFinish(); //проверка на конец партии, метод возвращает значение true || false

void NewGame (); //новая игра

};

Вполне возможно, что в дальнейшем понадобятся и другие вспомогательные методы. Будем добавлять их по мере возникновения такой потребности. Способность предусмотреть и заранее точно определить, какие методы каждого класса будут реально востребованы в работе, считается признаком высокого профессионального мастерства программиста.

Алгоритм реализация метода NewGameQ в файле Game.cpp (смотри рисунок 5)

Сначала надо проинициализировать внутренние переменные каждого игрока, а затем определить, чья очередь хода. Для этого можно бросить кубик, и если на нем выпадут числа 1, 2 или 3, то надо сделать ход за компьютерComputerMove(), в противном случае — считать, что очередь хода человека и ожидать его действий(т.е. вернуться к игре и выполнить ход за человека, нажав кнопку или выбрав пункт меню Бросить Кубик), завершив работу метода.

В описании класса судьи введена переменная Human, которая определена наследником класса TPlayer, поэтому переменной Human доступны все данные класса

class TPIayer

{

public:

int Scores, CurrentScores, WinNum;

void Init();

};

Правило обращения к переменным класса:

при работе со стандартными или автоматически созданными объектами C++Builder (окна и расположенные на них визуальные компоненты), представленными указателями, для доступа к их свойствам и методам надо использовать знак «->», а при работе с переменными собственных классов — символ «.» (подробно использование точки или -> описано выше в теории).

Рис.5 Список переменных и методов, доступных HUMAN

 

На рисунке 5 при обращении к переменной классаHuman, после точки появляется список (система BuilderC++ таким образом контролирует использование принципов ООП).

Если списка данных не появилось, следовательно надо проверить идентификаторы в описании классов

При вводе объекта Dice, проверьте корректность Dice., в появившемся списке выберите методGetDiceValue()

Текст метода приведен ниже:

// Новаяигра

void TReferee:: NewGame()

{

Human.Init();

Computer.Init();

if(Dice.GetDiceValue()< = 3) ComputerMove();

}

 

7.7.2. Алгоритм работы методаComputerMove() пока можно реализовать самым простым способом. Для простоты предположим, что компьютер во время своего хода всегда бросает кубик только один раз.

 

// Ходкомпьютера

void TReferee:: ComputerMove()

{

Computer.CurrentScores = 0; // Пока на данном ходу не набрано никаких очков:

// Если на кубике выпала не единица, то...

if(Dice.GetDiceValueO! = 1)

// Запомнить очки текущего хода иПодсчитатьочки

Computer.CurrentScores = Dice.LastValue;

Computer.Scores = Computer.Scores + Computer.CurrentScores;

 

// Так как теперь ход человека, надо обнулить очки его текущего хода:

Human.CurrentScores = 0;

}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.