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

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

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

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

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

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

 

 

 

 

 

 

 

 

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

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

 

 

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

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

 

 

 

 

Гродно 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 попыток для отгадывания.

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

Реализации

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

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

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

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

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

 

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

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

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

 

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

 

Плюсы DevCpp:

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

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

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

Минусы:

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

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

 

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

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

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

Являясь одним из самых популярных языков программирования, C++ широко используется для разрабо