Тетрис в виде компьютера
Обновлено: 21.11.2024
Гласность пришла в мир компьютерных игр в виде Tetris, невероятно захватывающей программы, созданной с любовью из России. Это игра настолько хороша, что вы не сможете сказать ей "нет".
Помните видеоигру Breakout, в которой целью было разрушить ряд стен из кирпича? В Tetris вы также набираете очки за исчезновение стен, но сначала вам нужно построить эти стены. Когда блоки различной формы падают с верхней части экрана вашего компьютера, вы используете клавиши курсора или джойстик, чтобы маневрировать блоками, чтобы они упали в пространство аналогичной формы внизу. Всякий раз, когда ряд полностью заполнен, он исчезает, давая вам больше места для маневра. Игра продолжается до тех пор, пока не закончится место для размещения блоков.
Тетрис настолько прост в освоении, что вы узнаете все правила через пять минут после открытия коробки. Но играть в нее настолько интригующе, что, начав, вы будете проводить много часов перед экраном компьютера — так много, что вы начнете задаваться вопросом, не является ли Тетрис на самом деле частью дьявольского заговора, вылупившегося в Империя зла, чтобы снизить производительность труда в Соединенных Штатах.
О чем не говорят вам экраны, так это окольным путем, по которому игра пошла, чтобы стать первым российским программным обеспечением, проданным в Америке. Виктор Брябрин, глава Academy Soft, отправил копию игры компании в Будапеште, которая, в свою очередь, передала ее лондонскому агенту, который передал лицензию на игру Spectrum Holobyte, американской компании-разработчику программного обеспечения, базирующейся в Аламеде, Калифорния. /p>
Spectrum Holobyte имеет международную серию программного обеспечения и публикует названия из Азии и Европы, такие как Soko-Ban из Японии и Zig Zag из Великобритании. Первоначальная версия Тетриса, присланная из России, имела сырую анимацию и графику, но руководители Spectrum Holobyte разглядели в ней потенциал. Они сохранили общий замысел русской версии, но американизировали ее, ускорив действие и оживив графику, предложив сенсационные показы таких достопримечательностей, как Парк Горького, Красная площадь и космический корабль «Союз».
Кроме того, американцы добавили в игру 10 уровней сложности — или это должны быть степи? Всякий раз, когда вы заставите 10 рядов кирпичей исчезнуть, кирпичи, падающие с верхней части экрана, начнут двигаться немного быстрее, пока на 10-м уровне они не начнут двигаться так же быстро, как эскадрилья МИГов, что является еще одним сверкающим фоновым изображением. Если вы сможете достичь такого высокого уровня, вы, вероятно, сможете внести свое имя в список почетных достижений Tetris: «10 лучших товарищей».
Американцы также добавили немного политического колорита, который русские, вероятно, не осмелились бы добавить в программу. сомнения в прошлогоднем «мирном бегстве» Западной Германии, которое так расстроило русских.
Игру можно приобрести у местного дилера программного обеспечения или заказать непосредственно в Spectrum Holobyte, позвонив по телефону 415-522-3584. Он доступен для Amiga, Atari ST, Commodore и IBM PC, а также совместимых устройств и стоит от 24,95 до 34,95 долларов США в зависимости от машины.
Тетрис – это классическая игра, которая должна занимать постоянное место на полке с программным обеспечением. Это редкая игра, которая понравится всем, программный кубик Рубика.
Ищете еще больше новостей и обзоров компьютерных игр? Тогда вы, возможно, захотите стать подписчиком Computer Gaming World, ежемесячного журнала, который стоит 29,50 долларов в год. Стиль написания неровный, но рецензии сбалансированы и полны, а журнал переполнен информацией. Подпишитесь, написав на ящик 4566, Анахайм, Калифорния, 92803, или позвонив по телефону 714-535-4435.
Игра Tetris – одна из самых популярных когда-либо созданных компьютерных игр. Оригинальная игра была разработана и написана русским программистом Алексеем Пажитновым в 1985 году. С тех пор Тетрис доступен почти на каждой компьютерной платформе во множестве вариаций.
Тетрис – это игра-головоломка с падающими блоками. В этой игре у нас есть семь различных фигур, называемых тетромино: S-образная, Z-образная, T-образная, L-образная, линейная, зеркально-L-образная и Квадратная форма. Каждая из этих фигур образована четырьмя квадратами. Фигуры падают с доски. Цель игры в тетрис состоит в том, чтобы перемещать и вращать фигуры так, чтобы они максимально соответствовали друг другу. Если нам удается сформировать ряд, ряд разрушается, и мы забиваем. Мы играем в тетрис, пока не достигнем вершины.
PyQt6 – это набор инструментов, предназначенный для создания приложений. Есть и другие библиотеки, предназначенные для создания компьютерных игр. Тем не менее PyQt6 и другие инструментальные средства приложений можно использовать для создания простых игр.
Создание компьютерной игры — хороший способ улучшить навыки программирования.
Разработка
У нас нет изображений для нашей игры Tetris, мы рисуем тетромино с помощью API рисования, доступного в наборе инструментов программирования PyQt6. За каждой компьютерной игрой стоит математическая модель. Так и в тетрисе.
Некоторые идеи, лежащие в основе игры:
- Мы используем QtCore.QBasicTimer для создания игрового цикла.
- Тетромино нарисованы.
- Фигуры перемещаются квадрат за квадратом (а не пиксель за пикселем).
- Математически доска представляет собой простой список чисел.
Код состоит из четырех классов: Tetris, Board, Tetrominoe и Shape. Класс тетрис настраивает игру. На доске написана логика игры. Класс Tetrominoe содержит имена всех фигурок тетриса, а класс Shape содержит код фигурки тетриса.
Игра немного упрощена, чтобы ее было легче понять. Игра запускается сразу после ее запуска. Мы можем поставить игру на паузу, нажав клавишу p. Клавиша пробела мгновенно бросит кусок тетриса на дно. Игра идет с постоянной скоростью, ускорение не реализовано. Оценка — это количество строк, которые мы удалили.
Экземпляр класса Board создается и назначается центральным виджетом приложения.
Мы создаем строку состояния, в которой будем отображать сообщения. Мы отобразим три возможных сообщения: количество уже удаленных строк, сообщение о паузе или сообщение об окончании игры. msg2Statusbar — это настраиваемый сигнал, реализованный в классе Board. showMessage — это встроенный метод, отображающий сообщение в строке состояния.
Эта строка запускает игру.
Пользовательский сигнал создается с помощью pyqtSignal . msg2Statusbar — это сигнал, который выдается, когда мы хотим записать сообщение или счет в строку состояния.
Это переменные класса Board. BoardWidth и BoardHeight определяют размер доски в блоках. Скорость определяет скорость игры. Каждые 300 мс будет запускаться новый игровой цикл.
В методе initBoard мы инициализируем некоторые важные переменные. self.curX и self.curY --> Переменная self.board представляет собой список чисел от 0 до 7. Она представляет положение различных фигур и остатки фигур на доске.
Метод shapeAt определяет тип фигуры в данном блоке.
Доска может быть динамически изменена. Как следствие, размер блока может измениться. SquareWidth вычисляет ширину одного квадрата в пикселях и возвращает ее. Board.BoardWidth — это размер доски в блоках.
Метод паузы приостанавливает игру. Он останавливает таймер и отображает сообщение в строке состояния.
Рисование происходит в методе paintEvent. QPainter отвечает за низкоуровневое рисование в PyQt6.
Рисование в игре разделено на два этапа. На первом этапе мы рисуем все фигуры или остатки фигур, которые были сброшены на дно доски. Все квадраты запоминаются в переменной списка self.board. Доступ к переменной осуществляется с помощью метода shapeAt.
Следующий шаг — рисование падающего куска.
В методе keyPressEvent мы проверяем нажатые клавиши. Если мы нажимаем клавишу со стрелкой вправо, мы пытаемся переместить фигуру вправо. Мы говорим «попробуй», потому что фигура может не двигаться.
Клавиша со стрелкой вверх повернет падающий кусок влево.
Клавиша пробела мгновенно опускает падающий кусок на дно.
Нажав клавишу d, фигура опустится на один блок вниз. Его можно использовать, чтобы немного ускорить падение куска.
В событии таймера мы либо создаем новую фигуру после того, как предыдущая была опущена вниз, либо перемещаем падающую фигуру на одну строку вниз.
Метод clearBoard очищает доску, устанавливая Tetrominoe.NoShape в каждом блоке доски.
Если фигура достигает дна, мы вызываем метод removeFullLines. Узнаем все полные строки и удаляем их. Мы делаем это, перемещая все строки выше текущей полной строки, чтобы удалить ее на одну строку вниз. Обратите внимание, что мы изменили порядок строк, которые нужно удалить. В противном случае он не работал бы правильно. В нашем случае мы используем наивную гравитацию. Это означает, что фигуры могут парить над пустыми промежутками.
Метод newPiece случайным образом создает новый фрагмент тетриса. Если фигура не может вернуться в исходное положение, игра окончена.
В методе tryMove мы пытаемся переместить наши фигуры. Если фигура находится на краю доски или примыкает к какой-либо другой фигуре, мы возвращаем False. В противном случае мы помещаем текущую падающую фигуру в новую позицию.
Класс Tetrominoe содержит имена всех возможных форм. У нас также есть NoShape для пустого пространства.
Класс Shape сохраняет информацию о фигуре тетриса.
Кортеж coordsTable содержит все возможные значения координат фигур тетриса. Это шаблон, из которого все части берут свои значения координат.
При создании мы создаем пустой список координат. В списке будут сохранены координаты фигуры тетриса.
Изображение выше поможет лучше понять значения координат. Например, кортежи (0, -1), (0, 0), (-1, 0), (-1, -1) представляют Z-форму. На схеме показана форма.
Метод rotateLeft поворачивает часть влево. Квадрат не нужно вращать. Вот почему мы просто возвращаем ссылку на текущий объект. Создается новый фрагмент, и его координаты устанавливаются такими же, как у повернутого фрагмента.
В Академии наук СССР инженер-программист Алексей Пажитнов создал простую игру, чтобы оценить, насколько мощным был новый компьютер. Игра, известная как тетрис, вскоре стала популярной во всем Советском Союзе, а в 1988 году стала одной из популярных игр на Game Boy от Nintendo.
Тетрис не мог войти в глобальный климат в более подходящее время. В 1984 году между США и Советским Союзом бушевала холодная война. В условиях напряженности качество жизни в США резко возросло, в то время как государственное регулирование начало усиливаться при коммунизме в Советской России. Однако ни одна из сторон не ожидала появления ничего не подозревающей силы, которая помогла разрушить границы между Соединенными Штатами и Советским Союзом: тетрис.
После получения степени по математике Пажитнов поступил в известную Советскую академию наук. Именно там, после долгих часов работы над архаичной технологией, Пажитнов начал разрабатывать побочный проект: Пажитнов был убежден, что сможет перенести опыт Pentominoes на компьютер. После нескольких недель работы и обязательной адаптации количества элементов к устаревшему программному обеспечению Пажитнов выпустил первую версию того, что впоследствии стало тетрисом.
От природы захватывающая и достаточно простая, чтобы не требовать обучения или объяснений, Пажитнов влюбился в свою новую игру. После того, как он представил его своим коллегам и сверстникам, тетрис начал распространяться со скоростью лесного пожара. К 1986 году играть в игру мог любой житель Советского Союза, имевший доступ к персональному компьютеру.
Однако железный занавес между Советским Союзом и остальным западным миром препятствовал распространению и популярности Тетриса. Только когда студенты Технологического института в Венгрии освоили игру, она начала распространяться по всему миру. Как только Роберт Штайн из Andromeda Software узнал о Tetris, начались приготовления к продаже игры. Это стало монументальным шагом в изменении отношений между коммунистической Советской Россией и остальным миром. В конце концов, президент Nintendo Хироши Ямаути узнал об этом, и Тетрис стал официальной лицензией Nintendo. Сегодня тетрис — одна из двух мобильных видеоигр, проданных тиражом более 100 миллионов копий
Чтобы узнать больше об обширной истории этой всемирной игры, посмотрите видео ниже.
Алексей Пажитнов был инженером-программистом Академии наук СССР в Москве, которому было поручено протестировать новый тип компьютера, Электроника 60. Для этого он написал простую игру, основанную на головоломке из его детства. Это помогло бы оценить, насколько мощным был компьютер, и доставило бы немного удовольствия.
Он и не подозревал, что получившаяся игра станет одной из величайших, самых захватывающих и самых успешных игр всех времен.
Тетрис – это игра-головоломка, в которой геометрические фигуры, называемые "тетромино", падают на игровое поле, и игроку нужно расставлять их так, чтобы они образовывали сплошные линии. Пажитнов черпал вдохновение в пентамино, классической игре-головоломке, состоящей из всевозможных фигур, которые можно составить из пяти квадратов (всего 12), чтобы собрать их в деревянную коробку, как пазл.
Для упрощения он сократил число квадратов до четырех, сократив таким образом количество фигур с 12 до семи. Он назвал игру тетрис, соединив греческое число "тетра" (означающее четыре) и теннис, его любимый вид спорта.
Сам Пажитнов сразу попался на крючок. «Я не мог удержаться от игры в эту версию прототипа, потому что было очень увлекательно собирать фигуры», — сказал он по телефону из Сиэтла, где сейчас живет.
Но создать видеоигру в Советской России в разгар холодной войны было далеко не просто. Только благодаря блестящему дизайну Tetris превратился из причудливой тестовой программы во всемирное явление.
Сарафанное радио
Хотя Тетрис сразу же стал популярным среди программистов, имевших доступ к Электронике 60, у машины не было графических возможностей и меньше памяти, чем у современных калькуляторов. Получив просьбы создать версию игры для IBM PC, более распространенного компьютера с лучшей графикой, Пажитнов поручил эту работу Вадиму Герасимову, 16-летнему студенту, подрабатывающему летом в его офисе (сегодня инженер в Google). Игра быстро распространилась. «Это было похоже на дрова. У всех в Советском Союзе, у кого был компьютер, был тетрис», — сказал Пажитнов.
Пажитнов не зарабатывал на игре и не собирался. Идеи принадлежали государству, и сама концепция продажи программного обеспечения как продукта была ему незнакома. Люди просто делились тетрисом из уст в уста и копировали его на дискеты.
Затем до Пажитнова дошли слухи о том, что игра могла выйти за границу и в нее играют в других странах Восточного блока. В 1986 году он получил сообщение по телексу — предшественнику факсимильного аппарата — от Роберта Штейна, продавца венгерской компании-разработчика программного обеспечения Andromeda. Штейн, видевший тетрис в Венгрии, хотел получить права на продажу его как компьютерной игры на Западе. Он предложил крупную сумму авансом.
«В то время мой английский был очень плохим, поэтому я собрал какой-то положительный ответ, сказав, что мы очень рады получить предложение и что можно прийти к какому-то соглашению», — сказал Пажитнов. Он знал, что ведение бизнеса напрямую с западной фирмой могло привести его к тюремному заключению еще до того, как он заработает какие-либо деньги, поэтому он начал выяснять, как он мог продать права на Tetris через государство.
Однако Штейн воспринял его ответ как зеленый свет и сразу же приступил к созданию игры. Но пока он готовился к запуску, он получил еще один телекс от «Элорга» — сокращенно от «Электроноргтехника», советской организации, которая курировала экспорт программного и аппаратного обеспечения. В нем говорилось, что права не были официально предоставлены и что его запуск был незаконным.
В конце концов, Штейн получил права, и в 1988 году Tetris был выпущен как коммерческая игра для ПК в Великобритании и США. Игра подчеркивала свое советское происхождение благодаря иллюстрациям на кремлевскую тематику и кириллическим символам. Но недопонимание между Пажитновым и Штейном показало, насколько сложно было бы впервые экспортировать видеоигру из Советской России на Запад — проблема, которая привела к годам путаницы и судебных баталий и, по слухам, даже приземлилась на стол советского лидера Михаила Горбачева.
Пажитнов и его сын с британской и американской версиями Tetris для ПК в 1989 году. Фото: Wojtek Laski/Hulton Archive/Getty Images
Игровой мальчик
"Я заключил рукопожатие с Минору Аракавой, основателем Nintendo of America, чтобы Nintendo добавила тетрис в каждый Game Boy", – сказал Роджерс в телефонном интервью. «Он сказал: «Зачем мне включать Тетрис? У меня есть Марио». И я сказал: "Если вы хотите, чтобы ваш Game Boy покупали маленькие мальчики, включите Марио. Но если вы хотите, чтобы ваш Game Boy покупали все, включите Tetris".
Роджерс решил получить необходимые разрешения и вскоре понял, насколько это будет непросто. Он уже опубликовал версию Tetris в Японии для популярной домашней системы Nintendo Famicom, но обнаружил, что существует полдюжины компаний, претендующих на владение правами на игру. «Поэтому я сел в самолет и отправился в Москву по туристической визе, чтобы отследить источник прав, Элорга, и поговорить об этом», — сказал он.
Оказавшись в Москве, Роджерс мало что продвинулся, пока не нанял переводчика, который быстро доставил его в Элорг.
"Она сразу поняла, где что находится, так что это было подозрительно. Они не должны были разговаривать с иностранцами, а я не должен был разговаривать с русскими, не говоря уже о людях в правительстве. Поэтому я нарушил все правила. Нарушения правил, находясь там. Меня допрашивали два часа. Я думал, они выясняют, отправят меня в Сибирь или нет», — сказал он.
Но среди чиновников в комнате был и Алексей Пажитнов, которому Роджерс сразу понравился. «Алексей был единственным парнем в комнате, который хоть что-то знал об играх, — вспоминал Роджерс. «Я объяснил, как устроен бизнес, и мы подружились. Через неделю я уехал из Москвы с подписанным соглашением о Tetris на Game Boy».
Версия Tetris для Game Boy была продана тиражом 35 миллионов единиц и помогла консоли стать одной из самых успешных за все время. Многие, в том числе и Пажитнов, до сих пор считают его лучшей версией тетриса, и он создал беспрецедентную синергию между аппаратным и программным обеспечением, олицетворяя игровую мантру «легко научиться, трудно освоить».
Отсроченные гонорары
Несмотря на успех игры, Пажитнов по-прежнему не зарабатывал на ней. «Было много юридических неприятностей, и когда встал вопрос о праве собственности и первоисточнике игры, я решил, что хочу, чтобы все прошло гладко, и передал права Вычислительному центру Академии наук СССР на 10 лет», — сказал он.
Кульминацией юридических проблем стала стычка между Nintendo и Atari из-за прав на домашнюю консоль Tetris. В конце 1989 года судья вынес решение в пользу Nintendo, нанеся смертельный удар по Atari, которая уже выпустила сотни тысяч уже бесполезных копий своей версии игры под слоганом «Тетрис: советская игра разума». Nintendo пошла по другому пути, выбрав слоган «Из России с удовольствием».
Пажитнов уехал из Москвы в Сиэтл в 1991 году с помощью своего друга Хенка Роджерса. И когда в 1995 году его сделка с правами истекла, он наконец начал получать гонорары за игру. "И до сих пор с ними все было в порядке", – сказал он.
В 1996 году Пажитнов и Роджерс основали компанию Tetris, чтобы заниматься лицензированием Tetris и его дочерних компаний. В 2005 году компания «Тетрис» купила «Элорг», которая после распада Советского Союза превратилась из государственной компании в частную, получив полный контроль над всеми правами на «Тетрис» по всему миру. Компания даже стандартизировала и зарегистрировала торговую марку наименования и цвета каждой фигуры тетриса — официально они называются тетримино, а не обычные тетромино, хотя у них много неофициальных прозвищ.
Тетрис был предметом нескольких научных исследований. Один обнаружил, что игра может эффективно бороться с тягой к еде и даже наркотикам, а другой отметил увеличение толщины некоторых участков мозга у людей, которые регулярно играли. Игра в тетрис в течение длительного периода времени может привести к тому, что игроки будут видеть во сне падающие фигуры или интерпретировать объекты реального мира как тетромино и мысленно переставлять их — явление, известное как «эффект тетриса».
По данным Tetris Company, на сегодняшний день Tetris выпущен более чем на 65 платформах, что является мировым рекордом: более полумиллиарда загрузок на мобильные устройства. Пажитнов лично работал над более чем 100 вариантами игры.
Последняя версия, выпущенная в начале 2019 года и приуроченная к празднованию 35-летия игры, представляет собой многопользовательскую онлайн-версию под названием Tetris 99, в которую одновременно могут играть до 99 игроков. С 2010 года в Портленде, штат Орегон, проводится киберспортивный турнир, основанный на версии Tetris для Nintendo Entertainment System 1989 года. Некоторые из матчей, которые могут длиться более 30 минут, набрали более 10 миллионов просмотров на YouTube.
"Он не утратил своей игровой ценности, и ничто не пришло на смену тетрису", – сказал Хенк Роджерс, объясняя непреходящую популярность игры.
"Это как "С Днем Рождения". Было много песен, которые приходят и уходят, но «Happy Birthday» всегда поется одинаково. Тетрис стал «Happy Birthday» среди компьютерных игр».
Читайте также: