Игра "Угадай число"
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
Министерство образования Республики Беларусь
Учреждение образования Гродненский государственный университет имени Янки Купалы
Факультет математики и информатики
Кафедра программного обеспечения интеллектуальных и компьютерных систем
Контрольная работа
Игра Угадай число
Выполнил студент Соломахин Дмитрий Олегович
Научный руководитель: преподаватель Рапчинская Елена Сергеевна
Гродно 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++ широко используется для разрабо