Создание браузерной игры «Тетрис»

Автор: Поварницын Е.Н.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 2 (42), 2020 года.

Бесплатный доступ

Статья посвящается созданию игры «Тетрис». В данной статье рассматриваются такие языки как JavaScript, HTML и таблица стилей CSS.

Тетрис, язык программирования, браузер

Короткий адрес: https://sciup.org/140287623

IDR: 140287623   |   УДК: 004.6

Creating a browser-based game «Tetris»

The article is devoted to the creation of the game "Tetris". This article covers languages such as JavaScript, HTML, and the CSS stylesheet.

Текст научной статьи Создание браузерной игры «Тетрис»

  • 1.1    Описание предметной областиипостановка задачи

    Тетрис – культовая компьютерная игра, изобретённая в СССР Алексеем Пажитновым и представленная общественности 6 июня 1984года. Идею «Тетриса» ему подсказала купленная им игра в пентамино, а само название сформировалось сложением двух слов – «тетрамино» и «теннис». Интерес к фигурам домино, тримино, тетрамино и пентамино в СССР возник благодаря книге С. В. Голомба «Полимино» (издательство «Мир», 1975 год). В частности, пентамино было настолько популярно, что в «Науке и жизни», начиная с 1970 – х годов, появился постоянный раздел, посвящённый составлению фигурок из набора пентамино, а пластмассовые наборы пентамино иногда продавались в магазинах. «Тетрис» был впервые написан Алексеем Пажитновым в июне 1984 года на компьютере Электроника-60. Работая в ВЦ Академии наук СССР, он занимался проблемами искусственного интеллекта и распознавания речи, а для тестирования идей применял головоломки, в том числе и классическое пентамино. Пажитнов пытался автоматизировать укладку пентамино в заданные фигурки. Однако вычислительных мощностей оборудования того времени для вращения

пентамино не хватало, приходилось отлаживать на тетрамино, что и определило название игры. Эти опыты и привели к зарождению основной идеи «Тетриса»: фигурки должны падать, а заполненные ряды – исчезать [3] .

В самом начале игры появляется случайный блок. Его нужно расположить внизу поля. В тот момент, когда блок ещё не упал окончательно его можно переворачивать по часовой стрелке сколько угодно раз. Цель игры заполнить одну ость yблоками, когда линия полная, она исчезает, прибавляя +10 очков. Если одновременно ушли более одной строки, то каждая строка даёт в два раза больше очков предыдущей, то есть если две подряд, то 30 очков, если три, то 70 и так далее. В конце игры игроку предложат начать сначала или не начинать сначала. Если игрок нажмёт кнопку “ОК”, то игра начнётся заново, если отмена, то игра исчезнет.

  • 1.2    Выбор инструментов и методов реализации

Для создания игры использовались такие языки программирования, как HTML и JavaScript. К тому же был использован язык таблицы стилей CSS.

HTML — стандартизированный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML (или XHTML) . Язык HTML интерпретируется браузерами, полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства.

CSS —(каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

JavaScript — мультипарадигменный язык программирования, который поддерживает объектно-ориентированный, императивный и функциональный стили.

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

  • 2 ОПИСАНИЕ РАБОТЫ ПРИЛОЖЕНИЯ

Меню выбора выглядит, в соответствии с рисунком 1.

Подтвердите действие на странице localhost:63342

Ваш счёт 10 . Начать заново?

ОК Отмена

Рисунок 1 – Выбор действия

Сперва в . html файле создали canvas(грубо говоря холст, где будет расположена сама игра). Далее создали .js файл и подключили его к . html. В нём же сделали размер холста, в соответствии с рисунком 2.

Рисунок 2 – Пустой холст

Код будет в JS будет выглядеть в соответствии с рисунком 3.

Рисунок 3 – Холст в JavaScript

Далее нужно создать сами блоки. Для создания блоков используем матрицу, которая будет заполняться нужными блоками и далее располагаем ее на холсте и закрашиваем любым цветом. Выглядеть это будет, в соответствии с рисунком 4.

Рисунок 4 – Блок

Функция будет вы глядеть в соответствии с рису нком 5.

function createPiece(type) {

I if (type === T'H return [ [0,0,0], [1,1,1], [0,1,0]

L

Рисунок 5 – Создание блока

Далее прописываем функции с помощью, которых блок может падать вниз. То есть прописываем в .js, чтобы блок перемещался по оси y с определённым интервалом. Далее используем клавиши клавиатуры. Прописываем функцию с помощью которых при нажатии на стрелочку влево и стрелочку вправо блок перемещался по оси y. После этого появилось возможность перемещать блок, в соответствии с рисунком 6.

Рисунок 6 – Перемещение блока

Код перемещения по оси x будет выглядеть в соответствии с рисунком 7.

document.addEventListener('keydown1, event =>{ if (event.keyCode === 37){ playerMove(-1);

} else if (event.keyCode === 39){s playerMove(l);

} '

else if (event.keyCode === 40){ playerDropO

} else if (event.keyCode ===38){ playerRotate(-1);

}); _________________________________________________

Рисунок 7 – Перемещение по оси х

Далее добавим ещё фигуры с помощью матрицы. В стандартном тетрисе их 7. Так же добавим ограничение снизу, чтобы блоки не проваливались дальше ранее созданного холста. Должно будет выглядеть в соответствии с рисунком 8.

Рисунок 8 – Добавление разных блоков

Далее добавим окончание игры, чтобы, когда самый высокий блок заходил за холст игра заканчивается, в соответствии с рисунком 9.

Рисунок 9 – Окончание игры

Код будет выглядеть в соответствии с рисунком 10.

function playerReset() { const pieces = 'ILJOTSZ';

updateScore();

} else document.getElementBy!d('background').style.display = 'none';

Рисунок 10 – Код игры и её окончания

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

Рисунок 11 – Изменение цвета

Код в JavaScript будет выглядеть в соответствии с рисунком 12.

const color = [ null, ■ purple1, "yellow1, "orange", "blue", "aqua', "green", " red"

Ji

Рисунок 12 – Цвета блоков

Ну и последнее что стоит сделать это саму страницу, где будет расположена созданная игра. Для этого стоит создать .css файл и написать нужный стиль для данной игры. В итоге получилось полноценная красивая игра, которую не стыдно показать. Выглядеть она будет, в соответствии с рисунком 13.

Рисунок 13– Тетрис

ЗАКЛЮЧЕНИЕ

В итоге была написана полноценная игра Тетрис, в которую можно играть. Использовались такие языки как HTML, JavaScript, CSS. И такая игра весит всего лишь 528 КБ, что очень мало для такой интересной и легендарной игры. В данной игре было осуществлено создание блоков с помощью матрицы, их вращение. Подсчитывание очков при заполнении линии по оси y. А также окончание и начало новой игры.

Список литературы Создание браузерной игры «Тетрис»

  • Беляев, С.А. Разработка игр на языке JavaScript: учебное пособие / С.А. Беляев. - 2-е изд., стер. - Санкт-Петербург: Лань, 2018 г.
  • Государев, И.Б. Введение в веб-разработку на языке JavaScript: учебное пособие / И.Б. Государев. - Санкт-Петербург: Лань, 2019 г.
  • Юл, Й. Рассказывают ли игры истории? Краткая заметка об играх и нарративах / Й. Юл // Логос. - 2015 г.