русс | укр

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

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

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

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


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

Проверка завершения текущей партии метод EndGameTest().


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


Подобную проверку удобно выделить в отдельный метод — назовем его EndGameTest(). Описание этого метода класса в виде строки void EndGameTest() ; добавить в описание класса TForm1 в файле DiceUnit.h лучше разместить рядом с описанием метода Showlnfo().

В методе EndGameTest() с помощью метода GameFinish() класса TReferee будет выполняться проверка, не завершена ли текущая партия, и если да, то будет вызвано диалоговое окно с сообщением о том, победил человек или проиграл. Метод должен также добавить в список TotalScores новую строку, информирующую об итоговом счете.

В конец файла DiceUnit.cpp добавить самостоятельно заготовку:

void TForm1::EndGameTest()

{

 

 

}

Проверку на окончание партии можно выполнить условным оператором:

if( Referee.GameFinish() ) {…}; Метод GameFinishO сразу возвращает логическое значение типа bool — именно то, что и требуется условному оператору. За оператором if следует логический блок, заключенный в фигурные скобки. В начале этого блока надо определить временную переменную типа AnsiString:

AnsiString s; //которая потребуется для хранения строк, предназначенных для вывода на экран. Так как внутри нового блока известно, что один из игроков одержал победу, надо выяснить, кто это был конкретно. В этом опять поможет условный оператор:

if( Referee.Human.Scores >= GAME_FINISH_SCORE ) {…}; else {….};

Сначала проверяются набранные очки человека. Если они больше или равны 100, то в переменную s заносится строка о победе человека (ее надо описать в файле Text.h:

const AnsiString HUMAN_WON_STR = "Победил человек";

в противном случае — строка, сообщающая о поражении:

const AnsiString COMPUTER_WON_STR = "Победил компьютер" ;

Здесь же следует увеличить на единицу счетчик числа побед для соответствующего игрока (Human или Computer).



 

if( Referee.Human.Scores >= GAME_FINISH_SCORE )

{

Referee.Human.WinNum += 1;

s = HUMAN_WON_STR;

} else

{

Referee. Computer .WinNum ++;

s = COMPUTER_WON_STR;

}

После выполнения расширенного условного оператора в переменной s будет храниться строка с сообщением о том, выиграл человек или проиграл. Теперь эту строку надо вывести на экран в диалоговом окне: ShowMessage(s);

Далее информацию о победе и текущий счет необходимо добавить в список TotalScores. Для формирования такого сообщения к содержимому переменной s через пробел справа надо приписать соотношение побед, например,"8:5". Получить текстовые представления соответствующих переменных WinNum можно с помощью стандартной функции IntToStr(), а добавить пробел и двоеточие — используя уже упоминавшуюся операцию сцепления строк:

s = s + " " + IntToStr(Referee.Human.WinNum) + ":" + IntToStr(Referee.Computer.WinNum) ;

 

Элемент управления TotalScores состоит из строк. Исходно список пуст. Но в классе TListBox визуального компонента ListBox нет метода добавления новой строки. В нем содержатся лишь базовые методы, общие для всех компонентов, своим поведением в той или иной степени напоминающие работу списков.

Доступ к содержимому списка, представленному набором строк, осуществляется через свойство Items (Элементы) класса TListBox. Это свойство имеет тип TStrings (специальный класс, предназначенный для работы со списками строк). А уже в этом классе есть метод Add() (Добавить). С помощью метода Add() мы и включим новую текстовую строку (типа AnsiString) в конец списка. Список TotalScores и свойство Items доступны, как и другие стандартные объекты C++Builder, через указатели: TotalScores->Items->Add(s) ;

С помощью этого оператора в конец списка TotalScores будет добавлена новая строка s.

Текст метода void TForm1::EndGameTest()

{

// заполнить самостоятельно в соответствии с приведенным выше алгоритмом, и подробным его //описанием

}



<== предыдущая лекция | следующая лекция ==>
Текстовые константы , новый пользовательский файл Text.h | Программный код пункта меню «Бросить кубик»


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


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

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

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


 


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

 
 

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

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