- •Ход работы:
- •7.1 Описание классов.
- •7.2 Определяем первый класс Кубик - tDice
- •7.3 Описание метода для объекта Кубик, имитирующий его бросок.
- •7.4. Описываем класс Игрок
- •7.6 Описание Конструктора tPlayer
- •7.7 Описание класса судьи tReferee
- •7.7.1. Алгоритм реализация метода NewGameQ в файле Game.Cpp (смотри рисунок 5)
- •7.7.3 Метод GameFinish() дает информацию окончена ли игра или нет.
- •8. Продолжаем работать с интерфейсом программы на форме Form1.( смотри рисунок 1)
- •Событие «Новая игра»
- •8.2 Новая игра: описание методов ShowInfo(),EndGameTest().
- •8.2.1. Описание метода ShowInfo()
- •8.2.2 Текстовые константы , новый пользовательский файл Text.H
- •8.2.3. Конструктор класса tForm1
- •8.2.4. Проверка завершения текущей партии метод EndGameTest().
- •9. Программный код пункта меню «Новая Игра»
- •2.— А что делать, если партия продолжается?
- •10. Программный код пункта меню «Бросить кубик»
- •10. Программный код пункта меню «Передать очередь хода»
- •11. Продолжаем работать с интерфейсом программы на форме Form1.( смотри рисунок 1)
- •11.1 Настраиваем командные кнопки
- •12 Программирование пользовательского интерфейса
- •13. Случайная генерация
13. Случайная генерация
Нет, конечно же, генератор выдает случайное число, однако сама последовательность случайных чисел — отнюдь не случайная, а стабильная. Она всегда одна и та же. Причина этого явления лежит в устройстве генератора случайных чисел random(). Наличие одной и той же стабильной последовательности очень удобно при отладке программы. Так, чтобы найти вышеупомянутую ошибку, нам требовалось, чтобы проявление ошибочной ситуации было повторяющимся. В противном случае имитировать похожую ситуацию было бы значительно труднее.
Однако в законченном приложении повторение одних и тех же случайных чисел, конечно, недопустимо. Чтобы этого избежать, в C++Builder имеется специальная стандартная функция randomize(), которую надо вызвать один раз при начале работы программы, и тогда в дальнейшем все обращения к random() не приведут к генерации уже известной последовательности. Вызывать функцию randomize() удобнее всего в конструкторе главной формы, до вызова новой игры:
randomize();
Referee.NewGame() ;
Showlnfo() ;
Для работы этой функции в файле DiceUnit.cpp необходимо также выполнить подключение двух заголовочных файлов:
#include <stdlib.h>
#include <time.h>
Перезапустите программу. Теперь выбрасываемые значения никогда повторяться не будут.
Сохраните проект. Оформите отчет. Подготовьтесь к защите. Продолжение игры выполните в следующей работе Проект№7-2.