Разработка игры "Охота на лис"
Разработка и реализация игры "Охота на лис" на языке С. Особенности языка С как языка среднего уровня между высоким и низким. Написание код программы для разработки игры. Код для выбора уровня сложности, количества лис, размещения их на поле и хода игры.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | реферат |
Язык | русский |
Дата добавления | 28.04.2014 |
Размер файла | 99,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Задание
Игра «Охота на лис».
На поле 8*8 игрок располагает n лис. Компьютер должен подстрелить всех лис. При каждом выстреле он называет клетку поля. Компьютер сообщает, попал ли выстрел в лису. В случаи промаха, на экран выводится, сколько лис в сумме находится в одном столбце и строке с выстрелом. Выигрывает тот, кто быстрее найдет всех лис.
Содержание
Введение
Код программы
Заключение
Введение
Данная курсовая работа является примером реализации задачи об игре «Охота на лис», написанной на языке высокого уровня С.
Особенность языка С заключается в том, что будучи языком высокого уровня, он сохранил многие черты языка низкого уровня. Язык С расположен где-то между языками очень высокого уровня и языками низкого уровня, и в этом его сильные и одновременно слабые стороны. Как и язык ассемблера (язык низкого уровня), язык программирования С может непосредственно управлять памятью компьютера. С другой стороны, С обладает чертами языков высокого уровня, поэтому программы на языке С читать и создавать легче, чем программы на языке ассемблера. Язык С является очень удобным для написания системных программ, но в программах на языке С для иных целей зачастую трудней разобраться, нежели в программах, написанных на других языках. Язык С также имеет меньше возможностей для автоматической проверки программ, чем некоторые друге языки высокого уровня. разработка игра программа код
Код программы
Ниже приведен полный листинг программы.
#include "stdio.h"
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <Windows.h>
//лисы размещаются в поле
void noJle(char *macc, int n)
{
int k=0,i,j;
srand(time(NULL));
while (k<n)
{
i=rand()%64;
if(macc[i]=='*'){macc[i]='L';k++;}
}
}
// размещение лис ироком
int pa3mL(char *macck, int a, int KL,int b)
{
int i,j,k1=0,k=0;
printf("Введите номер строки и номер столбца,где бы Вы хотели разместить лису:\n");
scanf("%i\n",&i);
scanf("%i",&j);
if((j>0)&&(j<9)&&(i>0)&&(i<9))
{
a=((i-1)*b+(j-1));
if(macck[a]=='L') printf("Вы уже разместили лису здесь\n");
if(macck[a]!='L')
{
macck[a]='L';KL++;;
printf(" 1|2|3|4|5|6|7|8\n");
for(k1=0;k1<8;k1++)
{
printf("%i |",k1+1);
for(k=0;k<8;k++)
printf("%c ",macck[k1*b+k]);printf("\n");
}
Sleep( 1000 );//задержка на 1 секунду
system("cls");
}
}
else printf("вы ввели недопустимые значения \n");
return KL;
}
//проверка выстрела компьютера на повторение
int npoB_a(int a, int kon,int *mas)
{
int i,c;
for(i=0;i<=kon;i++)
if(a!=mas[i])c=0;
else c=1;
mas[kon+1]=a;
return c;
}
// поиск лис в поле
int nouck(char *macc,char *noka3,int i,int b, int a,int xod) //a-это k
{
int h/*столбец*/,l/*строка*/,k=0,k1=0,kk1=0;//счётчики
int cL=0/*кол лис в столбце*/,cP=0;//лис в строке
if(macc[i]=='L')
{//в случае попадания
printf("---------------------------------------\n");
if(xod==0) printf("\aпопадание!Вы нашли лису!\n");
else printf("\aпопадание!компьютер нашёл лису!\n");
printf("---------------------------------------\n");
noka3[i]='L';a+=1;
}
if(macc[i]!='L')
{//в случае промаха
printf("---------------------------------------\n");
if(xod==0)printf("промах!Вы не нашли лису!\n");
else printf("промах!компьютер не нашёл лису!\n");
printf("---------------------------------------\n");
{
noka3[i]='#';}
if(xod==0)
{//подсчёт лис в столбце и строке
for(h=(i%b);h<64;h+=b)
if(macc[h]=='L')
cL++;
if(i<8)
for(l=0;l<8;l++)
if(macc[l]=='L')
cP++;
if(i>=8)
for(l=(i-(i%b)+1);l<=(i-(i%b)+b);l++)
if(macc[l]=='L')
cP++;
printf(" Лис в строке: %i;\n Лис в столбце: %i;\n",cP,cL);
printf("---------------------------------------\n");
system("pause");
system("cls");
}
}
return a;
}
int main()
{
int urpa=1;//replay
while(urpa!=0)
{
system("cls");
int n/*количество лис*/,a=0/*координаты выстрела(игрока)*/,k=0,i1,k3,k1=0,k2,h,l,k5,kc,kk1,/*счётчики*/
xod=0,/*очерёдность*/j=0,i=0,/*координаты выстрела*/kBk=0,/*кол выстрелов компьютера*/
KL=0,/*кол лис размещённых игроком*/kkB=1,/*корректность компьютерного выстрела*/
mas[64]/*массив выстрелов компьютера*/,da/*переключатель хода*/,b=8,/*количество элементов в строке*/
kom=0/*счётчик найденных компьютером лис*/,yc,/*уровень сложности*/
cP=0/*лис в строке*/,cL=0/*лис в столбце*/,ur=0/*лис найдено игроком*/,f=0;/*координаты выстрела комп*/
char macc[64]/*поле игрока*/,noka3[64],/*поле игрока для демонстрации*/
noka3k[64]/*поле компьютера для демонстрации*/,macck[64];//поле компьютера
printf("\n\nИгра \"охота на лис\" приветствует тебя,Игрок!\nВ случае попадания в лису,на поле отобразится \"L\",в случае промаха-\"#\"\n\n\n");
for(i1=0;i1<64;i1++){macc[i1]='*';macck[i1]='*';noka3[i1]='*';noka3k[i1]='*';mas[i1]=-1;}
char *ma=&macc[0],*no=&noka3[0],*mk=&macck[0],*nk=&noka3k[0];//объявление указателей
//ввод кол лис
printf("\nВведите колличество лис(от 1 до 64):\n ");
scanf("%i", &n);
noJle(ma,n);
Sleep( 500 );//задержка 0.5 секунды
system("cls");
//размещение лис игроком
while (KL<n)
{
KL=pa3mL(macck,a,KL,b);
}
Sleep( 1000 );//задержка 1 секундa
system("cls");
//выбор уровня сложности
printf("Выберете уровень сложности:\nПростой-введите \"0\"\nсредний -введите \"1\"\n");
scanf("%i",&yc);
system("cls");
//стрельба по лисам
while ((ur<n)&&(kom<n))
{
//выстрел игрока
printf(" 1|2|3|4|5|6|7|8 1|2|3|4|5|6|7|8\n");
for(k5=0,kk1=0;k5<8;k5++,kk1++)
{
printf("%i |",k5+1);
for(kc=0;kc<8;kc++)
printf("%c ",noka3[kk1*b+kc]);printf("\t");
printf("%i |",k5+1);
for(kc=0;kc<8;kc++)
printf("%c ",noka3k[kk1*b+kc]);printf("\n");
}
xod=0;
if(xod%2==0)
{
printf("Введите номер строки и номер столбца,где,как Вы думаете,скрывается лиса:\n");
scanf("%i\n",&i);
scanf("%i",&j);
if((j>0)&&(j<9)&&(i>0)&&(i<9)&&(ur<n))
{
a=((i-1)*b+(j-1));
ur=nouck(mk,no,a,b,ur,xod%2);
da=1;
}
else {printf("вы ввели недопустимые значения \n");da=0;xod++;}
xod++;
}
system("cls");
if(yc==0)//уровень сложности
{
//выстрел компьютера простой сложности
if((xod%2==1)&&(da==1))
{
while(kkB!=0)
{
a=0;
srand(time(NULL));
a=rand()%64;kBk++;
kkB=npoB_a(a,kBk,mas);
}
kom=nouck(ma,nk,a,b,kom,xod%2);
da=0;kkB=1;
}
}
if(yc==1)//средняя сложность
{
if((xod%2==1)&&(da==1))
{
{
cL=0;cP=0;//обнуление счётчиков
while(kkB!=0)
{
srand(time(NULL));
f=rand()%64;
if((mk[f]!='#')&&(nk[f]!='#')&&(nk[f]!='L')) kkB=0;
else kkB=1;
}
for(h=(f%b);h<64;h+=b)
if(mk[h]=='L')
cL++;
if(cL==0)
for(h=(f%b);h<64;h+=b)
mk[h]='#';
if(f<=8)
{for(l=0;l<8;l++)
if(mk[l]=='L')
cP++;
if(cP==0)
for(l=0;l<8;l++)
mk[l]='#';}
if(f>=8)
{for(l=(f-(f%b));l<(f-(f%b)+b);l++)
if(mk[l]=='L')
cP++;
if(cP==0)
for(l=(f-(f%b)+1);l<(f-(f%b)+b);l++)
mk[l]='#';}
kom=nouck(ma,nk,f,b,kom,xod%2);
kkB=1;
}
da=0;
}
}
}
printf("\n---------------------------------------\n");
if(kom==ur)printf("\a\a\a Ничья!\n");
else
{
if(ur==n) printf("\a\a\aПобеда!!Вы нашли всех лис! ");
if(kom==n)printf("\a\a\aУВЫ!Вы проиграли!компьютер нашёл всех лис раньше!\n");
}
printf("\n---------------------------------------\n");
printf("\nЕсли Вы хотите сыграть ещё раз,нажмите \"1\".\nЕсли Вы хотите закончить игру-нажмите \"0\" ");
scanf("%i",&urpa);
if(urpa==0){printf("\nБлагодарим Вас за игру!\nПроизводство _Кузнецов_");Sleep( 3000 );system("cls");}
}
}
Рисунок 1 - Ввод количества лис
Рисунок 2 - Размещение лис игроком
Рисунок 3 - Лисы размещены в поле
Рисунок 4 - Выбор уровня сложности
Рисунок 5 - Ход игры
Рисунок 6 - Победа
Заключение
Данная игра была реализована на языке С. В ходе написания данной курсовой работы я изучил минимальный набор языка С, значительно повысил свой уровень знания языка.
Размещено на Allbest.ru
...Подобные документы
Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.
курсовая работа [12,4 K], добавлен 18.06.2008Изучение текстового режима языка программирования Turbo Pascal. Написание игры "Змейка" с помощью средств, процедур и функций языка программирование Turbo Pascal. Структурное и функциональное описание разработки. Листинг и общие примеры работы программы.
контрольная работа [286,3 K], добавлен 10.04.2011Анализ правил выбора хода на шахматной доске К. Шеннона. Характеристика программного модуля искусственного интеллекта для игры в шахматы. Контроль времени, поиск лучшего хода в шахматных алгоритмах. Разработка программы для игры с компьютерным оппонентом.
дипломная работа [3,7 M], добавлен 07.07.2012Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.
курсовая работа [1,5 M], добавлен 17.01.2011Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов.
курсовая работа [2,1 M], добавлен 23.02.2011Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.
курсовая работа [160,3 K], добавлен 03.12.2014Описание принципа развивающей игры в слова "Виселица". Разработка программы, реализующей задачу данной игры на языке Delphi. Обоснование выбора среды программирования, листинг файла, результаты отладки и тестирования, руководство для пользователя.
курсовая работа [572,7 K], добавлен 14.07.2012Разработка аналога игры "Крестики-нолики", где игроки выбирают размер поля. Правила игры. Интерфейс программы. Главная функция main. Класс XO. Метод вывода поля и хода игроков. Методы поиска крестиков, ноликов. Методы проверки выигрышных ситуаций игроков.
курсовая работа [281,5 K], добавлен 30.01.2018Разработка программы логической игры в "крестики-нолики" пять в ряд на поле размера 15х15 клеток с применением графики на языке Pascal с использованием объектно-ориентированного программирования. Структура алгоритма программы и описание ее работы.
курсовая работа [821,5 K], добавлен 13.02.2012Разработка эскизного и технического проекта программы игры "Собери картинку". Назначение и область применения, основные технические характеристики. Разработка рабочего проекта, разработка и спецификация программы игры. Описание и тестирование программы.
курсовая работа [22,6 K], добавлен 10.06.2010Понятие и эволюция игр, анализ их различных жанров и существующих аналогов. Выбор программных средств для реализации игры, написание сюжета и выбор среды разработки игры. Алгоритмы для придания гибкости обучающей игре. Описание программных модулей.
дипломная работа [2,7 M], добавлен 27.10.2017Описание алгоритма хода ЭВМ в режиме "пользователь-компьютер" в игре "Морской бой". Описание совокупности классов, их полей и методов. Разработка интерфейса и руководства пользователя по проведению игры. Листинг программы, написанной на языке Java.
курсовая работа [645,0 K], добавлен 26.03.2014Разработка компьютерной игры "Эволюция" с помощью игрового движка Unit. Сравнение критериев игры-аналога и разрабатываемой игры. Разработка графического интерфейса пользователя. Настройки камеры в редакторе Unity. Структура файла сохранения игры.
дипломная работа [3,6 M], добавлен 11.02.2017История создания игры "Тетрис", смысл и правила данной головоломки. Разработка поля игры и фигур тетрамино. Процедуры и функции, используемые для реализации движения фигур, их поворота и складывания в ряды, удаления и подсчета количества целых рядов.
курсовая работа [87,0 K], добавлен 02.02.2013Написание игры "Lines" на языке Object Pascal в среде Delphi. Алгоритм работы программы. Описание метода генерации поля. Используемые константы и переменные. Форма приложения после старта игрового процесса. Основные элементы формы и обработки событий.
курсовая работа [225,0 K], добавлен 12.04.2012История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.
курсовая работа [168,1 K], добавлен 27.09.2013Проектирование игры "Морской бой" путем составления диаграмм UML, IDEF0, DFD, моделирующих требования к программе. Разработка программы с использованием языка C# и фреймворка.NETFramework 3.5. Тестирование белого ящика и альфа-тестирование продукта.
курсовая работа [3,9 M], добавлен 24.10.2013Методика и основные этапы разработки стратегической игры, ее элементы и принцип работы программы. Порядок построения информационной модели. Диаграмма потоков данных и действий. Выбор языка программирования и его обоснование. Критерии качества среды.
курсовая работа [3,5 M], добавлен 11.12.2012Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера.
дипломная работа [3,3 M], добавлен 18.02.2017Игровая программа "шашки" для игры между человеком и компьютером. Разработка алгоритмов, историческая линия развития задач. Различные подходы к построению систем. Сокращенный листинг программы и описание алгоритма. Компоненты искусственного интеллекта.
курсовая работа [196,2 K], добавлен 26.03.2009