Создание игры "Червяк" на С++

История создания игр на цифровых устройствах. Знакомство со средой программирования, изучение логики построения игровой программы "Червяк". Составление блок-схемы алгоритма с дополнительными файлами: Snake.h, Fruit.h, Game.h. Графический вид алгоритмов.

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

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

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

Размещено на http://www.Allbest.Ru/

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

Новосибирский государственный технический университет

Учебный центр информационных технологий

Направление подготовки: 230105 - «Программное обеспечение вычислительной техники и автоматизированных систем»

  • Лабораторная работа
  • по дисциплине «Информатика и программирование»
  • Создание игры «Червяк» на С++
  • Новосибирск, 2021 г.

Задание

Программа игры «Червяк». По экрану движется червяк, направление движения головы которого можно менять (стрелками). Червяк ест призы и растет. Задача - при движении головы не наткнуться на хвост и границы экрана.

Теоретический материал

Попытки создать простенькие игры на цифровых устройствах предпринимались ещё до начала Второй Мировой войны (а в 1947 уже была запрограммирована первая электронная игра, монитором для которой служил экран военного радара - это был симулятор вражеских ракет) - однако считается, что первой компьютерной игрой стала "ОХО" ("Крестики нолики"), в одиночку сделанная А.С. Дугласом в далёком 1952 году.

После свет увидела "Tennis for two", придуманная и реализованная Уильямом Хигинботэмом в 1958 году в Нью-Йорке. Посетители его лаборатории могли поиграть в теннис на цифровом корте, управляя своими "ракетками" с помощью джойстиков.

Первыми среди прочих компьютерные игры стали массово создавать операторы ЭВМ в разных полузакрытых научных учреждениях, имевших в распоряжении ЭВМ. Например, в 1962 году группа студентов Массачусетского техн. инст-та создала игру Spacewar! для новой ЭВМ DEC PDP-1. В Spacewar игрокам предоставлялась возможность поуправлять с помощью контроллеров космическими корабликами, выстреливающими друг в друга взрывающимися ракетами. Spacewar! стала очень популярна по всему миру оттого, что компания DEC встроила её в свои компьютеры в качестве программы, с помощью которой проверялась их работоспособность.

В 1966 году Ральф Баер создал первую "телевизионную" игру Chase, ставшей первой игрой, поиграть в которую можно было, выведя картинку на экран телевизора у себя дома. В 1969 году программист Кен Томпсон создал игру для ОС MULTICS. Она была названа Space Travel. В ST игрок мог путешествовать на космическом корабле меж планет небольшой солнечной системы и посадить корабль на одну из них, что и являлось целью игры.

В 1972 году Дебни и Бушнелл создали видеоигровую компанию Atari, создавшей вскоре ставшую сверхпопулярной игру PONG. Удалось продать более 1900 автоматов с вшитой в них игрой PONG. Так ПОНГ стала самой первой за всю историю многократно окупившейся компьютерной игрой.

В 1978 году другая гейм-девелоперская компания Taito выпустила ставшую крайне популярной игру Space Invaders. Atari увидела, насколько людям хочется пикселей и зрелищ - и в тот же год пустила в народ тоже очень финансово успешную Asteroids.

С 1971 по 1980 год вышли два завоевавших множество фанатов шутера от первого лица на ЭВМ - Maze War и SpaSim (два первых шутера, первый - в лабиринте от первого лица, второй - на фоне космоса), ещё - первая текстовая игра-квест Adventure во вселенной D&D(Dungeons & Dragons), первая игра-квест Colossal Cave Adventure. Были созданы первые прототипы сетевых игр, появились картинки из текстовых символов (ASCII-art).

Также в середине 1970-ых начали появляться первые домашние PC. Доморащённых программистов стало становиться всё больше и больше, появились первые книги и журналы по программированию. К 1975 году рынок игровых автоматов заняли компании Atari, Coleco, Magnavox и Sears. А ещё в 1975 Atari выпустила игровой автомат "Breakout", в котором надо было доской отталкивать шарик, разбивающий кубики. Так появился жанр arcanoid-игр.

В 1976 году были созданы портативные носители информации (ROM-катриджи), что позволило не зашивать по одной игре в один компьютер, но записывать игры на катриджи, вставлять их в спец. слоты и играть на одной машине в различные компьютерные игры. Такие компьтеры стали называть консолями. Первой консолью в итоге стала консоль VES 1976 года выпуска от Fairchild, но она не стала особенно популярной, в отличие от VCS, Intellivision, ColecoVision. В 1977 году Стив Джобс со товарищами выпускают компьютер для домашнего пользования Apple II, который также стал платформой для создания игр на компьютеры.

VCS (Video Computer Sistem (Atari 2600)) вышла в 1977 году и стала самой популярной из первых консолей. Она обладала 8-ми битным процессором.

Intellivision 1980-го года отличалась более мощным, чем у VCS, десятибитным процессором, и более производительным видеочипом. За 7 лет (1977-1983) было продано более сорока миллионов экземпляров консоли Atari 2600.

В 1979 году также вышли в массы игровые автоматы Asteroids и Pac-Man. После выхода Pac-Man игровые автоматы стали появляться тут и там в местах скопления людей (торговых центрах и т.д.), как грибы после дождя.

Первая карманная приставка для игр появилась в 1979 с лёгкой руки известной американской компании Milton Bradley, специализирующейся на настольных играх. Это устройство получило название Microvision. Оно могло похвастать монохромным квадратным жк экраном 16 на 16 пикс. Под Mcrovision было создано двенадцать игр (по два килобайта каждая). Консоль ColecoVision появилась в 1982 году. Она была ещё мощней, чем её предшественницы, но из-за монополии трёх основных производителей консолей рынок вскоре изрядно обвалился.

В 1980 году за создание простых консолей с монохромным экраном взялась японская компания Nintendo. Она поставила перед собой цель - создать компактные устройства для игр в путешествиях. В итоге появилась серия игр Game and Watch. Именно их примером вдохновлялись советские разработчики при создании компьютерных игр фирмы "Электроника" (например, "Ну, погоди!")

В 1982 году на рынке появился Commondore 64 одновременно с английским восьмиразрядным компьютером Sinclair Zx Spectrum. Последний стал поистине легендарным - быстро распространившись по всему миру, он продолжал пользоваться спросом ещё более десяти лет.

Когда на рынке появились IBM-компьютеры, игры снова стали становиться популярными. Новые технологии, в числе которых - новые звуковые чипы, 16-цветовой (а впоследствии - и 256-цветовой VGA) стандарт позволили игроделам создавать более сложные и красивые игры на персональные компьютеры.

В 1983 появился первый интерактивный мультфильм на игровом автомате Dragon's Lair, работавшем на большом оптическом диске.

В 1984 в Советском Союзе появилась игра Tetris (Тетрис).

Однако и разработчики игровых консолей тем временем не сидели сложа руки - в 1985 году увидела свет восьмибитная игровая консоль NES (Nintendo Entertainment System), ставшая иконой отрасли на добрый десяток лет. Всем вам известная игра Super Mario Brothers первоначально была выпущена именно на консоли NES.

Этот период времени ознаменовался резким скачком качества, количества и удешевления стоимости как разработки компьютерных игр, так и персональных компьютеров, причём в последних начали появляться CD-ROM-ы. В играх начал появляться качественный звук, приятная глазу графика и спецэффекты. В это время образовались такие геймдев-компании, как: Blizzard, Epic Games, id Software, Electronic Arts, 3D Realms и многие другие. Среди множества выпущенных в этот период времени игр стоит отдельно выделить Mortal Combat, Street Fighter, Heroes of Might and Magic, Myst, Wolfenstein 3D, DUNE-2 (первая пошаговая стратегия), Alone in the Dark (один из первых хорроров) DooM, King's Bounty (прародитель всех современных RPG) и, конечно, Civilization.

Постепенно 2D игры уходили в прошлое - их место понемногу занимали игры с более реалистичной 3D графикой. Появились 32 bit процессоры. Знаковым стал выход в 1993 году Atari Jaguar, через год после которого на рынок вышли Sony PlayStation и Sega Saturn. Игр стало ещё больше - вдобавок с вышедшим прежде играм, многие из которых стали культовыми (см. топ первых компьютерных игр в 4-ом поколении), появились игры Tekken, Resident Evil, Silent Hill, GTA, Need for Speed, Starcraft, Half-Life и т.д.

В 1998 году вышла мощная консоль Sega Dreamcast, которая из-за ряда причин не смогла прочно укрепиться на рынке и вскоре свалилась с него, утащив за собой и своего создателя, Sega. Sony и Nintendo закрепились на рынке с помощью, соотв.: PlayStation 2 и Game Cube. Microsoft тоже решила вставить свои пять копеек и выпустила в 2001 году свою первую консоль Xbox. В то же время стали развиваться игры на мобильных телефонах, в большинстве своём - на платформах Symbian, Java и Windows Mobile.

Тем временем игры на PC развивались ничуть не менее интенсивно - появилось много различных конфигураций доступных рядовому потребителю компьютеров, отчего в рядах геймеров произошёл раскол - те, кто предпочли не тратить деньги на мощные PC, играли в разнообразные квесты, аркады, ребусы и головоломки, а те, кто раскошелился на мощный PC - наслаждались очень красивыми и требовательными к железу играми, такими как Quake 3, Half-Life 2, Morrowind, Age of Empires, Unreal Tournament 2004, GTA: San Andreas и многими другими. Процессоры становятся всё мощней, на рынок вышли ATI, AMD и NVidia, потеснившие старичка Intel. У всё большего количества людей начал появляться доступ к Интернету, что поспособствовало развитию низкобюджетных инди-студий по разработке игр, получивших возможность продавать свои игры через Интернет без затрат на покупку и перепродажу физических носителей. В это же время мощно развилось цифровое пиратство, особенно в странах СНГ.

Игры становятся всё требовательнее к железу, появляются новые консоли, многоядерные процессоры, Интернет есть практически у всех геймеров, продажи игр стремительно переходят в цифровой формат, хоть и выходят объёмные Blu-ray диски, которые, однако, не смогли выиграть борьбу со стремительно дешевеющими и увеличивающимися в размере флеш-картами. Под конец в конструкцию многих новых ноутбуков даже перестали добавлять оптический привод - ради экономии места, уменьшения и облегчения корпуса.

Самые крупные разработчики стали выпускать кроссплатформенные проекты сразу на различные игровые платформы для лучшей окупаемости, стало появляться всё больше инди-студий, черпающих средства на краудфайндинге (сборе пожертвований у потенциальных игроков на специально созданных для этого площадках). Количество новых игр, выпускаемых каждый год, растёт лавинообразно.

Примерно в 2014-2015 году на рынок виртуальных развлечений показала нос технология VR. Visual Reality начала пробиваться сразу по всем фронтам - и на рынок портативных мобильных устройств, и на рынок стационарных ПК и игровых консолей. Но у виртуальной реальности возникло множество проблем, среди которых недостаточное количество достойных игровых проектов, поддерживающих технологию VR, высокая стоимость устройств для неё и сырые технологии взаимодействия с виртуальным миром (различные джойстики, сенсоры и камеры или обеспечивали неудобное или просто плохое взаимодействие с виртуальностью, или стоили столько, что "игра не стоила свеч"). Среди VR-шлемов можно выделить: Oculus Rift, HTC Vive, Sony PlayStation VR, Samsung Gear VR и картонный Google Cardboard (два последние - для смартфонов).

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

Описание алгоритма

Цель данной программы, чтобы по экрану двигалась змейка, направление движения, которой задаём с клавиатуры. Змейка ест призы и увеличивается. При столкновении с хвостом или границей экрана программа прекращает свою работу.

Программа реализована в виде проекта с дополнительными файлами: Snake.h, Fruit.h, Game.h.

Графический вид алгоритмов класса Snake.h представлен на рис.1.

Рис. 1 Блок схема Snake.h

Графический вид алгоритмов класса Fruit.h представлен на рис.2.

Рис. 2 Блок схема Fruit.h

Графический вид алгоритмов класса Game.h представлен на рис.3.1 и 3.2.

Рис. 3.1 Блок схема Game.h

программа алгоритм цифровой игра червяк

Рис. 3.2 Блок схема Game.h

Графический вид программы представлен на рис. 4

Рис. 4 Блок схема алгоритма программы

Пример работы программы

На рисунках 5.1 и 5.2 показан результат работы программы

Рис 5.1 Результат работы программы

Рис 5.2 Результат работы программы

Выводы

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

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

На завершающем этапе было проведено контрольное тестирование программы, которое показало правильность ее работы.

Приложение

Текст программы с комментариями

#pragma once

#include "Game.h"

#include<iostream>

#include <vector>

using namespace std;

#define LEFT 0

#define RIGHT 1

#define UP 2

#define DOWN 3

class Snake //Класс змейки

{private:

vector<pair<int, int>>snakeBlocks; //Все части тела змейки

int snakeLength;

int blockWidth;

int blockHeight;

const int blocksRow = 20;

const int blocksCol = 20;

bool snakeGrowthRecently = false; //Проверка, ела ли змейка фрукт

public:

Snake(pair<int, int> window) //

Конструктор класса, задает ширину, размер змейки, а так-же создает голову и один блок тела змейки

{

snakeLength = 2;

blockWidth = (window.first - window.first / 5) / blocksCol;

blockHeight = (window.second - window.second / 5) / blocksRow;

snakeBlocks.push_back(pair<int, int>(10 * blockWidth + window.first / 10,

10 * blockHeight + window.second / 10));

snakeBlocks.push_back(pair<int, int>(9 * blockWidth + window.first / 10,

10 * blockHeight + window.second / 10));

}

void moveSnake(int dir) //Движение змейки.

Работа по принципу: в зависимости от направления, перемещает голову змейки на один блок, а каждый следующий блок ставит на место предыдущего

{ pair<int, int> prevBlock;

for (int i = 0; i < snakeLength; i++) {

if (i == 0) { //Блоки не головы

prevBlock = snakeBlocks[i];

if (dir == LEFT)

snakeBlocks[i] = pair<int, int>(snakeBlocks[i].first - blockWidth,

snakeBlocks[i].second);

else if (dir == RIGHT)

snakeBlocks[i] = pair<int, int>(snakeBlocks[i].first + blockWidth,

snakeBlocks[i].second);

else if (dir == UP)

snakeBlocks[i] = pair<int, int>(snakeBlocks[i].first, snakeBlocks[i].second -

blockHeight);

else if (dir == DOWN)

snakeBlocks[i] = pair<int, int>(snakeBlocks[i].first, snakeBlocks[i].second

+ blockHeight);

}

else { //Блок головы

pair<int, int> tmp = snakeBlocks[i];

snakeBlocks[i] = prevBlock;

prevBlock = tmp;

}

}

if (snakeGrowthRecently) { //Если змейка ела фрукт, то на место

последнего блока, который был перемещен, ставится дополнительный

блок, т.е. змейка растет

snakeBlocks.push_back(prevBlock);

snakeLength++;

snakeGrowthRecently = false;

}

}

void snakeGrowth() //Установка флага поедания змейкой фрукта на true

{snakeGrowthRecently = true;}

pair<int, int>getSnakeBlockInfo() { return pair<int, int>(blockWidth,

blockHeight); } //Получение размера блоков змейки

pair<int, int>getSnakeCordInfo(int index) { return snakeBlocks[index]; }

//Получение координат конкретного блока змейки

int getSnakeLength() { return snakeLength; } //Получение размера змейки

};

#pragma once

#include "Game.h"

#include <iostream>

using namespace std;

class Fruit //Класс фрукта

{private: //Ширина, высота фрукта, а также координаты границ

игрового поля, а также координаты фрукта

int width;

int height;

int borderPassX;

int borderPassY;

int x;

int y;

public:

Fruit(pair<int, int> window) //Конструктор фрукта. Считает ширину,

высоту, а также координаты

{width = (window.first - window.first / 5) / 20;

height = (window.second - window.second / 5) / 20;

borderPassX = window.first / 10;

borderPassY = window.second / 10;

x = 5 * width + borderPassX;

y = 5 * height + borderPassY;

}

void setNewCord(int newX, int newY) //

Установка новых координат, после поедания текущего фрукта

{x = newX * width + borderPassX;

y = newY * height + borderPassY;

}

pair<int, int> getFruitCord() { return pair<int, int>(x, y); } //Получение

координат фрукта

};

#pragma once

#include "Windows.h"

#include "Snake.h"

#include "Fruit.h"

#include <stdio.h>

#include <string>

#include <iostream>

#include <vector>

#include <random>

using namespace std;

#define LEFT 0

#define RIGHT 1

#define UP 2

#define DOWN 3

class Game

{private:

int mapWidth; //Высота, ширина окна

int mapHeight;

const int frameDurationMilliseconds = 350; //Скорость игры

HBRUSH hBrushBorder = CreateSolidBrush(RGB(200, 200, 200));

//Кисти, для задания нужных цветов игровым объектам

HBRUSH hBrushBackground = CreateSolidBrush(RGB(0, 0, 0));

HBRUSH hBrushSnakeHead = CreateSolidBrush(RGB(255, 0, 0));

HBRUSH hBrushSnakeBody = CreateSolidBrush(RGB(0, 0, 255));

HBRUSH hBrushFruit = CreateSolidBrush(RGB(0, 255, 0));

HWND hwnd; //Переменные, для корректного подключения к консоли

HDC dc;

RECT window = {};

Snake* snakeObject; //Объект змейки

pair<int, int> snakeBlockInfo; //Ширина, высота блока змейки

int dir = RIGHT; //Направление

Fruit* fruitObject; //Объект фрукта

public:

Game(int mapW, int mapH) //

Конструктор, задает размеры окна, подключается к консоли, настраивает ее. Также инициализирует объекты змейки и фрукта

{mapWidth = mapW;

mapHeight = mapH;

hwnd = GetConsoleWindow();

dc = GetDC(hwnd);

GetWindowRect(hwnd, &window);

MoveWindow(hwnd, window.left, window.top, mapWidth + 30, mapHeight

+ 40, false);

GetWindowRect(hwnd, &window);

CONSOLE_CURSOR_INFO cci;

HANDLE hStdOut;

hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleCursorInfo(hStdOut, &cci);

cci.bVisible = false;

SetConsoleCursorInfo(hStdOut, &cci);

snakeObject = new Snake(pair<int, int>(mapWidth, mapHeight));

snakeBlockInfo = snakeObject->getSnakeBlockInfo();

fruitObject = new Fruit(pair<int, int>(mapWidth, mapHeight));

}

void sleep() //Задержка между кадрами

{Sleep(frameDurationMilliseconds); }

void draw() //рисование объектов

{this->drawBorder();

this->drawFruit();

this->drawSnake();

}

void moveSnake() //Движение змейки, хранящееся в ее классе

{ snakeObject->moveSnake(dir); }

void drawBorder() //

Рисование границ, выбираем кисть, строим прямоугольник одного цвета, а внутри него прямоугольник другого цвета

{SelectObject(dc, hBrushBorder);

Rectangle(dc, 0, 0, mapWidth, mapHeight);

SelectObject(dc, hBrushBackground);

Rectangle(dc, mapWidth / 10, mapHeight / 10, mapWidth - mapWidth / 10,

mapHeight - mapHeight / 10);

}

void drawSnake() //

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

{SelectObject(dc, hBrushSnakeHead);

pair<int, int>snakeHead = snakeObject->getSnakeCordInfo(0);

Rectangle(dc, snakeHead.first, snakeHead.second, snakeHead.first +

snakeBlockInfo.first, snakeHead.second + snakeBlockInfo.second);

SelectObject(dc, hBrushSnakeBody);

for (int i = 1; i < snakeObject->getSnakeLength(); i++) {

pair<int, int>snakeBody = snakeObject->getSnakeCordInfo(i);

Rectangle(dc, snakeBody.first, snakeBody.second, snakeBody.first +

snakeBlockInfo.first, snakeBody.second + snakeBlockInfo.second);

}

}

void drawFruit() //Рисование фрукта, аналогично верхним функциям

{SelectObject(dc, hBrushFruit);

pair<int, int>fruitCord = fruitObject->getFruitCord();

Rectangle(dc, fruitCord.first, fruitCord.second, fruitCord.first +

snakeBlockInfo.first, fruitCord.second + snakeBlockInfo.second);

}

void respawnFruit() //

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

{while (1) {//Ищет координаты до тех пор, пока не найдет подходящие

bool flag = true;

int x = rand() % 19 + 1;

int y = rand() % 19 + 1;

for (int i = 0; i < snakeObject->getSnakeLength(); i++) {

pair<int, int>snakeBody = snakeObject->getSnakeCordInfo(i);

pair<int, int>blockInfo = snakeObject->getSnakeBlockInfo();

if (x * blockInfo.first == snakeBody.first && y * blockInfo.second ==

snakeBody.second || x == fruitObject->getFruitCord().first && y ==

fruitObject->getFruitCord().second) {

flag = false;

break;

}

}

if (flag) { //Если нашел подходящие, устанавливает их и выходит из

цикла

fruitObject->setNewCord(x, y);

break;

}

}

}

void checkFood() //

Проверка на поедание фрукта. Достаточно сравнить координаты головы и координаты фрукта на равенство

{

pair<int, int>snakeHead = snakeObject->getSnakeCordInfo(0);

pair<int, int>fruitCord = fruitObject->getFruitCord();

if (snakeHead.first == fruitCord.first && snakeHead.second ==

fruitCord.second) {

snakeObject->snakeGrowth();

respawnFruit();

}

}

bool checkCollision() //

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

{pair<int, int>snakeHead = snakeObject->getSnakeCordInfo(0);

for (int i = 1; i < snakeObject->getSnakeLength(); i++) {

pair<int, int>bodyCord = snakeObject->getSnakeCordInfo(i);

if (snakeHead.first == bodyCord.first && snakeHead.second ==

bodyCord.second ||

snakeHead.first < mapWidth / 10 || snakeHead.first >= mapWidth -

mapWidth / 10 ||

snakeHead.second < mapHeight / 10 || snakeHead.second >= mapHeight -

mapHeight / 10)

return false;

}

return true;

}

void input()//Проверка на нажатие клавиш

{

if (_kbhit())//Если нажата клавиша

{

char a;

while (_kbhit()) //Бесконечный цикл, чтобы не забивался буфер ввода

a = _getch();

switch (a) //В зависимости от нажатой клавиши, меняем направление

{

case 75:

if (dir != RIGHT) dir = LEFT;

break;

case 77:

if (dir != LEFT) dir = RIGHT;

break;

case 72:

if (dir != DOWN) dir = UP;

break;

case 80:

if (dir != UP) dir = DOWN;

break;

}

}

}

};

#include <iostream>

#include <conio.h>

#include "Game.h"

using namespace std;

int main()

{

srand(time(0));

setlocale(LC_ALL, "Rus");

Game g = Game(800, 800);

while (1) {

g.moveSnake();

g.checkFood();

if (!g.checkCollision()) {

system("cls");

cout << "Вы проиграли, столкнувшсь с препятствием" << endl;

return 0;

}

g.draw();

g.sleep();

g.input();

}

return 0;

}

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

...

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

  • Изучение особенностей создания алгоритмов вычислительных задач. Визуальное программирование стандартных компонентов среды программирования Delphi. Технология создания компонента Delphi для решения производственной задачи. Выполнение блок-схемы алгоритма.

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

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

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

  • Понятие алгоритма, его назначение, представление (изобразительные средства для описания), типы, способы записи, схемы. Основные принципы разработки алгоритмов и программ. Характеристика языков программирования. Средства и правила построения блок-схем.

    реферат [87,9 K], добавлен 26.03.2010

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

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

  • Особенности разработки и реализации обучающей программы и схемы алгоритмов на языке программирования С++. Понятие равномерной и неравномерной дискретизации. Представление информации (составление кода) в виде таблицы перекодировки или многочлена.

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

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

    курсовая работа [58,2 K], добавлен 09.11.2012

  • История создания компьютерных игр. Обзор современных игровых жанров. Выбор используемых инструментов. Руководство пользователя. Разработка игры в жанре 3D шутера от первого лица. Конструктор игр Game Maker. Создание уровня с несколькими регионами.

    курсовая работа [961,8 K], добавлен 22.06.2015

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

    контрольная работа [204,4 K], добавлен 26.01.2013

  • Исследование особенностей разработки линейных алгоритмов и их реализации в среде Delphi. Составление тестов для проверки программы. Характеристика основных элементов интерфейса, компонентов, значения их свойств. Построение графической схемы алгоритма.

    лабораторная работа [316,6 K], добавлен 08.11.2012

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

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

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

    курсовая работа [196,2 K], добавлен 26.03.2009

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

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

    лекция [234,9 K], добавлен 07.04.2011

  • Разработка игры-аналога телевизионной передачи "Кто хочет стать миллионером?" с использованием программной среды Visual Basic и средств объектно-ориентированного программирования. Описание и листинг программы, составление алгоритма и блок-схемы.

    курсовая работа [253,2 K], добавлен 28.06.2009

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

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Описание работы программы, осуществляющей запись команд графического экрана в файл формата BMP. Изучение функции чтения 18-битовых значений из нескольких последовательно расположенных регистров таблицы цветов. Составление блок-схемы и текста программы.

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

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

    реферат [112,0 K], добавлен 14.06.2010

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

    реферат [155,9 K], добавлен 19.10.2013

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

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

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

    контрольная работа [447,4 K], добавлен 08.10.2012

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