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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    34,43 Кб
  • Опубликовано:
    2012-10-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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

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

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










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

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

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

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




Омск 2012

Реферат

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

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

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

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

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

Содержание

Введение

. Проект «Сапер»

.1 Правила игры и алгоритм работы

.2 Работа приложения

. Случайная расстановка мин в игре

Заключение

Библиографический список

Приложение

Введение

(Си) является универсальным языком программирования высокого уровня, который содержит команды низкого уровня, подобно языку ассемблера. Программа на языке Си может быть скомпилирована в машинные коды почти для всех типов процессоров. Удачное сочетание лаконичности конструкций и богатства выразительных возможностей позволило языку Си быстро распространиться и стать сегодня наиболее популярным языком прикладного и системного программирования. Можно даже сказать, что Си стал фундаментом, на котором строится современное программирование.

Язык программирования 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 Правила игры и алгоритм работы

Рассмотрим правила игры «Сапер». Классический «Сапер» - игра для одного игрока, в которой игрок пытается найти все мины. Если игрок ошибается, то он проигрывает. Цель игрока - найти все мины.

Поле для игры состоит из 5 строчек и 5 столбцов.

.2 Работа приложения

Рассмотрим подробнее, как работает приложение «Сапер». Когда мы запускаем игру, перед нами появляется вот такое окно. Начало игры представлено на рисунке 2.

Рисунок 2 - Начало игры

После того как игра спрашивает «Куда выстрелить?», игрок вводит номер столбца и жмет Enter, а затем вводит номер строки и снова жмет Enter. После чего появляется новое окно, в котором уже показан ход игрока и сообщение о том, есть ли мина или нет. Эта операция представлена на рисунке 3.

Рисунок 3 - Первый ход игрока

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

После того как игрок сделал ошибку появляется оповещение о том, что игра окончена. Это представлено на рисунке 4.

Рисунок 4 - Сообщение об окончании игры.

Игра завершилась проигрышем игрока, чтобы начать игру заново, нужно ввести «а»и нажать клавишу Enter. Процедура представлена на рисунке 5.

Рисунок 5 - Начало новой игры

2. Случайная расстановка мин в игре

В игре «Сапер» компьютер при каждой новой игре ставит мины в произвольные места.

За интеллект компьютера отвечает следующая функция:

main()

{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;(time(NULL));

Функция, записанная ниже создает поле из нулей:

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

q[i][j]=0;

Функция ниже это условие проигрыша игрока:

p=i-1;=j-1;(q[i][j]==1)


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

Функция считает сколько клеток уже прострелено: sh=sh+1;

Если все 20 клеток прострелены, то игрок выиграл: if(sh==20)

Функция ищет мины, которые расположены вокруг:

for(i=p;i<p+3;i++)(j=u;j<u+3;j++)(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

История и назначение языка С++[Электронный ресурс] / А.Л.Фридман «Язык программирования С++». http://www.intuit.ru/department/pl/cpp/1/1.html

Библиотека 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"()

{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;(time(NULL)); //Нужно для расстановки мин произвольно.(i=1;i<6;i++)(j=1;j<6;j++) //делаем поле из нулей[i][j]=0;(k=0;z!=0;k++) //заполняется поле, которое мы не видим.

{=rand()%17-8;=rand()%17-8;(i>=1 && i<=5 && j>=1 && j<=5) //проверка соответствует ли случайная координата полю

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

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

}

}

}(i=0;i<7;i++)(j=0;j<7;j++)

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

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

{(j=1;j<6;j++)("%2i",a[i][j]);

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

printf ("\n");

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

{("KyDa BbICTPELITb?");("%i",&i);("%i",&j);(q[i][j]>=0 && i>=1 && i<=5 && j>=1 && j<=5) //проверка стрелял ли пользователь туда и принадлежит ли координата полю

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

{("BbI npourpaLu!\n");(i=1;i<6;i++) //распечатка видимого поля

{(j=1;j<6;j++)("%2i",pole[i][j]);("\n");

}(0);

}

{("MuH HET!\n");=sh+1; //после выстрела считает сколько клеток расстреляно.(sh==20) //если все 20 клеток расстреляны, то игрок выигрывает.("BbI выйграLu!");(0);

}[i][j]=-1;=0;(i=p;i<p+3;i++) //ищет мины вокруг в следующем порядке, где * - место выстрела(j=u;j<u+3;j++) //123

//4*5

//678(q[i][j]==1)=w+1; //w=количеству мин вокруг

}

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

if(w==0)=-1; //если нет рядом мин он пишет -1 в стреляемое поле[p+1][u+1]=w; //сколько мин вокруг(i=1;i<6;i++) //распечатка видимого поля.

{(j=1;j<6;j++)("%2i",a[i][j]);("\n");

}("\n");

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

}

}

Похожие работы на - Создание игры 'Сапёр'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!