Разработка игры «быки и коровы»



Дата16.07.2016
өлшемі45.5 Kb.
#203896
УДК 004.94
РАЗРАБОТКА ИГРЫ «БЫКИ И КОРОВЫ»

Губайдулина Л. Ф., Дюфрейн В. А.,

научный руководитель канд. физ.-мат. наук Баранова И. В.

Сибирский федеральный университет


Общеобразовательное учреждение гимназия № 13 г. Красноярска

В рамках научно-исследовательской работы было разработано программное приложение, реализующее игру «Быки и коровы». Целью создания программы является демонстрация умений и навыков, полученных в результате научно-исследовательской работы, заключающейся в изучении теории программирования и технологии разработки программных приложений, а также применении современных информационных технологий для решения практических задач обработки данных и математического моделирования.

Разработке программы предшествовало изучение основ языка программирования: основных типов данных, базовых конструкции языка программирования (следования, условий и циклов), структур данных и методов их обработки и реализации, изучение алгоритмов поиска, обработки и сортировки данных, методов и технологии программирования. А также приобретение навыков работы в выбранной среде программирования (Delphi), разработки и реализации алгоритмов на языке программирования высокого уровня, применение изученных метолов и технологий для решения прикладных задач.
Формулировка задачи
В рамках данной работы была поставлена цель ‒ написать программу, реализующую игру «Быки и коровы». Данная игра является логической игрой для двух игроков. В нашем случае в игре участвуют пользователь и компьютерный игрок. Компьютерный игрок загадывает число, состоящее из четырех неповторяющихся цифр (оно генерируется в начале игры). Игрок должен угадать число за меньшее количество попыток.

Игрок вводит число из четырех неповторяющихся цифр. Противник сообщает в ответ, сколько цифр угадано в заданном числе. Результат отгадывания выражается в условных единицах – Быках и Коровах.



Бык ‒ цифра входит в число и стоит на своем месте.

Корова - цифра входит в число, но находится не на своем месте.

Пример 1. Пусть компьютер задумал число 5123. Игрок ввел число 1234. Результат: 3 коровы и 0 быков (так как цифры 1,2,3 входят в число, но ни одна из них не стоит на своем месте).

Пример 2. Пусть компьютер задумал число 3219. Игрок ввел число 2310. Результат: 2 коровы и 1 бык (так цифры 2,3 входят в число, но ни одна из них не стоит на своем месте, а 1 – стоит на своём месте).

В процессе игры необходимо вести статистику – сколько попыток сделал отгадывающий игрок (в нашем случае это человек). Игра заканчивается, когда число отгадано. В этом случае выводится загаданное число и количество попыток, за которое оно было угадано.


На данный момент известно несколько усложненных вариаций этой игры:

  • загадывается число из 5 (или больше) цифр,

  • загадывается последовательность из 4 цветных фишек, причём цвета могут повторяться (игра Mastermind – «Гениальный отгадчик»),

  • усложненный вариант Mastermind, когда используется последовательность из 5, 6 или большего количества цветных фишек,

  • загадывается слово, обычно из 5 букв (в именительном падеже единственном числе по правилам игры «Балда»), и задача противника — угадать его, используя в качестве попыток такие же корректные слова из словаря русского языка.

В нашей программе мы реализуем описанный выше классический вариант игры «Быки и коровы».


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

1. Генерируется случайное число с помощью генератора псевдослучайных чисел. Так как по правилам игры цифры в нём не должны повторяться, то мы генерируем четыре числа в пределах от 0 до 9 (включительно), соответственно для тысяч, сотен, десятков и единиц. Обязательно выполняется проверка на совпадение с предыдущими сгенерированными цифрами. (Кроме того, цифра для тысяч не должна быть равна 0). В переменную n, хранящую число попыток, задаем значение равное нулю.

2. Выводим для игрока сообщение на экран о том, что число загадано.

3. Просим ввести пользователя свой вариант.

4. Считываем число пользователя. Увеличиваем значение переменной с числом попыток на 1 (n=n+1).

5. Выполняем сравнение числа пользователя с загаданным числом. Для этого разбиваем его на цифры для тысяч, сотен, десятков и единиц.

6. Ищем быков. Попарно цифры для тысяч, сотен, десятков и единиц из числа пользователя сравниваем с соответствующими разрядами загаданного числа. Количество совпадений заносим в переменную b – число быков.

7. Ищем коров. Причем это делаем для тех цифр из числа пользователя, которые не являются быками. Берем цифру и сравниваем по очереди со всеми цифрами загаданного числа. Количество совпадений заносим в переменную c – число быков. Повторяем эту процедуру для всех цифр, не являющихся быками.

8. Выводим на экран значения переменных b (число быков) и c (число быков).

9. Если b=4, то выводим сообщение – «Вы отгадали число с n попыток. Это -» и печатаем загаданное число. В противном случае, игра продолжается, и выполняется переход на пункт 3 алгоритма.


В дальнейшем предполагается реализовать данную игру для ситуации отгадывания числа компьютерным игроком (когда число загадывает человек, а компьютерный игрок пытается его угадать).

Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет