Научная статья на тему 'Разработка компьютерной игры как консольного приложения на языке с++'

Разработка компьютерной игры как консольного приложения на языке с++ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1639
90
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / КОНТРОЛЬНЫЙ ПРИМЕР / ПРОГРАММА / ИГРА / ЧИСЛОВОЙ ДИАПАЗОН

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Петрова Н.К., Байнов А.М., Дубовиков И.И., Кудряшов А.В., Мутигуллин А.А.

В статье представлен процесс формирования компьютерной игры «Угадай число», формирующей у студентов навыки программирования неявно заданного алгоритма. Подробно описаны приёмы проверки цельности и полноты алгоритма, описаны приёмы и методы алгоритмизации. Проект игры написан средствами структурного программирования на языке С++ в среде Visual Studio.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Петрова Н.К., Байнов А.М., Дубовиков И.И., Кудряшов А.В., Мутигуллин А.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPING A COMPUTER GAME AS A CONSOLE APPLICATION IN C++ LANGUAGE

In the framework of the present article, the formalization of the task and the step-by-step algorithmization of its conditions are considered. When developing a test case, much attention is paid to checking the completeness of the algorithm. The project is written by means of structured programming in C ++ in Visual Studio.

Текст научной работы на тему «Разработка компьютерной игры как консольного приложения на языке с++»

TECHNICAL SCIENCES

DEVELOPING A COMPUTER GAME AS A CONSOLE APPLICATION IN C++ LANGUAGE

Petrova N.,

Candidate of Physical and Mathematical Sciences, Associate Professor

FGBOU VPO Kazan State Energy University Russia, Kazan Bainov A., 3rd year student FGBOU VPO Kazan State Energy University Russia, Kazan Dubovikov I., 3rd year student FGBOU VPO Kazan State Energy University Russia, Kazan Kudryashov A., 3rd year student FGBOU VPO Kazan State Energy University Russia, Kazan Mutigullin A. 3rd year student FGBOU VPO Kazan State Energy University Russia, Kazan

РАЗРАБОТКА КОМПЬЮТЕРНОЙ ИГРЫ КАК КОНСОЛЬНОГО ПРИЛОЖЕНИЯ НА ЯЗЫКЕ С++

Петрова Н.К.,

кандидат физико-математических наук, доцент

ФГБОУ ВПО

«Казанский государственный энергетический университет»

РФ, г. Казань Байнов А.М., Студент 3 курса ФГБОУ ВПО

«Казанский государственный энергетический университет»

РФ, г. Казань Дубовиков И.И.,

Студент 3 курса ФГБОУ ВПО

«Казанский государственный энергетический университет»

РФ, г. Казань Кудряшов А.В.,

Студент 3 курса ФГБОУ ВПО

«Казанский государственный энергетический университет»

РФ, г. Казань Мутигуллин А.А. Студент 3 курса ФГБОУ ВПО

«Казанский государственный энергетический университет»

РФ, г. Казань

Abstract

In the framework of the present article, the formalization of the task and the step-by-step algorithmization of its conditions are considered. When developing a test case, much attention is paid to checking the completeness of the algorithm. The project is written by means of structured programming in C ++ in Visual Studio.

Аннотация

В статье представлен процесс формирования компьютерной игры «Угадай число», формирующей у студентов навыки программирования неявно заданного алгоритма. Подробно описаны приёмы проверки цельности и полноты алгоритма, описаны приёмы и методы алгоритмизации. Проект игры написан средствами структурного программирования на языке С++ в среде Visual Studio.

Keywords: algorithm, test case, program, game, numeric range.

Ключевые слова: алгоритм, контрольный пример, программа, игра, числовой диапазон.

Введение

Одной из важных задач при обучении студентов программированию является отработка навыков программирования задач с неявно заданным алгоритмом. По определению Томаса Кормена [1], известного профессора и специалиста по компьютерным наукам, алгоритм - это строго определенная процедура, которая принимает одно или несколько значений при вводе и возвращает одно или несколько значений как результат. К сожалению, даже задачи с шаблонными алгоритмами, но записанные, например, как задачи по физике или математике, вызывают у многих студентов трудности при формализации алгоритма, к переводу задачи на набор пошаговых инструкций, понятных компьютеру. В представленной статье рассматривается задача по разработке простой компьютерной игры «Угадай число», требующей однако творческого подхода к выбору и комбинации шаблонных алгоритмов. Привлечение генератора случайных чисел «оживляет» компьютер, делая его разумным партнёром игрока.

1. Суть игры и её алгоритмические элементы

Процесс компьютерной игры включает в себя следующие операции:

• ввод числового диапазона игроком для определения и ограничения пространства выбора угадываемого числа;

• генерация случайного числа компьютером - именно оно и является «загаданным» числом;

• определение случайным образом количества жизней для игрока;

• организация интерфейса игры:

- ввод игроком предполагаемого загаданного числа;

- программирование реакции-ответа компьютера на введённое игроком значение: компьютер оценивает и сообщает игроку, больше или меньше введённое им число относительно «загаданного»;

- программирование диалога компьютера с игроком: компьютер «предлагает» сделать еще одну попытку за счёт потери жизни;

• завершение игры при трёх возможных исходах: а) игрок угадал число, б) потратил все жизни, с) захотел выйти из игры.

При разработке проекта описанные условия были формализованы циклическим условным алгоритмом - для организации процесса игры, для учёта количества жизней применён алгоритм счётчика,

для диалога с компьютером использовался консольный ввод/вывод.

2. Разработка контрольного примера

Отладка программ проекта проводилась на основе контрольного примера. При его разработке большое внимание уделено проверке полноты алгоритма. Контрольный пример позволяет обеспечить корректную работу программы и, следуя свойству массовости алгоритма, применять разрабатываемую программу для любого исходного набора данных. Для реализации вариантов, заложенных в контрольный пример, была предусмотрена возможность ввода «загадываемого» числа и количества жизней с консоли.

Суть предварительных расчётов заключается в следующем. Допустим, «загадано» число 26 из диапазона 1-100, а количество жизней - 7.

Игра начинается с попытки игрока угадать число в заданном диапазоне. Пользователь вводит число 50. В программе сравнивается введенное игроком значение и значение «загаданное» компьютером, в результате, она должна выдать сообщение «Число больше загаданного». Далее игроку предлагается выбор потратить одну жизнь для продолжения игры, либо же отказаться и завершить игру. Прорабатываем 3 возможных варианта реакции игрока:

1) Потратив 1 жизнь, игрок продолжает игру с запасом в 6 жизней. Он вновь вводит число, на этот раз 25. Программа выводит сообщение «Введенное число меньше загаданного». Пользователь продолжает игру с 5-ю жизнями и вводит число 30. Результат - сообщение «Введенное число больше загаданного». Пользователь вводит число 26, программа сообщает о победе, игра завершается.

2) Игрок продолжает игру тратя жизни с последующем вводом чисел. Игрок не угадывает число за количество отведенных ему попыток. Игра сообщает о проигрыше.

3) Игрок отказывается продолжать игру, тогда программа сообщает ему о завершении игры и значение «загаданного» числа, её работа на этом завершается.

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

3. Методы реализации задачи.

Проанализировав контрольный пример, можно прийти к выводу, какие конкретные алгоритмические методы необходимо использовать в программе. Очевидно, что разработка игры предусматривает работу с генератором случайных чисел, введение временных переменных, использование оператора ввода/вывода, оперирование циклическими алгоритмами, передачу параметров в функции при помощи указателей, а также введение счетчика.

Для более полного описания решения рассмотрим словесный алгоритм. Он позволяет разбить задачу на отдельные модули, реализуемые в виде трёх функций, а также детализировать суть операторов, которые будет выполнять программа.

Процесс работы программы состоит из следующих этапов.

1. Ввод нижнего и верхнего значений числа, которое будет случайно «загадано». После этого происходит генерация случайного числа, ограниченного диапазоном, введенным ранее.

2. Запускается игровой процесс. Происходит проверка наличия жизней у игрока. При условии того, что игрок верно вводит загаданное число, игра завершается. Иначе: программа выводит сообщение о том, больше или меньше загаданное число, нежели введенное игроком. Если игрок не угадывает число, компьютер предлагает выбрать число еще один раз, при этом, потеряв одну жизнь или же закончить игру. Если игрок выбирает продолжить

Enter number range [M:N]

M: i

rj: iee

игру, то происходит возвращение к игровому процессу и повторение. В конце происходит завершение программы.

Процесс игры реализован в виде следующих функций:

• Ввод границ диапазона с проверкой их корректности на случай синтаксических ошибок, или когда верхняя граница меньше нижней.

• Генерация случайного числа

• Генерация случайного значения жизней

• Игровой процесс (ввод числа)

• Проверка числа

• Дополнительная попытка ввода числа

Алгоритм - это процедура выполнения определенной задачи. Он является основополагающей идеей любой компьютерной программы. Алгоритм должен решать общую, корректно поставленную задачу.

4. Результаты работы программы

Отладка программы играет немаловажную роль в реализации проекта. Она осуществляется путем проверки работоспособности всех возможных исходов игры. Для этой цели и был составлен и подробно описан контрольный пример. Результаты работы программы наглядно представлена в серии последующих скриншотов, соответствующих рассмотренным ранее вариантам процесса игры.

1)Начало. Ввод диапазона

Guess the number! You have 8 healths.

Your number? m

2)Игрок вводит число

Enter number range [H;N] : H: 1 N: 190

fjuess the number! You have 8 healths.

Your number?

Your number is less than guess.

DO you want to try to £ueSS agsifi? The price of trying - 1 health!

Enter i for "Yes, continue to guess for orie health! " and e for "no,finish guessing"

3)Программа предлагает продолжить или закончить

Enter number range [H;N] : «: 1 N: 1ВД

Guess the number! rou have S healths.

Your number? SB

Your number Is Iks than guess.

Do you want to try to guess again? The prlie of trying - l health!

Enter 1 for "Yes, Continue to goe&s for one health! " and B for "No,finish guessing"

Guess the number! You have 7 healths.

Your number?

4)Повторяющийся цикл пока игрок не отгадает, либо у него кончатся жизни

Guess the number! You have 7 healths.

Your number? 75

Your number is less than guess.

Do you want to try to guess again? The price of trying - 1 health!

Enter 1 for "Yes, Continue to guess for one health! " and e for "No,finish guessing"

Guess the number! You have 6 healths.

Your number?

5) Загаданное число отгадано

Guess the number! You have 3 healths.

Your number? 93

Your number is less than guess.

Do you want to try to guess again? The price of trying - 1 health!

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Enter 1 for "Yes, Continue to guess for one health! " and 8 for "No,finish guessing"

Guess the number! You have 2 healths.

Your number? 94 You guessed it, congratulations! :) This number was 94 !

1ля продолжения нажмите любую клавишу .

Заключение.

В процессе разработки игры «Угадай число» были рассмотреть методы реализация неявно заданных алгоритмов и способы организации пользовательского интерфейса средствами консольного ввода/вывода.

Проект построен на основе структурного программирования, состоит из шести взаимосвязанных функций, передача данных между которыми реализуется через формальные параметры, передаваемые как по значению, так и по ссылке. Подробно представленный контрольный пример позволил провести отладку программ и, в то же время, обеспечил полноту разработанного алгоритма.

Представленные скриншоты решений демонстрируют процесс игры и подтверждают корректность работы программы.

СПИСОК ЛИТЕРАТУРЫ:

1. Стивен Скиена «Алгоритмы. Руководство по разработке» [Издательство «БХВ -Петербург», Санкт-Петербург 2017г. 720 страниц, 2-е издание]

2. Петрова Н.К. Конспект лекций «Программирование на С++ [Электронный документ https://lms.kgeu.ru/course/view.php?id=2594]

3. Томас Кормен «Алгоритмы. Построение и анализ». [Издательство «Вильямс», Москва 2009г. 1300страниц, 3-е издание]

i Надоели баннеры? Вы всегда можете отключить рекламу.