Создание браузерной игры «Тетрис»
Автор: Поварницын Е.Н.
Журнал: Форум молодых ученых @forum-nauka
Статья в выпуске: 2 (42), 2020 года.
Бесплатный доступ
Статья посвящается созданию игры «Тетрис». В данной статье рассматриваются такие языки как JavaScript, HTML и таблица стилей CSS.
Тетрис, язык программирования, браузер
Короткий адрес: https://sciup.org/140287623
IDR: 140287623
Текст научной статьи Создание браузерной игры «Тетрис»
-
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 г.