- •Содержание
- •1.1. Наименование продукта
- •1.2. Краткая характеристика области применения
- •2.1. Документ, на основании которого ведётся разработка
- •2.2. Организация, утвердившая документ
- •Требования к разработке
- •4.1. Требования к функциональным характеристикам
- •4.2. Требования к надёжности
- •4.3. Требования к составу и параметрам технических средств
- •4.4. Требования к информационной и программной совместимости
- •Требования к программной документации
- •Технико-экономические показатели
- •7. Стадии и этапы разработки
- •Введение
- •Постановка задачи
- •Выбор и проработка программных средств
- •Проектирование программы
- •1. Общая схема программы
- •2. Наследование класса kletka_pust
- •3. Переопределение стандартной операции
- •4. Структура класса common
- •5. Подробное описание метода game
- •6. Описание метода privet()
- •7. Описание методов registration() и enter()
- •8. Описание метода menu()
- •9. Описание метода record()
- •10. Описание метода spravka()
- •11. Описание подменю Begin
- •12. Руководство по использованию
- •Анализ результатов разработки программы
- •Заключение
- •Список литературы
- •Листинг программы
6. Описание метода privet()
Данный метод отвечает за приветствие, которое пользователь видит на экране при заходе в программу (рис. 6.1). Эффект анимации создан с помощью стандартных функций графического режима, таких как: cleardevice(); – очистка экрана, setbkcolor(); – установка цвета фона экрана, delay(); – задержка, outtextxy(); – вывод текста на экран в зависимости от заданных координат, settextstyle(); – установка стиля текста, setcolor(); – установка цвета текста. За счет того, что функции выполняются в цикле, достигается эффект анимации.
Рис. 6.1. Приветствие игрока
7. Описание методов registration() и enter()
Метод описывают авторизацию игрока при заходе в игру, которая изображена на рисунке 7.1.
Рис. 7. 1. Авторизация пользователя
На экране игроку предоставляется возможность нажать на одну из двух кнопок в зависимости от того, хочет ли он зарегистрироваться под новым ником или сменить ник, либо зайти под уже зарегистрированным ником. Кнопки нарисованы с помощью функции bar();. Считывание нажатия на кнопки происходит с помощью метода подключения мыши mouse(1); и считывания координат мыши mov_mouse(3);. Далее в зависимости от нажатия игрока на кнопку, вызывается метод enter(0);, которой передается значение члена класса authoriz=0, которое указывает на введение старого ника и, соответственно, authoriz=1 на введение нового ника.
Метод enter (int authoriz) рисует экранную клавиатуру пользователю и окно для ввода ника (рис. 7.2) с помощью стандартных функций графического режима.
Рис. 7. 2. Экранная клавиатура для ввода ника
Клавиатура состоит из кнопок с латинскими буквами и двух кнопок – Finish и Back. Максимальная длина ника составляет 10 символов. Кнопка Back позволяет игроку при вводе ника корректировать ошибку набора в случае неверного набора символа.
Затирание символа происходит в массиве old_nick[u] для уже существующего ника или new_nick[u] для нового ника. Член класса ASCII хранит значение символа в таблице ASCII и, если символ введен неверно, то элемент массива затирается пустым символом, для которого установлен цвет с помощью функции setcolor(). Неверный символ закрашивается в цвет окна для ввода. Кнопка Finish предназначена для завершения ввода ника. Переменная Finish принимает значение 1, когда происходит считывание координат кнопки Finish. Это означает, что ввод ника закончен. И далее пользователь переходит в главное меню. Считывание латинских символов осуществляется с помощью оператора switch().
Если пользователь нажимает на кнопку Enter your nick, то есть член класса authoriz==1, то вызывается метод find (u);, члену класса u соответствует длина ника, значение которой передается из метода enter(), в соответствие от значения члена authoriz. Если authoriz==1, то в length_new_nick лежит значение u, иначе, если authoriz==0, то в length_old_nick лежит тоже значение u. То есть в метод find(u); передается длина либо нового ника, либо длина старого ника.
Далее файл открывается для чтения. С помощью файловой переменной f считываются данные из файла: длина ника, количество побед, имя ника.
Когда пользователь вводит новый ник, то длина нового ника сохраняется в length_new_nick, а в символьном одномерном массиве new_nick[j] сохраняется имя нового ника, и далее проверяется условие на совпадение длины ников в файле с новой длиной ника, и чтобы избежать лишних проверок, сразу отсеиваются ники с длиной, которая не соответствует длине нового ника, и тут же ники с совпадающей длиной проверяются посимвольно.
В count накапливается в процессе выполнения цикла количество таких совпавших символов и, если длина нового ника совпадает еще и с количеством совпавших символов ников (count), то тогда на экран выводится сообщение о том, что такой ник уже существует, и следует ввести новый ник (рис. 7.3). В противном случае он ничего не выводит.
Рис. 7.3. Вывод на экран сообщение