Вход

Игра "Тетрис" на языке Си

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 371804
Дата создания 08 января 2018
Страниц 18
Мы сможем обработать ваш заказ (!) 29 марта в 18:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 330руб.
КУПИТЬ

Описание

Программа должна осуществлять вывод на экран случайным образом последовательное падение семи различных фигур. Входными данными является сдвиг фигур по горизонтали вправо и влево, а также поворот фигур вокруг своей оси. Должно происходить добавление очков за каждую заполненную строку, а также удалять эти заполненные строки. Программа работает через консоль.
17.05.2017, СибГУТИ, оценка - отлично ...

Содержание

Описание подпрограмм
void gotoxy (int xpos, int ypos) - Прототип функции помещения курсора в точку xpos, ypos.
int fmap[FMAP_COUNTS][4][4] Инициализация фигур тетриса
void print (void) – Печать.
void printnextmap (void) - Напечатать следующую идущую фигуру в поле.
int getkey (void) - Пауза во время игры.
int valnewpos (int x, int y) - Необходимость движения фигуры вниз.

Введение

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

Фрагмент работы для ознакомления

void rotatemap (void) - Поворот фигуры.int rnd (int max) – Рандомизация.void sleep(int milsec) – Задержка.void deleteline (void) - Убить собранную линию.void createmap (void) - Создание фигуры.void clearscreen (void) - Oчистка экрана.void createrndscreen (void) - Cоздать случайный экран.void startgame (void) – Игра.void gamemenu (void) - Игровое меню.main() - основная программа, в которой вызываются процедуры.Текст программы#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <Windows.h>#include <time.h>#include <string.h>#include <locale>void gotoxy(int xpos, int ypos); #define KEY_UP 72 #define KEY_DOWN 80 #define KEY_LEFT 75 #define KEY_RIGHT 77 #define KEY_SPACE 32 #define KEY_ESC 27 #define KEY_ENTER 13 #define SIZEX25 #define SIZEY 24 #define FMAP_COUNTS 7 #define TRUE 1 #define FALSE 0 #define SCR_SP '\x27' #define SCR_OB '\x23' //char main_color[] = "color 12";int screen[SIZEX][SIZEY] = {0}; int map[4][4]; // Фигураint px, py, score, nextmap;const char* GAME_TITLE = "Игра - ТЕТРИС\n" "Добро пожаловать в игру!\n";int fmap[FMAP_COUNTS][4][4] = { { {1, 1, 0, 0}, {1, 1, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }, { {1, 0, 0, 0}, {1, 0, 0, 0}, {1, 0, 0, 0}, {1, 0, 0, 0} }, { {0, 0, 1, 0}, {1, 1, 1, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }, { {1, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }, { {0, 1, 1, 0}, {1, 1, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }, { {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }, { {1, 1, 1, 0}, {0, 1, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0} }}; void print (void) { int i, j; int buff[SIZEX][SIZEY]; for(i = 0; i < SIZEY; i++) for(j = 0; j < SIZEX; j++) buff[j][i] = screen[j][i]; for(i = 0; i < 4; i++) for(j = 0; j < 4; j++) if (map[j][i]) buff[j + px][i + py] = 1; gotoxy(0, 0); for(i = 0; i < SIZEY; i++) { for(j = 0; j < SIZEX; j++) { putchar(buff[j][i] == 0 ? SCR_SP : SCR_OB); } putchar('\n'); } gotoxy(SIZEX + 1, 0); printf("Количество очков: %i", score); }void print nextmap (void) { int i, j; gotoxy(SIZEX + 1, 2); printf("Следующая: "); for(i = 0; i < 4; i++) { gotoxy(SIZEX + 2, i + 3); for(j = 0; j < 4; j++) { putchar(fmap[nextmap][j][i] == 0 ? ' ' : SCR_OB); } }}int getkey(void){ int c; if(kbhit()) { if((c = getch()) == 224) c = getch(); return c; } return FALSE;}void gotoxy(int xpos, int ypos){ COORD scrn; HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE); scrn.X = xpos; scrn.

Список литературы

Отсутствует
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00478
© Рефератбанк, 2002 - 2024