Как написать тетрис на паскале
Предлагаю протестировать мой вариант этой игры на Паскале АБЦ!
Файл во вложении!
Тетрис паскаль АБЦ с комментариями.zip
uses crt; // Подключаем модуль Crt, который осуществляет вывод на экран в текстовом режиме 80 столбцов на 25 строк.
var ss,nn,x,y,pus,a,b,c,d,lin,rlin:integer; // Объявляем основные переменные
st:array[1..12,1..22] of integer; // Объявляем массив игрового поля 12х22 под именем st[12х22]
randmas:array[1..999999] of integer; // Объявляем Случайный ранд массив для создания числовой последовательности появления фигур, для определения следующей фигуры
CounterFigure:integer; // Объявляем счетчик выпавших фигур
CurrFigure,NextFigure:integer; // Объявляем переменные для вывода информации о следующей текущей и новой фигуре
Score:integer; // Объявляем переменную для сохранение игрового результата (игровые очки)
i:integer; // Объявляем счетчик для циклов в главном теле программы
// Процедура рисования фигур
procedure fig(x,y,n,s:integer); // Процедура fig(x,y,n,s) хранит информацию о типах фигур Тетриса
begin
if s=3 then pus:=0; // Если s=3 то сделать pus=0
ss:=s; k(x,y); // Сделать ss=s и вызвать процедуру k(x,y)
if n=1 then begin k(x+1,y);k(x,y-1);k(x+1,y-1) end; // Шаблон фигуры 1 (n=1)
// [][]
// [][]
if n=2 then begin k(x-1,y);k(x+1,y);k(x+2,y) end; // Шаблон фигуры 2 (n=2)
// [][][][]
if n=4 then begin k(x+1,y);k(x-1,y);k(x-1,y+1) end; // Шаблон фигуры 4 (n=4)
// []
// [][][]
if n=5 then begin k(x,y+1);k(x+1,y+1);k(x,y-1) end; // Шаблон фигуры 5 (n=5)
// [][]
// []
// []
if n=6 then begin k(x-1,y);k(x+1,y);k(x+1,y-1) end; // Шаблон фигуры 6 (n=6)
// [][][]
// []
if n=7 then begin k(x,y+1);k(x,y-1);k(x-1,y-1) end; // Шаблон фигуры 7 (n=7)
// []
// []
// [][]
if n=8 then begin k(x-1,y);k(x+1,y);k(x+1,y+1) end; // Шаблон фигуры 8 (n=8)
// []
// [][][]
if n=9 then begin k(x,y+1);k(x,y-1);k(x+1,y-1) end; // Шаблон фигуры 9 (n=9)
// []
// []
// [][]
if n=10 then begin k(x+1,y);k(x-1,y);k(x-1,y-1) end; // Шаблон фигуры 10 (n=10)
// [][][]
// []
if n=11 then begin k(x,y+1);k(x,y-1);k(x-1,y+1) end; // Шаблон фигуры 11 (n=11)
// [][]
// []
// []
if n=12 then begin k(x-1,y);k(x,y-1);k(x+1,y-1) end; // Шаблон фигуры 12 (n=12)
// [][]
// [][]
if n=13 then begin k(x,y+1);k(x-1,y);k(x-1,y-1) end; // Шаблон фигуры 13 (n=13)
// []
// [][]
// []
if n=14 then begin k(x+1,y);k(x-1,y-1);k(x,y-1) end; // Шаблон фигуры 14 (n=14)
// [][]
// [][]
if n=15 then begin k(x-1,y);k(x,y-1);k(x-1,y+1) end; // Шаблон фигуры 15 (n=15)
// []
// [][]
// []
if n=16 then begin k(x+1,y);k(x-1,y);k(x,y+1) end; // Шаблон фигуры 16 (n=16)
// []
// [][][]
if n=17 then begin k(x+1,y);k(x,y+1);k(x,y-1) end; // Шаблон фигуры 17 (n=17)
// []
// [][]
// []
if n=18 then begin k(x,y-1);k(x-1,y);k(x+1,y) end; // Шаблон фигуры 18 (n=18)
// [][][]
// []
if n=19 then begin k(x-1,y);k(x,y+1);k(x,y-1) end; // Шаблон фигуры 19 (n=19)
// []
// [][]
// []
end; // Конец процедуры рисования фигур
// Процедура поворота фигуры
procedure pov;
begin
nn:=nn-1;
if nn=15 then nn:=19;
if nn=13 then nn:=15;
if nn=11 then nn:=13;
if nn=7 then nn:=11;
if nn=3 then nn:=7;
if nn=1 then nn:=3;
if nn=0 then nn:=1;
end; // Конец процедуры поворота фигуры
// Процедура очистка* стакана
procedure clrst;
begin
for x:=1 to 12 do
for y:=1 to 22 do
if (x=1) or (x=12) or (y=1) then st[x,y]:=2
else st[x,y]:=0; // Рисуется контур стакана и обнуляется стакан
end; // Конец процедуры очистки* стакана
// Процедура создания новой текущей и следующей фигуры
procedure newfigure;
begin
// gotoxy(62,20); writeln(‘ ‘); //отладка
// gotoxy(62,20); writeln(‘CounterFigure ‘, CounterFigure); //отладка
//gotoxy(62,15); writeln(‘ ‘); //отладка
//gotoxy(62,15); writeln(‘Текущая ‘, CurrFigure); //отладка
NextFigure:=randmas[CounterFigure+2]; // Определение следующей фигуры
CurrFigure:=randmas[CounterFigure+1]; // Определение текущей фигуры
gotoxy(55,10); writeln(‘ ‘); // Стирание строки
gotoxy(55,10); writeln(‘Очки: ‘, Score); // Очки за успехи в игре
// СТАРТ ГЛАВНОЙ ПРОГРАММЫ
// Показ стартовой заставки!
HideCursor; // Скрыть курсор. Чтобы вклюсить обратно, нужен оператор ShowCursor;
TextBackground(Blue); // Установить черный цвет фона
ClrScr; // Очистить экран
TextColor(White); // Установить белый цвет букв
TextBackGround(Blue); // Установить синий цвет фона для букв
GotoXY(22,12); // Поставить курсор
write(‘Это версия Тетриса на Паскале ABC!’); // Вывести текст
GotoXY(8,14); writeln(‘Выбери английскую раскладку на клавиатуре и нажми на любую клавишу!’); // Вывести текст
TextColor(White);
GotoXY(15,5); writeln(‘[][][] [][][] [][][] [][][] [] [] [][][]’);
GotoXY(15,6); writeln(‘ [] [] [] [] [] [] [][] [] ‘);
GotoXY(15,7); writeln(‘ [] [][][] [] [][][] [] [] [] [] ‘);
GotoXY(15,8); writeln(‘ [] [] [] [] [] [] [] [] ‘);
GotoXY(15,9); writeln(‘ [] [][][] [] [] [][] [] [][][]’);
GotoXY(39,3);TextBackGround(Red); write(‘(c) Алексей Пажитнов’);
GotoXY(22,19);TextBackGround(Red); write(‘Александр Титов, Екатеринбург, 2019’);
TextBackground(Blue); TextBackGround(Blue); TextColor(White);
// Конец показа стартовой заставки!
randomize; // Включение генератора случайных чисел
for i:=1 to 999999 do randmas[i]:=(1+ random(18)); //Создание случайной последовательности почти бесконечной, для определения текущей и следующей фигуры
TextBackground(Blue); TextBackGround(Blue); TextColor(White);
clrscr; //Очистить экран от следов начальной заставки
textcolor(DarkGray); // Нижняя текстовая строка по середине
gotoxy(1,25);
Write(‘ Привет мир любителей оригинальной игры Тетрис (Алексей Пажитнов, 1984, СССР), спасибо создателю языка программирования Паскаль (Никлаус Вирт, 1970, Швейцария) от программистов на Pascal ABC (Титов Александр, 2019, Россия, Екатеринбург)!’);
TextColor(White);
textcolor(Green); // Правая верхняя строка с названием игры =TETЯIS=Pascal=ABC=2019=
gotoxy(52,01);
Writeln(‘=TETЯIS=Pascal=ABC=2019=’);
TextColor(White); // Конец верхней правой строки
clrst; // Процедура обнуления стакана
risvesst; // Процедура рисования стакана
lin:=0; // Установить ноль для счетчика линий, который влияет на скорость игры, т.к. содержится в переменной d
Score:=0; // Установить ноль очков для старта новой игры
repeat // Начать повторение основного цикла игры! До тех пор, пока есть пустое место на поле для передвижения и появления новых фигур
if pus=0 then // Если клетка пустая и нет столкновения со стаканом и уложенными ранее в стакан кирпичиками,
begin // то
repeat // повторять до столкновения
fig(x,y,nn,1); // Рисуется текущая фигура до движения, 1=[] из какого элемента рисуется фигура
dvig; // Вызвать процедуру движения фигуры с определением нажатой клавиши
fig(x,y-1,nn,3); // Нарисовать фигуру со смещением по оси Y при условии ss=3 и Индекс массива не пустое место (граница стакана или граница фигур), то присвоить pus=1 и остановить падение фигуры вниз за один элемент до границы стакана
if pus=0 then begin fig(x,y,nn,0); y:=y-1; end; //Рисуется фигура из элементов пустого поля стаканов ‘. ‘
until pus=1; // Столкновение произошло
CounterFigure:=CounterFigure+1; // Счетчик фигур для отладки
Score:=Score+100; // Прибавить 100 очков к счету за касание фигуры с полом
for y:=22 downto 2 do // Проверка заполненных рядов
begin // Начало проверки заполненных рядов
a:=0; for x:=2 to 11 do a:=a+st[x,y]; // Счетчик заполненных фигур, проверяет наличие клетки фигуры в массиве и увеличивается на 1, если там есть элемент фигуры
if a=10 then // Если сумма клеток равна 10, то значит ряд заполнился, его нужно удалить, массив элементов стакана сдвинуть вниз
begin // Начало сдвига массива
for b:=y to 21 do for c:=2 to 11 do st[c,b]:=st[c,b+1]; // Сдвиг массива вниз
lin:=lin+1; // Суммировать полностью заполненные линии и увеличть скорость игры
gotoxy(55,12); writeln(‘Линии: ‘,lin); // Показать количество полностью заполненных линий
Score:=Score+1000; // Прибавить 1000 очков к счету за полную линию!
end; // Конец сдвига массива
end; //Конец проверки заполненных рядов
risvesst; // Процедура рисования элементов всего стакана
pus:=0;
end;
until pus=1; // Остановить повторение основного игрового цикла! Т.к. нет пустово места.
gotoxy(4,2); writeln(‘Игра окончена!’); // Написать»Игра окончена»
end. // Конец текста кода программы этой замечательной игры Тетрис на Паскале АБЦ!
Разработка программы, реализующей игру «Тетрис» в программной среде Turbo Pascal
История создания игры «Тетрис», смысл и правила данной головоломки. Разработка поля игры и фигур тетрамино. Процедуры и функции, используемые для реализации движения фигур, их поворота и складывания в ряды, удаления и подсчета количества целых рядов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 02.02.2013 |
Размер файла | 87,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Результаты выполнения работы
Список использованных источников
Об игре ТЕТРИС
Правила
В этой курсовой работе мы ставили перед собой цель разработать программу, реализующую знаменитую и всеми любимую игру Тетрис в программной среде Turbo Pascal.
Главными и первоочередными задачами являются:
1) создание поля игры (стакана);
2) создание семи случайных фигур тетрамино;
3) движение фигур в поле;
4) возможность поворота фигур;
5) реализация складывания фигур в ряды;
6) удаление целых рядов и подсчёт их количества;
7) отображение последующей фигуры;
1) возможность выбора фигур для игры
2) создание одной дополнительной фигуры
3) реализация игры с различной скоростью
4) сохранение результатов игры в текстовый файл
5) подсчет очков с учётом скорости
6) создание дополнительных функций: выхода, паузы
1. Результаты выполнения работы
В программе используются:
1) массивы для создания поля игры;
процедуры и функции для создания фигур, поворота фигур, удаления рядов, вывода массива на экран и т.д. например: function cvet определяет цвет фигуры; procedure cls отчищает массив поля, procedure proverka удаление полной линии и прибавление очков, procedure paint Вывод состояния массива на экран и отображение последующей фигуры, procedure figura непосредственное определение формы фигуры,
2) procedure povorot реализация поворота фигуры.;
3) Оператор выбора case: например, в случайном выборе фигуры;
4) Цикл с пост условием Repeat/Until: в главном теле программы для зацикливания процесса игры;
5) Процедура считывания с клавиатуры keypressed и readkey для управления фигурами;
6) Модуль crt,который позволяет увеличить скорость выполнения программы в отличии от модуля Graph;
Игровая программа TETRIS на языке Паскаль
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Таганрогский государственный радиотехнический университет Кафедра вычислительной техники КУРСОВАЯ РАБОТА По курсу «Технология программирования»
Тема: “Игровая программа “TETRIS”
студент гр. ВЗ-107 Афонин В.Ю.
к. т. н., доцент Цехоня Вячеслав Иванович
Написать на языке PASCAL и отладить в интерактивном режиме игровую программу TETRIS.
Основное внимание необходимо уделить процессу нисходящего поуровневого проектирования алгоритма.
Техническое задание (ГОСТ 19.201-78).
2. Основание для разработки.
Выполнение курсовой работы.
3. Назначение разработки.
Данная программа является игровой, она применяется для развлечения пользователей, совершенствования их координации движения и логического мышления.
4. Требования к программе.
4.1. Требования к функциональным характеристикам.
В состав программы входят функции отображения на экране двужущихся фигурок, параллельного переноса их вправо и влево, поворота вокруг собственной оси, быстрого падения на дно короба и ряд вспомогательных функций (контроль наложения фигур, отображение элементов фигур и т.д.).
В работе программы временные характеристики несущественны.
4.2. Требования к надежности.
Надежное функционирование программы обеспечивается проверкой наложения при перемещении фигур и ограничением, накладываемым на набор входных данных (коды нажатых клавиш игнорируются, если эти клавиши не являются управляющими в игре).
4.3. Требования к составу и параметрам технических средств ЭВМ, внешние устройства, их характеристики.
Для функционирования программы требуется персональная ЭВМ с процессором 8086/8088, от 640 килобайт оперативной памяти, видеоадаптер VGA/EGA и соответствующий монитор. Прочие внешние устройства для работы программы не требуются.
4.4. Требования к информационной и программной совместимости ОС, система программирования, используемые программные средства, методы решения, информационные структуры и т.п.
Для функционирования программы требуется ОС MS-DOS версии 3.30 или выше, от 32 килобайт свободной оперативной памяти. Программа разработана в интегрирированной среде Turbo Pascal версии 7.0.
4.5. Специальные требования.
Специальные требования отсутствуют.
5. Требования к программной документации.
Требования к программной документации отсутствуют.
6. Технико-экономические показатели. Ориентировочная экономическая эффективность, преимущества по сравнению с аналогами.
Преимуществом по сравнению с аналогом является постоянное увеличение скорости игры.
Пояснительная записка (ГОСТ 19.404-79)
2. Назначение и область применения программы.
3. Технические характеристики.
3.1. Постановка задачи на разработку, описание методов решения.
Разработать алгоритм программы, осуществляющей передвижение фигур по экрану сверху вниз, координацию их местоположения в соответствии с действиями играющего.
Фигуры состоят из квадратов одинакового размера, набор фигур конечен, последовательность появления фигур должна быть случайной, причем появления фигур должны быть равновероятными. Игрок должен укладывать фигуры на дно ящика с наибольшей плотностью (количество незаполненных квадратов должно быть минимальным). При этом если слой, полностью заполненный квадратами, должен автоматически изыматься из ящика. Квадраты фигур не должны налагаться друг на друга. Поворот фугры вокруг своей оси должен осуществляться таким образом, чтобы не были задеты другие фигуры, стенки, дно ящика.
Тетрис \\ Паскаль
Может с помощью объектов замутить? А как контролировать повороты?
Написание тетриса не является темой повышенной сложности.
Пишешь на паскале под DOS?
Тут 2 варианта
1. Можно не использовать графический режим, а выводить фигуры и игровое поле текстовыми символами.
2. Использовать граф либу.
Советую остановиться на пункте 1, будет проще.
Само игровое поле тоже двумерный массив.
Фигуры это тоже двумерные массивы.
Нужно два массива под стакан, несколько мелких массивов под фигуры и один массив под текущую фигуру (чтобы вращать ее). Помещаешь фигуру в вспомогательный стакан по первоначальным координатам, проверяешь можно ли ходить дальше, если нельзя, гейм овер, иначе копируешь основной массив в вспомогательный, а в основном помещаешь фигуру по текущим координатам. Дальше проверяешь нажатия на клавиши, отрисовываешь содержимое массива по основному стакану, делаешь поворот фигуры в массиве для фигуры итд. через некоторое время меняешь координаты фигуры, добавляешь её по новым координатам в вспомогательный массив.
Vitorio
В паскале есть такое слово «absolute». Оно позволяет расположить массив по конкретному адресу. Так вот если тот самый массив 80х25х2 расположить на B800:0000 то при изменении содержимого массива будут изменяться символы на экране. Без всяких memcpy.
масс ДС[1][1] = 1
ДС[1][2] = 1
ДС[1][3] = 1
ДС[1][4] = 1
Rifler
Делал тетрис года два назад, тоже тогда на 1 курсе был, есть исходники, могу дать совсем по дешовке.
Язык Paskal 7.0, графический режим, полностью даже играбельно. Код там был ламотский, неточно у меня сейчас, так что для студента 1 курса вполне прокатит.
Стучи в асю!
alex19921992
>паскале есть такое слово «absolute». Оно позволяет расположить массив по конкретному адресу. Так вот если тот самый массив 80х25х2 расположить на B800:0000 то >при изменении содержимого массива будут изменяться символы на экране. Без всяких memcpy.
Такой вывод ничем не будет отличаться от стандартного вывода на экран. Все будет мерцать и переливаться.
Смысл в том чтобы формировать кадр где то в памяти а потом целиком его выводить на экран.
Зачем два массива для стакана?
Зачем отдельный массив для поворотов текущей фигуры? В фигуре всего 4 кубика, и всего 4 варианта поворота. Фигуры со всеми вариантами описываются статически, конкретная фаза поворота выбирается смещением в массиве фаз.
Само игровое поле тоже двумерный массив.
Фигуры это тоже двумерные массивы.
Получается, что игровое поле мы на экран выводить не будем? То есть фигуры будем вносить в двумерный массив, проверять на правильность и т.д, а потом копировать в трехмерный. Так? А уже его выводить на экран?
oistalker
Так-с. Например kvadrat: array[1..2,1..2] of Integer;
kvadrat[1][1]:=1;
kvadrat[1][2]:=1;
kvadrat[2][1]:=1;
kvadrat[2][2]:=1;
>>>Зачем два массива для стакана?
>>>Зачем отдельный массив для поворотов текущей фигуры?
этот же массив служит и для поворота текущей фигуры и для отрисовки в Стакане и для проверок на столкновения со «стенками» стакана.
такой подход позволит реализовать Любую фигуру 4х4, а не только состоящую из 4х кубиков..
Stakan: array[1..10,1..23] of Integer;
Figura: array[1..4,1..4] of Integer;
proc_ochistki_massiva_figur(); // вызови подпрограмму ы которой заполни 0 массив Фигуры
//
tek_Figura := 1+randomize(7);
// квадратик
// [][]
// [][]
//
if (tek_Figura = 1) begin Figura[1][1]:=1; Figura[1][2]:=1; Figura[2][1]:=1; Figura[2][2]:=1; end;
// линия
// [][][][]
//
if (tek_Figura = 2) begin Figura[1][1]:=1; Figura[1][2]:=1; Figura[1][3]:=1; Figura[1][4]:=1; end;
>>>Да все это прекрасно решается одним массивом под стакан, и массивами описаний фигур во всех фазах. Код тривиальнейший
Игровая программа TETRIS на языке Паскаль
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Таганрогский государственный радиотехнический университет
Кафедра вычислительной техники
По курсу «Технология программирования»
Тема: “Игровая программа “TETRIS”
студент гр. ВЗ-107 Афонин В.Ю.
к. т. н., доцент Цехоня Вячеслав
Написать на языке PASCAL и отладить в интерактивном режиме игровую
Основное внимание необходимо уделить процессу нисходящего поуровневого
1. Техническое задание
2.1. Пояснительная записка (технический проект)
2.2. Руководство (системного) программиста
2.3. Руководство оператора (пользователя)
2.4. Описание программы
5.1. Текст программы
Техническое задание (ГОСТ 19.201-78).
2. Основание для разработки.
Выполнение курсовой работы.
3. Назначение разработки.
Данная программа является игровой, она применяется для развлечения
пользователей, совершенствования их координации движения и логического
4. Требования к программе.
4.1. Требования к функциональным характеристикам.
В состав программы входят функции отображения на экране двужущихся фигурок,
параллельного переноса их вправо и влево, поворота вокруг собственной оси,
быстрого падения на дно короба и ряд вспомогательных функций (контроль
наложения фигур, отображение элементов фигур и т.д.).
В работе программы временные характеристики несущественны.
4.2. Требования к надежности.
Надежное функционирование программы обеспечивается проверкой наложения при
перемещении фигур и ограничением, накладываемым на набор входных данных
(коды нажатых клавиш игнорируются, если эти клавиши не являются
управляющими в игре).
4.3. Требования к составу и параметрам технических средств ЭВМ, внешние
устройства, их характеристики.
Для функционирования программы требуется персональная ЭВМ с процессором
8086/8088, от 640 килобайт оперативной памяти, видеоадаптер VGA/EGA и
соответствующий монитор. Прочие внешние устройства для работы программы не
4.4. Требования к информационной и программной совместимости ОС, система
программирования, используемые программные средства, методы решения,
информационные структуры и т.п.
Для функционирования программы требуется ОС MS-DOS версии 3.30 или выше, от
32 килобайт свободной оперативной памяти. Программа разработана в
интегрирированной среде Turbo Pascal версии 7.0.
4.5. Специальные требования.
Специальные требования отсутствуют.
5. Требования к программной документации.
Требования к программной документации отсутствуют.
6. Технико-экономические показатели. Ориентировочная экономическая
эффективность, преимущества по сравнению с аналогами.
Преимуществом по сравнению с аналогом является постоянное увеличение
Пояснительная записка (ГОСТ 19.404-79)
2. Назначение и область применения программы.
координации и логического мышления. Программа может применяться в качестве
игровой на разных типах персональных компьютеров.
3. Технические характеристики.
3.1. Постановка задачи на разработку, описание методов решения.
Разработать алгоритм программы, осуществляющей передвижение фигур по экрану
сверху вниз, координацию их местоположения в соответствии с действиями
Фигуры состоят из квадратов одинакового размера, набор фигур конечен,
последовательность появления фигур должна быть случайной, причем появления
фигур должны быть равновероятными. Игрок должен укладывать фигуры на дно
ящика с наибольшей плотностью (количество незаполненных квадратов должно
быть минимальным). При этом если слой, полностью заполненный квадратами,
должен автоматически изыматься из ящика. Квадраты фигур не должны
налагаться друг на друга. Поворот фугры вокруг своей оси должен
осуществляться таким образом, чтобы не были задеты другие фигуры, стенки,
3.2. Описание алгоритма и/или функционирования программы
3.3. Описание и обоснование выбора метода организации данных.
|Данные |Метод организации |
|Фигура |Двумерный массив-наиболее |
|Ящик |Двумерный массив, элемент |
| |соответствует свободной или |
|Каталог фигур |Массив из приведенных выше матриц.|
|Ширина, высота ящика,количество |Константы |
|цветов и фигур; флаги наложения, | |
|достижения дна ящика, свободной | |
3.4. Описание и обоснование выбора состава технических и программных
Для написания программы был выбран язык Паскаль. Отказ от библиотеки Turbo
Vision был продиктован невозможностью работы с этой библиотекой в
4. Ожидаемые технико-экономические показатели.
Ожидаемая разработка будет отличаться низкими требованиями к аппаратной
5. Источники, используемые при разработке.
При разработке используется статья «Новый мотор для старой идеи» из журнала
«Монитор» № 3 за 1994 год.
Руководство (системного) программиста (ГОСТ 19.504-79).
1. Назначение и условие применения программы.
координации и логического мышления. Программа может применяться в качестве
игровой на разных типах персональных компьютеров и распространяется на
2. Характристики программы.
Программа запускается под управлением операционной системы MS-DOS версии
3.30 и выше из каталога, в котором содержится драйвер видеоадаптера
egavga.bgi. Для её работы требуется от 32 килобайтов свободной оперативной
памяти, видеоадаптер EGA/VGA и процессор 8086/8088 и выше.
3. Обращение к программе.
Обращение к программе осуществляется командой tetris.
4. Входные и выходные данные.
5. Сообщения (сообщения системному программисту).
Для нормальной (без замедления) работы программы на ЭВМ AT 286 или ЭВМ
PC XT рекомендуется уменьшить значение, присваиваемое переменной speed, в 2-
раза. По аналогии рекомендуется увеличить это значение при использовании
программы на ЭВМ AT 486 и PENTIUM. После этого программу рекомендуется
6. Структура программы.
Исходный текст программы хранится в 1-м файле: tetris.pas.
Компиляция в турбо-среде осуществляется с использованием файла tetris.pas.
7. Настройка программы.
Программа готова к работе, настройки не требует.
8. Проверка программы.
Проверка работоспособности программы осуществляется в следующих случаях:
— независание фигуры при падении;
— падение фигуры до дна ящика;
— невыход фигуры за границы ящика;
— сдвиг фигуры и поворот её на расстоянии от стенок;
— сдвиг фигуры вблизи стенки и поворот её (при этом не должно происходить
наложение фигуры на границу ящика);
— неналожение фигуры при достижении лежащих на дне ящика других фигур;
— изъятие слоя, не содержащего пустых ячеек (все ячейки заполнены
— «оседание» слоев при изъятии слоя, не содержащего пустых ячеек;
— окончание игры при заполнении ящика или по команде игрока.
9. Дополнительные возможности.
Дополнительные возможности отсутствуют.
Руководство оператора (пользователя) (ГОСТ 19.505-79).
1. Назначение программы.
координации и логического мышления.
2. Условия выполнения программы.
Программа запускается под управлением операционной системы MS-DOS версии
3.30 и выше из каталога, в котором содержится драйвер видеоадаптера
egavga.bgi. Для её работы требуется от 32 килобайтов свободной оперативной
памяти, видеоадаптер EGA/VGA и процессор 8086/8088 и выше.
3. Выполнение программы.
Запуск программы осуществляется командой tetris из каталога, содержащего
файлы tetris.exe и egavga.bgi. При запуске появляется окно с названием
После этого на экране появляется ящик с падающими фигурами. Управление
игрой осуществляется следующими клавишами:
|Название клавиши |Выполняемая функция |
|Стрелка вправо |Сдвиг фигуры вправо |
|Стрелка влево |Сдвиг фигуры влево |
|Стрелка вверх |Поворот фигуры вокруг собственной |
|Стрелка вниз |Падение фигуры до дна ящика |
|ESC |Окончание игры |
4. Сообщения оператору.
При работе прогрммы на машинах PC AT 286 или PC XT рекомендуется уменьшить
значения, присваиваемые переменной speed в 2-3 раза для того, чтобы
скорость падения фигур была приемлемой для игры.
Описание программы (ГОСТ 19.402-78)
Программа называется «TETRIS», является классической версией отечественной
игры ТЕТРИС. Программа написана на языке Pascal в интегрированной среде
Turbo Pascal v7.0. Для её выполнения требуется компилятор с этого языка и
ОС. Техническая документация написана с использованием программных
продуктов Microsoft Word 97 и Meta Design 4.0.
2. Функциональное назначение.
Данная программа является игровой, она применяется для развлечения
пользователей, совершенствования их координации движения и логического
3. Описание логической структуры.
Описание логической структуры приведено на схемах, находящихся в приложении
4. Используемые технические средства.
Программа была написана и откомпилирована на ЭВМ Pentium-233
5. Вызов и загрузка.
Программа хранится в файлe tetris.pas; программа вызывается на выполнение
игры в режиме реального времени. Организованы в виде символьных переменных.
Информация, выводимая на экран в графическом режиме: рисунок ящика,
падающие и лежащие на дне фигуры. Организованы в виде двумерных массивов.
Приложение содержит листинг программы на языке Turbo Pascal.
В результате использованггия бета-версии программы не было получено жалоб
об отклонениях в правилах игры по сравнению с общепринятыми стандартами,
наложенными многочисленными версиями игры TETRIS. Это позволяет сделать
вывод о соответствии алгоритма постановке задачи. Выдача информации
наглядна : на экране постоянно отображена игровая ситуация. Текст программы
удобочитаем, т.к. содержит комментарии, поясняющие суть той или иной
ситуации. Текст программы содержится в приложении.
В ходе курсовой работы мною были изучены некоторые аспекты программирования
на языке Turbo Pascal. При оформлении курсовой работы был получены навыки
оформления программной документации в соответствии с Единой Системой
Программной Документации, а также большой практический опыт работы в Turbo
Pascal v7.0, Microsoft Word 97, Meta Design v4.0, Microsoft Excel 97 ( хотя
освоение этих программных продуктов не было целью курсовой работы, данные
навыки нельзя считать бесполезными ). Теоретические сведения были
закреплены практическими занятиями.
1. В. Сустаков. Язык программирования Pascal. М.: Радио и связь. 1994.
2. К. Лыков. А. Бабонин. Язык программирования Pascal для персонального
компьютера. М.: Радио и связь. 1993.
3. Н. Русаков и др. Справочник по функциям Borland Pascal 7.0. Киев:
4. Р. Виземан. Word for Windows (программы для персональных компьютеров).
Теперь вы знаете какие однокоренные слова подходят к слову Как написать тетрис на паскале, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать тетрис на паскале", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.