русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 549; Нарушение авторских прав


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

class TReferee

{

public:

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

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

TDice Dice; // переменная типа 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, после точки появляется список (система Builder C++ таким образом контролирует использование принципов ООП).

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

При вводе объекта 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;

}

 



<== предыдущая лекция | следующая лекция ==>
Описание Конструктора TPlayer | Метод GameFinish() дает информацию окончена ли игра или нет.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.466 сек.