Создание игры "Сапёр"

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

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

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

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

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

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

Федеральное агентство железнодорожного транспорта

Омский государственный университет путей сообщения

Кафедра «Автоматика и системы управления»

Программа «Сапер»

Пояснительная записка к курсовой работе

Выполнил: студент гр. 21З Ю.Ю.Юрьев

Проверил преподаватель кафедры АиСУ Н.Г.Ананьева

Омск 2012

Реферат

Объектом курсовой работы является игра «Сапер».

Цель курсовой работы - научиться реализовывать пошаговую игру, расширить знания в области программирования.

Результатом курсовой работы является рабочая игра «Сапер». Игра «Сапер» разработана с использованием компилятора MinGW. Исходный текст программы написан на языке С.

В процессе разработки игры была изучена лексика языка С.

Пояснительная записка выполнена в текстовом редакторе Microsoft Word 2007.

Содержание

  • Введение
  • 1. Проект «Сапер»
  • 1.1 Правила игры и алгоритм работы
  • 1.2 Работа приложения
  • 2. Случайная расстановка мин в игре
  • Заключение
  • Библиографический список
  • Приложение
  • Введение
  • C (Си) является универсальным языком программирования высокого уровня, который содержит команды низкого уровня, подобно языку ассемблера. Программа на языке Си может быть скомпилирована в машинные коды почти для всех типов процессоров. Удачное сочетание лаконичности конструкций и богатства выразительных возможностей позволило языку Си быстро распространиться и стать сегодня наиболее популярным языком прикладного и системного программирования. Можно даже сказать, что Си стал фундаментом, на котором строится современное программирование.
  • Язык программирования C (Си) был создан в 1972 г. в фирме Bell Laboratories Деннисом Ритчи (Dennis MacAlistair Ritchie) в атмосфере, которую один из участников разработки определил как «благотворное пренебрежение». Никто из руководителей компании не заказывал нового языка.
  • Ритчи надеялся, что его новый язык пригодится для программирования новой операционной системы «Юникс» (UNIX), работа над которой тоже не входила в официальные планы компании. В результате язык возник лишь как результат дружеского соревнования внутри небольшой группы программистов лаборатории. «Не было ни проектов, ни спецификаций, ни требований, вспоминал один из членов группы, почти все родилось просто из обсуждений».
  • Название C (Си) появилось так же случайно, как и сам язык. Он оказался преемником ранее созданного языка В (Би), написанного автором UNIX Кеном Томпсоном (Ken Thompson). Язык Би отчасти основывался на созданном в Кембриджском университете Мартином Ричардсом (Martin Richards) языке BCPL, который в свою очередь был потомком Алгола-60.
  • Неформальным стандартом языка Си стало первое издание книги Брайана Кернигана (Brian Kernighan) и Денниса Ритчи «The «C» Programming Language», вышедшее в США в 1978 г., а в 1989 г. язык Си был стандартизован ANSI (American National Standards Institute) и ISO (International Standard Organization).
  • В начале 80-х годов в той же Bell Laboratories Бьерном Страуструпом (Bjarne Stroustrup) язык Си был дополнен и значительно расширен. По сути дела, был создан новый язык, который стали называть «Си с классами». В 1983 году язык Страуструпа получил название Си++. Это название сохранилось за ним и по сей день.
  • Язык Си является универсальным языком программирования, в дополнение к которому разработан набор разнообразных библиотек. Поэтому, строго говоря, он позволяет решить практически любую задачу программирования. Тем не менее, в силу разных причин для каких-то типов задач он употребляется чаще, а для каких-то - реже.
  • Си как преемник языка Си широко используется в системном программировании. На нем можно писать высокоэффективные программы, в том числе операционные системы, драйверы и т.п. Язык Си - один из основных языков разработки трансляторов (программ, которые транслируют с одного языка на другой и, в частности, с одного языка программирования на другой).
  • Поскольку системное программное обеспечение часто бывает написано на языке Си или Си, то и программные интерфейсы к подсистемам ОС тоже часто пишут на Си.
  • Распределенные системы, функционирующие на разных компьютерах, также разрабатываются на языке Си. Этому способствует то, что у широко распространенных компонентных моделей CORBA и COM есть удобные интерфейсы на языке Си.
  • Обработка сложных структур данных - текста, бизнес-информации, Internet-страниц и т.п. - одна из наиболее распространенных возможностей применения языка. В прикладном программировании, наверное, проще назвать те области, где язык Си применяется мало.
  • Разработка графического пользовательского интерфейса на языке Си выполняется, в основном, тогда, когда необходимо разрабатывать сложные, нестандартные интерфейсы. Простые программы чаще пишутся на языках Visual Basic, Java и т.п.
  • В целом надо сказать, что язык Си в настоящее время является одним из наиболее распространенных языков программирования в мире.
  • Используется язык Си и для программирования игр. Целью моей курсовой работы является создание компьютерной игры «Сапер», в которой человек может играть против компьютера.
  • программирование операционный игра интерфейс
  • 1. Проект «Сапер»
  • Мой проект игры «Сапер» представляет собой несколько упрощенную версию оригинальной игры. Имеется поле, на котором игроку предстоит найти все мины, которые расставил компьютер.
  • Рисунок 1 - Игровой процесс
  • 1.1 Правила игры и алгоритм работы
  • Рассмотрим правила игры «Сапер». Классический «Сапер» - игра для одного игрока, в которой игрок пытается найти все мины. Если игрок ошибается, то он проигрывает. Цель игрока - найти все мины.
  • Поле для игры состоит из 5 строчек и 5 столбцов.
  • 1.2 Работа приложения
  • Рассмотрим подробнее, как работает приложение «Сапер». Когда мы запускаем игру, перед нами появляется вот такое окно. Начало игры представлено на рисунке 2.
  • Рисунок 2 - Начало игры
  • После того как игра спрашивает «Куда выстрелить?», игрок вводит номер столбца и жмет Enter, а затем вводит номер строки и снова жмет Enter. После чего появляется новое окно, в котором уже показан ход игрока и сообщение о том, есть ли мина или нет. Эта операция представлена на рисунке 3.
  • Рисунок 3 - Первый ход игрока
  • После чего игра повторно просит игрока сделать ход. Игра продолжится до того момента, пока игрок не допустит ошибку или пока не найдет все мины.
  • После того как игрок сделал ошибку появляется оповещение о том, что игра окончена. Это представлено на рисунке 4.
  • Рисунок 4 - Сообщение об окончании игры.
  • Игра завершилась проигрышем игрока, чтобы начать игру заново, нужно ввести «а»и нажать клавишу Enter. Процедура представлена на рисунке 5.
  • Рисунок 5 - Начало новой игры
  • 2. Случайная расстановка мин в игре
  • В игре «Сапер» компьютер при каждой новой игре ставит мины в произвольные места.
  • За интеллект компьютера отвечает следующая функция:
  • main()
  • {
  • int pole[7][7],q[7][7],a[7][7],u=0,p=0,w=0,e,sh=0,s=5,h,i,l=0,v,n=0,x,o,j,k,b,c,z=5;
  • srand(time(NULL));
  • Функция, записанная ниже создает поле из нулей:
  • for(i=1;i<6;i++)
  • for(j=1;j<6;j++)
  • q[i][j]=0;
  • Функция ниже это условие проигрыша игрока:
  • p=i-1;
  • u=j-1;
  • if(q[i][j]==1)
  • {
  • printf ("BbI npourpaLu!\n");
  • Распечатка видимого поля: for(i=1;i<6;i++)
  • Функция считает сколько клеток уже прострелено: sh=sh+1;
  • Если все 20 клеток прострелены, то игрок выиграл: if(sh==20)
  • Функция ищет мины, которые расположены вокруг:
  • for(i=p;i<p+3;i++)
  • for(j=u;j<u+3;j++)
  • if(q[i][j]==1)
  • w=w+1;
  • Функция позволяет увидеть, сколько мин вокруг: a[p+1][u+1]=w;
  • Заключение
  • Для курсовой работы мною был разработан упрощенный вариант игры «Сапер». Игры бывают разные, и стратегии у них разные, у каждой игры она индивидуальная. Для игры «Сапер» главной задачей компьютера является расстановка мин в произвольном порядке
  • Созданная мной игра является одной из самых примитивных, но в процессе ее разработки, я смог больше узнать о базовых концепциях программирования приложений под операционную систему Windows.
  • Программирование игр - довольно сложный процесс, и самая большая сложность заключается в том, чтобы запрограммировать компьютер на различные ответные реакции на действия со стороны пользователя. Тем не менее, это довольно увлекательный процесс. Для начала надо на бумаге попытаться написать некий алгоритм действий, который будет выполняться в игре, а затем уже пробовать этот алгоритм изобразить в виде кода.
  • Библиографический список
  • 1 Язык программирования С(Си)::Введение[Электронный ресурс]/ myROBOT.ru http://www.myrobot.ru/stepbystep/pr_introduction.php
  • 2 История и назначение языка С++[Электронный ресурс] / А.Л.Фридман «Язык программирования С++». http://www.intuit.ru/department/pl/cpp/1/1.html
  • 3 Библиотека OWL. Основные классы библиотеки Object Windows[Электронный ресурс] / Уолхэм К. «Объектно-ориентированное программирование на языке Borland C++», 1997. - Режим доступа: http://it.kgsu.ru/C_OWL/c_owl001.html
  • Приложение

Листинг программы

#include "stdio.h"

#include "math.h"

#include "stdlib.h"

#include "time.h"

#include "string.h"

main()

{

int pole[7][7],q[7][7],a[7][7],u=0,p=0,w=0,e,sh=0,s=5,h,i,l=0,v,n=0,x,o,j,k,b,c,z=5;

srand(time(NULL)); //Нужно для расстановки мин произвольно.

for(i=1;i<6;i++)

for(j=1;j<6;j++) //делаем поле из нулей

q[i][j]=0;

for(k=0;z!=0;k++) //заполняется поле, которое мы не видим.

{

j=rand()%17-8;

i=rand()%17-8;

if(i>=1 && i<=5 && j>=1 && j<=5) //проверка соответствует ли случайная координата полю

{

if(q[i][j]!=1) //проверка ставил туда мину комп или нет

{

q[i][j]=1; // ставит мину

z=z-1; //уменьшает счетчик (изначально было 5 мин)

}

}

}

for(i=0;i<7;i++)

for(j=0;j<7;j++)

{

pole[i][j]=q[i][j]; //копирует массив невидимого заполненного поля в 3 массив

}

printf ("\n");

for(i=1;i<6;i++) //распечатка видимого поля.

{

for(j=1;j<6;j++)

printf ("%2i",a[i][j]);

Листинг А 1, лист 2

printf ("\n");

}

for(k=0;k<999;k++)

{

printf ("KyDa BbICTPELITb?");

scanf ("%i",&i);

scanf ("%i",&j);

if(q[i][j]>=0 && i>=1 && i<=5 && j>=1 && j<=5) //проверка стрелял ли пользователь туда и принадлежит ли координата полю

{

p=i-1;

u=j-1;

if(q[i][j]==1) //если попал в мину, то игрок проиграл.

{

printf ("BbI npourpaLu!\n");

for(i=1;i<6;i++) //распечатка видимого поля

{

for(j=1;j<6;j++)

printf ("%2i",pole[i][j]);

printf ("\n");

}

exit(0);

}

else

{

printf ("MuH HET!\n");

sh=sh+1; //после выстрела считает сколько клеток расстреляно.

if(sh==20) //если все 20 клеток расстреляны, то игрок выигрывает.

printf("BbI выйграLu!");

exit(0);

}

q[i][j]=-1;

w=0;

for(i=p;i<p+3;i++) //ищет мины вокруг в следующем порядке, где * - место выстрела

for(j=u;j<u+3;j++) //123

//4*5

//678

if(q[i][j]==1)

w=w+1; //w=количеству мин вокруг

}

Листинг А 1, лист 2

if(w==0)

w=-1; //если нет рядом мин он пишет -1 в стреляемое поле

a[p+1][u+1]=w; //сколько мин вокруг

for(i=1;i<6;i++) //распечатка видимого поля.

{

for(j=1;j<6;j++)

printf ("%2i",a[i][j]);

printf ("\n");

}

printf ("\n");

}

else

printf ("OIIIu6KA!\n"); //пишет ошибку в случае неправильного ввода цифр.

}

}

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


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

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

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

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

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

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

    дипломная работа [3,3 M], добавлен 18.02.2017

  • Использование языка программирования Бейсик для создания приложений в области компьютерных технологий: бизнес, игры, мультимедиа, базы данных. Моделирование работы оператора по управлению автобусами. Разработка интерфейса и редактирование маршрутов.

    курсовая работа [637,6 K], добавлен 29.01.2011

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

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

  • Создание игры "Сбей самолет" в середе визуального программирования Delphi. Классификация таймеров: малоточные, точные и сверхточные. Разработка алгоритма мультипликации самолета. Описание пользовательского интерфейса и технологий отображения графики.

    курсовая работа [782,0 K], добавлен 16.02.2015

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

    курсовая работа [168,1 K], добавлен 27.09.2013

  • Разработка программы "Сапер", удовлетворяющей необходимым требованиям эффективности в интегрированной среде программирования Microsoft Visual C++. Специфика создания Windows-приложений. Применение логической игры для развития интереса к обучению у детей.

    курсовая работа [511,1 K], добавлен 01.06.2013

  • Язык программирования Pascal и его турбооболочка. Аналитический обзор игрового программного обеспечения. Функции модуля Crt. Постановка задачи создания несложной игровой программы "Турбозмей", алгоритм реализации и описание пользовательского интерфейса.

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

  • Создание программы "MP3 Player", воспроизводящей аудио файлы формата MP3 для работы в операционной системе Windows с использованием языка программирования Delphi. Разработка интерфейса, алгоритма и документации к разработанному программному продукту.

    курсовая работа [625,0 K], добавлен 18.07.2012

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