Проект гри "Тетрис" - Программирование, компьютеры и кибернетика курсовая работа

Проект гри "Тетрис" - Программирование, компьютеры и кибернетика курсовая работа



































Розробка програми "Тетрис", яка виконує створення та переміщення фігур, видалення повних рядів та нарахування балів. Вимоги до умов експлуатації ігрової програми, вхідні та вихідні дані. Проектування діаграми класів та діаграми станів ігрового додатку.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
У даній курсовій роботі розглядається проект гри “Тетрис”.
Робота виконана на26 сторінках, містить 3 рисунка. Робота має 1 програму, з текстом програми та результатами.
In this term paper, the project of the game "Tetris" is considered.
The work is executed on 26 pages, contains 3 pictures. The work has 1 program, with the text of the program and the results.
Work is executed in the Ukrainian language.
Інтерес до фігур доміно, триміно, тетраміно і пентаміно в СРСР виник завдяки книзі С. В. Голомба «Поліміно» (видавництво «Мир», 1975). Зокрема, пентаміно було настільки популярне, що в «Науці і житті» починаючи з 1960-х років був постійний розділ, присвячений складанню фігурок з набору пентаміно, а пластмасові набори пентаміно іноді продавалися в магазинах.
«Тетріс» був вперше написаний співробітником Обчислювального центру Академії наук СРСР Олексієм Пажитновим у червні 1984 року. На той час Пажитнов займався проблемами штучного інтелекту і розпізнавання мови. Перша версія гри з'явилася для комп'ютера Електроніка-60; передбачалося, вона стане вдосконаленою варіацією його улюбленої класичної гри Pentomino Puzzle.
У першому варіанті гри, написаної Пажитновим, можна змінювати положення фігур шляхом повороту їх на 90 градусів щодо їх геометричного центру. Однак на той час потужність комп'ютерів не дозволяла запустити таку програму. Тоді розробник вирішив спростити завдання, забравши у кожної з фігур пентаміно по одному квадратику, зменшивши їх кількість до чотирьох -- тетраміно. Так з'явилася перша версія тетрісу для мікрокомп'ютера Електроніка-60.
Пізніше Вадим Герасимов переписав цю гру для IBM PC. Після чого ця гра набула великої популярності.
Після появи тетрісу кілька найбільших на той час компаній з розробки системного забезпечення, комп'ютерних та ігрових застосунків -- Spectrum Holobyte і Mirrorsoft, Bullet-Proof Software і Atari Games, Famicom і його американський аналог Nintendo Entertainment System -- почали тривалу боротьбу за придбання прав на випуск всіх варіацій і консольних версій тетрісу.
У 1988 році за підтримки Генка Роджерса Пажитнов організував компанію з розробки ігрового програмного забезпечення AnimaTek, а 1991 року було створено компанію Tetris.
Метою даної курсової роботи є розробка гри „Тетрис”. Вона відноситься до аркадних ігор, яка не потребує багато часу, але з інтенсивним та вдумливим ігровим процесом.Для цієї мети не підходять ігри типу стратегій, бо для них потрібно багато часу, а для 5-10 хвилинного відпочинку цілком підійде саме «Тетрис».У стандартній поставці операційних систем даної гри немає, тому виникла необхідність у її створенні.
До ігор такого типу пред`являються такі вимоги: використання простих засобів управління; зручний графічний інтерфейс; поступове ускладнення гри при неправильних рішеннях. Під час виконання програма повинна виконуватися коректно і не приводити до збоїв.
Blockout- тривимірний варіант гри Тетріс, створений в 1989 році компанією California Dreams, її програмістами Олександром Усташевскім (Aleksander Ustaszewski) і Мирославом Заблоцьким (Mirosіaw Zabіocki).
Quadrapassel- Це класичний Тетріс в стакан 14х20. Складність гри (швидкість падіння фігур) зростає поступово з кількістю прибраних ліній.
Розробити програму “Тетрис”, яка виконує створення та переміщення фігур, видалення повних рядів та нарахування балів. Зміст гри полягає у збиранні повних рядів фігур. При збиранні повного ряда він видаляеться, а гравцю нараховуються бали. Закінчення гри - повне заповнення хоча б одного стовпця ігрового поля.Програма починається з зображення пустого ігрового поля та падіння першої фігури. Напрямком фігури та її оріентацією можна керувати за допомогою клавіш-стрілок.
Controller - об'єкт котрий відповідає за керування грою з клавіатури.
Form - об'єкт що відповідає за створення фігур.
1) Мова програмування Java-- об'єктно-орієнтована мова програмування, випущена 1995 року компанією «Sun Microsystems» як основний компонент платформи Java.Мова значно запозичила синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли виникнути через помилки програміста та полегшено сам процес розробки об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати програмісти, доручено віртуальній машині.
2) Cередовище розробки IntelliJIDEA - є інтегрованим середовищем розробки Java (IDE) для розробки комп'ютерного програмного забезпечення. Вона розробляється JetBrains (раніше відомим як IntelliJ), і єяк Apache 2 Ліцензійного Community Edition, і в власноїкомерційної версії. Обидва можна використовувати для комерційного розвитку.
3) JavaFX -- платформа та набір інструментів для створення насичених інтернет-застосунків (англ. Rich Internet Applications, RIA) з можливістю підвантаження медіа та змісту. Вперше продемонстровано Sun Microsystems на Міжнародній конференції Java-розробників JavaOne у травні 2007. JavaFX включає в себе набір утиліт, за допомогою яких веб-розробники та дизайнери можуть швидко створювати та надавати розвинуті інтернет-застосунки для десктопів, мобільних пристроїв, телебачення та інших платформ.
JavaFX складається з JavaFX Script і JavaFX Mobile. Починаючи з випуску JavaFX 2.0 забезпечено можливість створення JavaFX-застосунків, написаних цілком мовою Java. Для розробки застосунків доступний багатий графічний і мультимедійний API, що спрощує створення візуальних програм.
В даній роботі був розроблений проект комп'ютерної гри “Тетрис”.
В результаті роботи була створена комп'ютерна гра “Тетрис”.У процесі роботи було розроблено 2 діаграми: діаграма класів та діаграма станів.
Код програми представлено у додатку А.
1) Методичні вказівки до виконання курсових робіт з дисципліни "Мова програмування Java" / Є. Ю. Беркунський. - Миколаїв : НУК, 2015. - 29 c.
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.shape.Rectangle;
public class Tetris extends Application {
public static int XMAX = SIZE * 12;
public static int YMAX = SIZE * 24;
public static int[][] MESH = new int[XMAX / SIZE][YMAX / SIZE];
private static Pane group = new Pane();
private static Scene scene = new Scene(group, XMAX + 150, YMAX);
private static boolean game = true;
private static Form nextObject = Controller.makeRect();
private static int linesAmount = 0;
public static void main(String[] args) {
Line line = new Line(XMAX, 0, XMAX, YMAX);
Text scoretext = new Text("Score: ");
scoretext.setStyle("-fx-font: 20 arial;");
level.setStyle("-fx-font: 20 arial;");
group.getChildren().addAll(scoretext, line, level);
group.getChildren().addAll(a.a, a.b, a.c, a.d);
nextObject = Controller.makeRect();
if (object.a.getY() == 0 || object.b.getY() == 0 || object.c.getY() == 0
over.setStyle("-fx-font: 70 arial;");
scoretext.setText("Score: " + Integer.toString(score));
level.setText("Lines: " + Integer.toString(linesAmount));
private void moveOnKeyPress(Form form) {
private void RemoveRows(Pane pane) {
ArrayList rects = new ArrayList<>();
ArrayList lines = new ArrayList<>();
ArrayList newrects = new ArrayList<>();
for (int i = 0; i < MESH[0].length; i++) {
for (Node node : pane.getChildren()) {
if (a.getY() == lines.get(0) * SIZE) {
MESH[(int) a.getX() / SIZE][(int) a.getY() / SIZE] = 0;
if (a.getY() < lines.get(0) * SIZE) {
MESH[(int) a.getX() / SIZE][(int) a.getY() / SIZE] = 0;
for (Node node : pane.getChildren()) {
MESH[(int) a.getX() / SIZE][(int) a.getY() / SIZE] = 1;
} catch (ArrayIndexOutOfBoundsException ignored) {
private void MoveDown(Rectangle rect) {
private void MoveRight(Rectangle rect) {
if (rect.getX() + MOVE <= XMAX - SIZE)
private void MoveLeft(Rectangle rect) {
private void MoveUp(Rectangle rect) {
if (form.a.getY() == YMAX - SIZE || form.b.getY() == YMAX - SIZE || form.c.getY() == YMAX - SIZE
|| form.d.getY() == YMAX - SIZE || moveA(form) || moveB(form) || moveC(form) || moveD(form)) {
MESH[(int) form.a.getX() / SIZE][(int) form.a.getY() / SIZE] = 1;
MESH[(int) form.b.getX() / SIZE][(int) form.b.getY() / SIZE] = 1;
MESH[(int) form.c.getX() / SIZE][(int) form.c.getY() / SIZE] = 1;
MESH[(int) form.d.getX() / SIZE][(int) form.d.getY() / SIZE] = 1;
nextObject = Controller.makeRect();
group.getChildren().addAll(a.a, a.b, a.c, a.d);
if (form.a.getY() + MOVE < YMAX && form.b.getY() + MOVE < YMAX && form.c.getY() + MOVE < YMAX
int moveA = MESH[(int) form.a.getX() / SIZE][((int) form.a.getY() / SIZE) + 1];
int moveB = MESH[(int) form.b.getX() / SIZE][((int) form.b.getY() / SIZE) + 1];
int moveC = MESH[(int) form.c.getX() / SIZE][((int) form.c.getY() / SIZE) + 1];
int moveD = MESH[(int) form.d.getX() / SIZE][((int) form.d.getY() / SIZE) + 1];
if (moveA == 0 && moveA == moveB && moveB == moveC && moveC == moveD) {
return (MESH[(int) form.a.getX() / SIZE][((int) form.a.getY() / SIZE) + 1] == 1);
return (MESH[(int) form.b.getX() / SIZE][((int) form.b.getY() / SIZE) + 1] == 1);
return (MESH[(int) form.c.getX() / SIZE][((int) form.c.getY() / SIZE) + 1] == 1);
return (MESH[(int) form.d.getX() / SIZE][((int) form.d.getY() / SIZE) + 1] == 1);
private boolean cB(Rectangle rect, int x, int y) {
xb = rect.getX() + x * MOVE <= XMAX - SIZE;
yb = rect.getY() + y * MOVE < YMAX;
return xb && yb && MESH[((int) rect.getX() / SIZE) + x][((int) rect.getY() / SIZE) - y] == 0;
import javafx.scene.shape.Rectangle;
public static final int MOVE = Tetris.MOVE;
public static final int SIZE = Tetris.SIZE;
public static int XMAX = Tetris.XMAX;
public static int YMAX = Tetris.YMAX;
public static int[][] MESH = Tetris.MESH;
public static void MoveRight(Form form) {
if (form.a.getX() + MOVE <= XMAX - SIZE && form.b.getX() + MOVE <= XMAX - SIZE
&& form.c.getX() + MOVE <= XMAX - SIZE && form.d.getX() + MOVE <= XMAX - SIZE) {
int movea = MESH[((int) form.a.getX() / SIZE) + 1][((int) form.a.getY() / SIZE)];
int moveb = MESH[((int) form.b.getX() / SIZE) + 1][((int) form.b.getY() / SIZE)];
int movec = MESH[((int) form.c.getX() / SIZE) + 1][((int) form.c.getY() / SIZE)];
int moved = MESH[((int) form.d.getX() / SIZE) + 1][((int) form.d.getY() / SIZE)];
if (movea == 0 && movea == moveb && moveb == movec && movec == moved) {
public static void MoveLeft(Form form) {
if (form.a.getX() - MOVE >= 0 && form.b.getX() - MOVE >= 0 && form.c.getX() - MOVE >= 0
int movea = MESH[((int) form.a.getX() / SIZE) - 1][((int) form.a.getY() / SIZE)];
int moveb = MESH[((int) form.b.getX() / SIZE) - 1][((int) form.b.getY() / SIZE)];
int movec = MESH[((int) form.c.getX() / SIZE) - 1][((int) form.c.getY() / SIZE)];
int moved = MESH[((int) form.d.getX() / SIZE) - 1][((int) form.d.getY() / SIZE)];
if (movea == 0 && movea == moveb && moveb == movec && movec == moved) {
int block = (int) (Math.random() * 100);
Rectangle a = new Rectangle(SIZE-1, SIZE-1), b = new Rectangle(SIZE-1, SIZE-1), c = new Rectangle(SIZE-1, SIZE-1),
import javafx.scene.shape.Rectangle;
public Form(Rectangle a, Rectangle b, Rectangle c, Rectangle d) {
public Form(Rectangle a, Rectangle b, Rectangle c, Rectangle d, String name) {
Ігрова програма «Тетрис» призначена для роботи одного користувача на одному комп'ютері, який повинен володіти мінімальними навичками роботи на ПК і з стандартними додатками Windows.
Вхідні дані заносяться в ігрову програму «Тетрис» вручну при натисканні клавіш стрілок (вгору, вліво, вниз, вправо) користувачем з клавіатури.
- Інформація, що виводиться на екран у вигляді графічного інтерфейсу.
Вихідні дані ігрової програми «Тетрис» виводяться на екран автоматично.
Створення програми "EvolAnim" для моделювання еволюції і розвитку живих організмів. Опис логічної структури. Умови існування об’єктів даних класів. Виклик і завантаження програми. Вимоги до складу й параметрів технічних засобів. Вхідні та вихідні дані. курсовая работа [437,5 K], добавлен 29.04.2014
Розробка ігрового додатку за технологією IDE Visual Studio та WPF. Опис вхідної та вихідної інформації. Назва та призначення модулів програми. Основні поля класу, необхідні для ігрової логіки. Блок-схема алгоритму гри. Інструкція з експлуатації системи. курсовая работа [1,3 M], добавлен 02.06.2015
Характеристика і функції телефонних довідників. Визначення об'єктів і класів і залежностей (зв'язків) між ними. Побудова діаграми ієрархії класів. Реалізація програми в середовищі Borland Delphi. Її інтерфейс і демонстрація можливостей. Тестовий приклад. курсовая работа [349,3 K], добавлен 25.01.2016
Створення програми, яка здатна перетворювати двовимірні зображення у об’ємні. Проект для побудови ландшафтів, отримання фотографій об’єктів під іншим кутом огляду, досліджень поверхонь зрізів матеріалів. Опис алгоритму програми. Вхідні та вихідні дані. курсовая работа [548,3 K], добавлен 09.06.2010
Призначення програмного продукту та вимоги до її функціональних можливостей, вхідних та вихідних даних. Інструкція оператора для роботи з програмою. Діаграми класів, прецедентів та станів. Введення даних в документ Excel і Word. Запис та зчитування з Xml. курсовая работа [6,8 M], добавлен 25.04.2015
Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних. курсовая работа [43,1 K], добавлен 30.06.2015
Поняття та класифікація комп’ютерних ігор. Відтворення гри "Морський бій" у вигляді комп’ютерної програми. Компоненти програмного середовища Delphi, що були використані під час її створення. Алгоритм реалізації ігрового процесу та скріншоти з програми. дипломная работа [418,2 K], добавлен 12.07.2013
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Проект гри "Тетрис" курсовая работа. Программирование, компьютеры и кибернетика.
Текст Аксеновой Про Отца Сочинение
Курсовая Работа На Тему Разработка Веб Файлового Менеджера С Использованием Технологии Ajax
Исследование влияния технологических параметров процесса каширования на физико-механические свойства
Ответы на экзаменационные вопросы по русскому языку
Дипломная Работа На Тему Нахождение Решений Дифференциальных Уравнений
Реферат: Анестезия при амбулаторных вмешательствах. Скачать бесплатно и без регистрации
Отчет по практике: Общий экономический анализ ООО "Невада ОПТ"
Медицинские Базы Данных Реферат
Курсовая работа по теме Расследование уголовного дела в случае грабежей
Курсовая Работа На Тему Программирование
Курсовая работа по теме Разведочное бурение
Реферат: Проблемы адаптация к новой культурной среде
Реферат: Ада Августа Байрон. Скачать бесплатно и без регистрации
Курсовая работа: Молодёжь и общество: проблемы социальной адаптации в современном мире
Сочинение На Тему Мой 5 Класс
Анатомо Физиологические Особенности Подростков Реферат
Реферат: Бизнес план по откорму бычков
Сочинение Мое Отношение К Брату
Пути Решения Экологических Проблем Эссе
Реферат: Россия в сказках М.Е.Салтыкова-Щедрина. Скачать бесплатно и без регистрации
Учет денежных средств и расчетов на примере ООО "Модный дом" - Бухгалтерский учет и аудит курсовая работа
Формирование представлений детей старшего дошкольного возраста о закономерностях в природе методом экспериментирования - Педагогика курсовая работа
Революция в Иране - История и исторические личности реферат


Report Page