русс | укр

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

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

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

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


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

Метод GameFinish() дает информацию окончена ли игра или нет.


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


В нашем примере максимальная сумма очков равна 100. Логический блок, который «скажет», окончена ли игра, должен проверить, достигнута или превышена, набранная человеком или компьютером сумма максимума.

Метод GameFinish() будет возвращать логическое значение true, если один из игроков набрал больше 100 очков, и false в противном случае.Такую проверку можно записать так:

Human.Scores >= 100 || Computer.Scores >= 100. Это выражение удобно использовать в операторе return, чтобы вернуть в программу логическое значение true или false:

Добавьте в текст Game.cpp описание метода.

// Проверка на окончание игры

bool TReferee::GameFinish()

{

return (Human.Scores >= 100 || Computer.Scores >= 100);

}

Сохраните проект весь, командой Save All или кнопкой на панели инструментов

 

Допустим, что нам захочется немного изменить правила игры и повысить или понизить порог очков (100), после превышения которого партия считается оконченной. Число 100 упоминается несколько раз в разных местах файла, и постоянно менять все операторы, где оно используется, довольно хлопотно. Поэтому лучше всего описать число 100 как константу и в дальнейшем обращаться к ней по имени. Тогда это число можно будет при необходимости заменить на любое другое число, внеся правку только в одно заранее известное место.

Константы обычно описываются в начале файла, сразу за строками включения заголовочных файлов. Синтаксис описания константы таков:

const имя_константы = значение '.;

Если в программе некоторая числовая величина встречается два и более раз, ее лучше всего описать в виде константы, чтобы при-необходимости быстро изменить. Хорошим стилем считается использование в качестве имен констант слов, записываемых заглавными буквами. Для разделения нескольких слов в одном названии применяется символ подчеркивания «_».



Давайте опишем константу GAME_FINISH_SCORE в начале файла Game.cpp:

constGAME_FINISH_SCORE = 100; и измените текст метода GameFinish() заменив чило 100 на константу:

return (Human.Scores >= GAME_FINISH_SCORE || Computer.Scores >= GAME_FINISH_SCORE);

 

Сохраните проект весь, командой Save All. Выполните компиляцию модуля Game.cpp, если появились ошибки исправьте их сейчас, а то в дальнейшем сложно будет понять где именно закрались ошибки при компиляции всей программы.

На данном этапе завершаем написание кода дополнительного модуля Game.cpp., поэтому после успешной компиляции начните оформлять отчет по проекту . Скопируйте и добавьте в него файлы Game.h и Game.cpp, в виде таблицы , впишите пояснения во втором столбце. Так как на этом этапе работа с созданием и описанием классов пользователя завершена, далее будет простое структурное программирование описывающее алгоритм игры, с использованием переменных класса описанных в модуле Game.cpp.

Продолжаем работать с интерфейсом программы на форме Form1.( смотри рисунок 1)

Реализации работы с интерфейсом будет описываться в файле DiceUnit.cpp.

Добавляем переменную судью – Referee, в модуль формы Form1 (который содержит всю информацию о проектируемом окне и расположенных на нем компонентах)файла DiceUnit.h

В конце описание класса TForm1 (оно начинается со слов«class TForm1»), вслед за конструктором и можно добавлять новые переменные, свойства и методы, в уже описанный системой визуального программирования класс TForm1.

public: // User declarations

_fastcall TForm1(TComponent* Owner);

TReferee Referee;

 

Заголовочные файлы с расширением *.h служат для информации о доступных в данном файле (программном модуле) классах, реализация которых расположена в других файлах.

В начале файла DiceUnit.h надо подключить заголовочный файл Game.h (в котором содержится описание класса TPIayer). Это делается командной строкой:

#include "Game.h"

Теперь программу можно откомпилировать ALT+F9 и запустить F9, только работать она пока не будет — ведь в ней не определены действия, которые будут происходить при выборе пунктов меню или нажатии на командные кнопки.

Теперь попробуем описать алгоритм работы программы в зависимости от действий пользователя и возникновения тех или иных событий.



<== предыдущая лекция | следующая лекция ==>
Описание класса судьи TReferee | Пункт меню:Выход из игры


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


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

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

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


 


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

 
 

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

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