Игра "Угадай число"

Тип работы:
Контрольная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

http: ///

http: ///

Министерство образования Республики Беларусь

Учреждение образования «Гродненский государственный университет имени Янки Купалы»

Факультет математики и информатики

Кафедра программного обеспечения интеллектуальных и компьютерных систем

Контрольная работа

Игра «Угадай число»

Выполнил студент Соломахин Дмитрий Олегович

Научный руководитель: преподаватель Рапчинская Елена Сергеевна

Гродно 2012

Содержание

Введение

Глава 1. Выбор программных средств для реализации игры «Угадай число «

1.1 Выбор среды разработки Dev C++ 4.9.9. 2

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

Глава 2. Описание программы

Глава 3. Демонстрация основных возможностей программы

Заключение

Список использованных источников

Введение

Угадай число -- логическая игра для двоих игроков. Для игры достаточно иметь бумагу, ручку и уметь считать. Также игра может называться «цифры» или «цвета».

Правила игры

Играют двое. Каждый задумывает и записывает тайное 4-значное число с неповторяющимися цифрами. Игрок, который начинает игру по жребию, делает попытку отгадать число. Попытка -- это 4-значное число с неповторяющимися цифрами, сообщаемое противнику. Противник сообщает в ответ, сколько цифр угадано без совпадения с их позициями в тайном числе и сколько угадано вплоть до позиции в тайном числе. Например:

Задумано тайное число «3219».

Попытка номер: «2310».

Результат: две «коровы» (две цифры: «2» и «3» -- угаданы на неверных позициях) и один «бык» (одна цифра «1» угадана вплоть до позиции).

Игроки делают попытки угадать по очереди. Побеждает тот, кто угадает число первым.

Вариации игры

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

В усложнённом варианте может использоваться последовательность из 5, 6 или большего количества фишек.

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

Алгоритм

В общем случае количество вариантов для k-значного числа в N-ричной системе счисления без повторений, будет равно числу размещений:

.

В случае варианта с повторениями количество вариантов будет равно.

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

Как показал Дональд Кнут, для игры Mastermind (64 вариантов) при предложенной им стратегии нужно не более 5 попыток, чтобы отгадать любую комбинацию, и в среднем 4,34 попыток для отгадывания.

В классическом случае игры с четырьмя не повторяющимися цифрами для отгадывания любого номера требуется не более семи ходов. Средняя минимальная длина игры составляет 26 274/5040=5. 2131 попытки.

Реализации

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

Настольные игры Mastermind популярны во всём мире. Наиболее распространены вариации:

§ классическая, четыре не повторяющиеся цифры.

§ обычная, 4 места для фишек 6 цветов с повторениями.

§ продвинутая, 5 мест для фишек 8 цветов

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

программный игра компьютерный эвристика

Для реализации данной программы был использован язык программирования C++ и среда разработки (IDE) Dev C++ 4.9.9.2.

Dev-C++ -- свободная интегрированная среда разработки приложений для языков программирования C/C++. В дистрибутив входит компилятор MinGW. Сам Dev-C++ написан на Delphi.

1. 1 Выбор среды разработки Dev C++ 4.9.9. 2

Плюсы DevCpp:

— лицензия GPL (General Public License -- лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 г.)

— автоматическое обновление и установка дополнительных мудулей из интернет (передача пакетами)

— есть русский язык

Минусы:

— как и для каждой среды GPL каждый необходимый компонент приходится искать в интернете (или устанавливать из скачанных пакетов)

— периодически выбрасывает ошибку, часто зависает при отладке.

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

C++ (произносится «си плюс плюс») -- компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков.

В сравнении с его предшественником -- языком C, -- наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от языка C, в котором унарный оператор ++ обозначает инкремент переменной.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ -- как бесплатных, так и коммерческих. Их производят Проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

При создании C++ Бьёрн Страуструп стремился сохранить совместимость с языком C. Множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико -- отчасти благодаря тому, что синтаксис C++ был основан на синтаксисе C.

Глава 2. Описание программы

В процессе разработки проекта мною должна быть создана программа, имитирующая игру «Угадай число». Программа должна позволять играть игроку против компьютера. Компьютер загадывает четырехзначное число, все цифры которого различны (первая цифра числа отлична от нуля). Необходимо разгадать задуманное число. Игрок выигрывает когда отгадает задуманное число. Игрок вводит любое четырехзначное число и компьютер показывает количество угаданных цифр (цифра есть в записи задуманного числа, но не стоит в той же позиции, что и в задуманном числе) и количество стоящих на своем месте (цифра есть в записи задуманного числа и стоит в той же позиции, что и в задуманном числе).

Например, если компьютер задумал число 8215 и введено число 1234, получаем в введенном числе одну угаданную цифру, и одну которая стоит на своем месте. Очевидно, что число отгадано в том случае, если угаданы все 4 числа.

Глава 3. Демонстрация основных возможностей программы

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

Номер хода

Вводимые числа игроком

Результат

На своих местах

Угадано

1

1111

0

3

2

2222

0

0

3

3333

1

0

4

4444

1

3

5

5555

1

3

6

6666

0

3

7

1457

0

3

8

4165

1

3

9

6154

4

0

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

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

Заключение

В результате мною была разработана программа-игра «Угадай число». Для этого было проведено несколько этапов.

На первом этапе была разработана функционально-структурная схема.

На втором этапе строится структурные схемы для написания текста программы (третий этап).

Программа функционирует верно.

Список использованных источников

[1]Чарльз Уэзерелл. Этюды по программированию, Великий комбинатор. М.: 1982, с. 140.

[2]Романов Е. Л. Практикум по программированию на С++ -- СПб.: «БХВ -- Петербург», 2004

[3]Материалы с Wikipedia

[4]http: //www. slovesnov. narod. ru/articles/bullcow. pdf

ПоказатьСвернуть
Заполнить форму текущей работой