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

Выбор программных средств для реализации игры "Угадай число". Разработка функционально-структурной схемы для написания текста программы. Изучение сути вариации алгоритма полного перебора с определённой эвристикой. Варианты компьютерной реализации игры.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 19.06.2012
Размер файла 337,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://allbest.ru/

Размещено на http://allbest.ru/

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

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

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

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

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

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

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

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

Гродно 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.

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

Размещено на Allbest.ru


Подобные документы

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

    дипломная работа [2,7 M], добавлен 27.10.2017

  • Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта.

    курсовая работа [1,4 M], добавлен 18.01.2017

  • Разработка эскизного и технического проектов компьютерной игры "Скачки". Назначение и область применения программы. Выбор состава технических и программных средств. Составление текста программы, ее спецификация, тестирование и условия выполнения.

    курсовая работа [681,4 K], добавлен 18.10.2014

  • Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.

    курсовая работа [1,5 M], добавлен 17.01.2011

  • Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.

    курсовая работа [1,8 M], добавлен 05.03.2013

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

    курсовая работа [341,9 K], добавлен 19.04.2011

  • Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.

    курсовая работа [2,1 M], добавлен 23.02.2011

  • Обзор методов и средств реализации поставленной задачи. Описание компьютерной игры "Японские кроссворды". Обоснование инструментария разработки программного продукта. Алгоритмический анализ задачи. Графический интерфейс и лингвистическое обеспечение.

    курсовая работа [725,4 K], добавлен 27.08.2013

  • Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.

    курсовая работа [571,9 K], добавлен 14.07.2012

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

    курсовая работа [341,5 K], добавлен 06.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.