<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Get Info: #tetris</title>
    <description>Posts tagged “tetris” — Blog of independent game and app developer Matt Sephton. Featuring vintage Macintosh, game development, digital artwork, Japanese esoterica, video game reviews, hacks and tips, and much more.</description>
    <link>https://blog.gingerbeardman.com/tag/tetris/</link>
    <atom:link href="https://blog.gingerbeardman.com/tag/tetris/index.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 15 Jul 2026 17:33:15 +0000</pubDate>
    <lastBuildDate>Wed, 15 Jul 2026 17:33:15 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>

    
      
        <item>
          <title>TETRIS: 1984 is the date of conception (1989)</title>
          <description>&lt;p&gt;Given the ongoing discussion about &lt;a href=&quot;https://www.timeextension.com/news/2024/06/anniversary-is-tetris-really-40-this-year&quot;&gt;whether or not TETRIS turns 40 years old in 2024 or 2025&lt;/a&gt;, I keep my eye out for early mentions of the game. As a bonus, this is an item that at the time of me &lt;a href=&quot;https://twitter.com/gingerbeardman/status/1885581359655039019&quot;&gt;posting it to social media a couple of days ago&lt;/a&gt; had not been covered in English anywhere else on the internet. As far as I’m aware this is the earliest printed reference mentioning the conception date of Tetris.&lt;/p&gt;

&lt;p&gt;It’s a &lt;a href=&quot;https://archive.org/details/OhX_1989-08/page/n91/mode/1up&quot;&gt;short interview with Alexey Pajitnov&lt;/a&gt; in Japanese PC magazine, &lt;strong&gt;Oh! &lt;em&gt;X&lt;/em&gt;&lt;/strong&gt;, conducted mid-1989 around the time of the release of the seminal Game Boy version of TETRIS, the first year the game was available outside of the USSR. It contains this beautiful question and answer:&lt;/p&gt;

&lt;p&gt;Japanese text:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Q: TETRIS誕生のきっかけを教えてください。&lt;/p&gt;

  &lt;p&gt;——いまから5年前の1984年に、IQテスト用プログラムを作ろうとしたのが最初です。そのとき、ペントミノというゲームをベースに5～8個からなるブロックを落下させ、それを回転させて組み合わせるということを考えて作ったのがこのゲームなのです。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;English translation:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Q: Please tell us about how TETRIS came to be created.&lt;/p&gt;

  &lt;p&gt;A: It started 5 years ago in 1984, when I was trying to create a program for IQ testing. At that time, I created this game based on a game called Pentomino, where I came up with the idea of having blocks made up of 5–8 pieces fall down and rotate them to combine them together.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; pentomino are comprised of 5 pieces whilst tetromino are comprised of 4 pieces, so the version referred to is certainly an early prototype. I’m not aware of a surviving version of &lt;em&gt;whatever TETRIS was first known as&lt;/em&gt; that has blocks of 5–8 pieces.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;img src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-date-of-conception-1984.jpg&quot; alt=&quot;IMG&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;bibliography&quot;&gt;Bibliography&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Publication: Oh! &lt;em&gt;X&lt;/em&gt;, Vol. 8, No. 8 (August 1989)&lt;/li&gt;
  &lt;li&gt;ISSN: 0910-7614&lt;/li&gt;
  &lt;li&gt;Section: TETRISの原作者パジトノフ氏来日 (TETRIS creator Pajitnov visits Japan)&lt;/li&gt;
  &lt;li&gt;Pages: 89–90&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://archive.org/details/OhX_1989-08/page/n91/mode/1up&quot;&gt;Source scan&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Mon, 03 Feb 2025 17:20:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2025/02/03/tetris-date-of-conception-is-1984/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2025/02/03/tetris-date-of-conception-is-1984/</guid>
        </item>
      
    
      
        <item>
          <title>TETRIS for Sharp Electronic Notebook (1989)</title>
          <description>&lt;p&gt;Sharp’s Denshi Techō (電子手帳) were a range of electronic notebooks or organisers, marketed as &lt;a href=&quot;https://www.g-mark.org/gallery/winners/9cad4b2a-803d-11ed-862b-0242ac130002&quot;&gt;Bware&lt;/a&gt; in Japan and &lt;a href=&quot;https://en.wikipedia.org/wiki/Sharp_Wizard&quot;&gt;Wizard or IQ&lt;/a&gt; elsewhere. In Japan they won a prestigious &lt;a href=&quot;https://www.g-mark.org/gallery/winners/9cad4b2a-803d-11ed-862b-0242ac130002&quot;&gt;G-mark Good Design Award in 1988&lt;/a&gt; and in the USA &lt;a href=&quot;https://en.wikipedia.org/wiki/The_Wizard_(Seinfeld)&quot;&gt;an episode of Seinfeld&lt;/a&gt; was the prize.&lt;/p&gt;

&lt;p&gt;As well as being &lt;a href=&quot;/2024/05/10/emoji-history-the-missing-years/&quot;&gt;home to some of the earliest emoji&lt;/a&gt; these devices could run software from IC cards (solid state storage). There were about 30 games released in this format, everything from classics like &lt;em&gt;Sokoban&lt;/em&gt;, &lt;em&gt;Shanghai&lt;/em&gt;, &lt;em&gt;Lode Runner&lt;/em&gt;, &lt;em&gt;Puzznic&lt;/em&gt;, &lt;em&gt;Fortress&lt;/em&gt;, to everygreen games like &lt;em&gt;Golf&lt;/em&gt;, &lt;em&gt;Baseball&lt;/em&gt;, &lt;em&gt;Mahjong&lt;/em&gt;, &lt;em&gt;Shogi&lt;/em&gt;, &lt;em&gt;Othello&lt;/em&gt;, &lt;em&gt;Solitaire&lt;/em&gt;, &lt;em&gt;President&lt;/em&gt; (card game), exclusive games like &lt;em&gt;Yamamura Misa Suspense – The Kyoto Zai-tech Murder Case&lt;/em&gt;, and some contemporary titles like &lt;em&gt;Hatris&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;And perhaps most importantly: a version of &lt;em&gt;Tetris&lt;/em&gt;, released in December 1989. &lt;a href=&quot;/2024/06/18/tetris-heavenly-scrolls/&quot;&gt;Tetris-mania was in full effect&lt;/a&gt; and the &lt;em&gt;Game Boy&lt;/em&gt; had recently received its version of &lt;em&gt;Tetris&lt;/em&gt; in April 1989.&lt;/p&gt;

&lt;p&gt;There’s not much about these devices online, particularly in English, but two notable places are: &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-16524.html&quot;&gt;HP Museum forum&lt;/a&gt; (for devices and IC cards) and &lt;a href=&quot;https://forums.insertcredit.com/t/stay-sharp-with-sc-denshi-system-techo-games/2326&quot;&gt;Insert Credit forum&lt;/a&gt; (for games). The devices are common on Japanese auction and selling websites, but the games are becoming more difficult to find.&lt;/p&gt;

&lt;p&gt;This was, as far as I am aware, the second ever handheld version of Tetris. At the time of its release &lt;a href=&quot;https://en.wikipedia.org/wiki/Japanese_asset_price_bubble&quot;&gt;Japan was in the “bubble era” period of economic boom&lt;/a&gt;, which lasted 1986–1991. There was so much money floating around they didn’t know what to do with it, so much of it was ploughed into research and development of crazy things in the fields of consumer electronics, computers, engine technology, vehicle design, book design, software distribution, etc.&lt;/p&gt;

&lt;p&gt;Without this device &lt;a href=&quot;/2024/05/10/emoji-history-the-missing-years/#1994&quot;&gt;there would be no Apple Newton&lt;/a&gt; (which was co-produced by Sharp), without Newton there would be no iPhone, and without iPhone there would be no Android. Evolution is necessary for technological progress.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Thanks to &lt;a href=&quot;https://www.reddit.com/r/OldHandhelds/comments/sr51ze/may_i_present_you_the_whole_family_of_sharp/&quot;&gt;Akuji&lt;/a&gt;, the collector from whom I bought my Sharp PA-8500 and manual, who is a fountain of knowledge regarding IC-capable devices from a range of manufacturers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;tetris-ic-card&quot;&gt;TETRIS IC card&lt;/h2&gt;

&lt;p&gt;Here it is running on my PA-8500:&lt;/p&gt;

&lt;lite-youtube style=&quot;aspect-ratio: 1/1;&quot; videoid=&quot;Rzm5STvVY08&quot; params=&quot;start=0&amp;amp;modestbranding=2&quot;&gt;
&lt;/lite-youtube&gt;

&lt;hr /&gt;

&lt;h2 id=&quot;analysis&quot;&gt;Analysis&lt;/h2&gt;

&lt;p&gt;This version of the game is documented only briefly on &lt;a href=&quot;https://tetris.wiki/Tetris_(Sharp_Wizard)&quot;&gt;Tetris.wiki&lt;/a&gt; and even less on &lt;a href=&quot;https://harddrop.com/wiki/Tetris_(Sharp_Wizard)&quot;&gt;Hard Drop Tetris Wiki&lt;/a&gt;, so let’s see what we can do to fill in a bit more information.&lt;/p&gt;

&lt;p&gt;The device boots straight into the game, but you can switch to calendar, memo, calculator, or other organiser functions whilst it is running. Switching back to the game causes it to reboot, so games cannot be resumed. You cannot skip the BPS logo, but you can skip the credits.&lt;/p&gt;

&lt;p&gt;The credits and game area are in the left (or top) half of the display because it can also run on devices with a smaller screen of half the size of the one shown.&lt;/p&gt;

&lt;p&gt;There is a touch screen surface on top of where the card slots in and the print on the IC card itself shows the user where to press for each button or function. We can see that the shape of each buttons lines up with the grid of dots of the touch surface. We see the following buttons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;left&lt;/li&gt;
  &lt;li&gt;right&lt;/li&gt;
  &lt;li&gt;rotate (only counter-clockwise)&lt;/li&gt;
  &lt;li&gt;soft drop&lt;/li&gt;
  &lt;li&gt;start (hi-speed)&lt;/li&gt;
  &lt;li&gt;start (low-speed)&lt;/li&gt;
  &lt;li&gt;pause on/off&lt;/li&gt;
  &lt;li&gt;sound on/off&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scoring, line-clearing, leveling-up are somewhat odd and non-standard. &lt;a href=&quot;https://tetris.wiki/Tetris_(Sharp_Wizard)&quot;&gt;Tetris.wiki&lt;/a&gt; has those covered. Notably, the play area reduces in size by the bottom lines filling in as you level-up, gradually becoming less tall and more cramped.&lt;/p&gt;

&lt;p&gt;The game seems to have been programmed by BPS (Bullet-Proof Software), though I’m yet to see the manual, but there are no separate programming credits. &lt;!--Perhaps the game code or chips would contain more information.--&gt;&lt;/p&gt;

&lt;h2 id=&quot;credits&quot;&gt;Credits&lt;/h2&gt;
&lt;p&gt;As seen in the video:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;™ and © 1987 Elorg.&lt;br /&gt;
TETRIS licensed to B.P.S.&lt;br /&gt;
© 1989 B.P.S. All Rights Reserved.&lt;br /&gt;
Original concept by Alexey Pazhitnov.&lt;br /&gt;
Original design and program by Vadim Gerasimov.&lt;/p&gt;
&lt;/blockquote&gt;
</description>
          <author>by Matt Sephton</author>
          <pubDate>Sun, 04 Aug 2024 16:47:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2024/08/04/tetris-for-sharp-electronic-notebook-1989/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2024/08/04/tetris-for-sharp-electronic-notebook-1989/</guid>
        </item>
      
    
      
        <item>
          <title>TETRIS: Heavenly Scrolls (1989)</title>
          <description>&lt;p&gt;Given the ongoing discussion about &lt;a href=&quot;https://www.timeextension.com/news/2024/06/anniversary-is-tetris-really-40-this-year&quot;&gt;whether or not TETRIS is 40 years old in 2024&lt;/a&gt; (I say not), I thought it would be cool to add something interesting and relevant to the conversation. As a bonus, this is an item that at the time of writing is not covered in English anywhere else on the internet.&lt;/p&gt;

&lt;p&gt;A Japanese book about TETRIS, written in the first year the game was available outside of the USSR:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;strong&gt;テトリス10万点への解法 (天の巻)&lt;br /&gt;
TETRIS: The Solution to 100,000 Points (Heavenly Scrolls)&lt;/strong&gt;&lt;br /&gt;
“HOW TO WIN TETRIS FOR 100,000,000 TETRISTS”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Edited and translated by 石原恒和 Tsunekazu Ishihara, published 15th March 1989.&lt;/p&gt;

&lt;p&gt;Yes, that’s &lt;a href=&quot;https://en.wikipedia.org/wiki/Tsunekazu_Ishihara&quot;&gt;the current CEO of The Pokémon Company&lt;/a&gt;!&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The book is equal parts strategy guide, love letter to the game, and historical document. It mostly features &lt;em&gt;Spectrum Holobyte&lt;/em&gt;’s &lt;a href=&quot;https://www.mobygames.com/game/1630/tetris/screenshots/macintosh/&quot;&gt;&lt;em&gt;Macintosh&lt;/em&gt; version of TETRIS&lt;/a&gt;, but fondly refers to versions on the &lt;em&gt;Amiga&lt;/em&gt; and other home computers. At the point this book was published, March 1989, the &lt;em&gt;Game Boy&lt;/em&gt; was just about to release, in April, and its version of TETRIS would not arrive for a few months more, in June.&lt;/p&gt;

&lt;p&gt;It features contributions from the team at &lt;a href=&quot;https://www.mobygames.com/company/20165/sedic/&quot;&gt;&lt;em&gt;SEDIC&lt;/em&gt;&lt;/a&gt; (most famous for &lt;a href=&quot;https://www.mobygames.com/game/61185/otocky/&quot;&gt;&lt;em&gt;Otocky&lt;/em&gt;&lt;/a&gt;) in the form of essays, stories, and illustrations about their experience with the game and how it had changed their world view. More on them in a forthcoming blog post. Towards the end of the book there are interviews with the TETRIS creators: &lt;a href=&quot;https://www.mobygames.com/person/62651/vadim-gerasimov/&quot;&gt;Vadim Gerasimov&lt;/a&gt; (programmer) and &lt;a href=&quot;https://www.mobygames.com/person/533681/alexey-l-pajitnov/&quot;&gt;Alexey Pajitnov&lt;/a&gt; (designer). &lt;a href=&quot;https://www.mobygames.com/person/3523/henk-b-rogers/&quot;&gt;Henk Rogers&lt;/a&gt; does not seem to be mentioned, though his company &lt;a href=&quot;https://www.mobygames.com/company/2186/bullet-proof-software-inc/&quot;&gt;BPS&lt;/a&gt; is briefly mentioned in passing.&lt;/p&gt;

&lt;p&gt;I can’t see any specific mention of the creation date of TETRIS in the text, but there’s a copyright line, &lt;a href=&quot;https://youtu.be/2wnhPS5Q78E?t=24&quot;&gt;most likely taken from the &lt;em&gt;Spectrum Holobyte&lt;/em&gt; &lt;em&gt;Macintosh&lt;/em&gt; version&lt;/a&gt;, that says:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Copyright © 1987 Academy Soft-ELORG.&lt;br /&gt;
All rights reserved. TETRIS is a trademark of Academy Soft-ELORG.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;div class=&quot;carousel__holder&quot;&gt;
    &lt;div class=&quot;carousel&quot;&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;a&quot; checked=&quot;checked&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;b&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;c&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;d&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;e&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;f&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;g&quot; /&gt;
        
          &lt;input class=&quot;carousel__activator&quot; type=&quot;radio&quot; name=&quot;carousel&quot; id=&quot;h&quot; /&gt;
        
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;h&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;e&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;f&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;e&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;g&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;f&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;h&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
          
          
          
          
          &lt;div class=&quot;carousel__controls&quot;&gt;
              &lt;label class=&quot;carousel__control carousel__control--backward&quot; for=&quot;g&quot;&gt;&lt;/label&gt;
              &lt;label class=&quot;carousel__control carousel__control--forward&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
          &lt;/div&gt;
        
        &lt;div class=&quot;carousel__track&quot;&gt;
          &lt;ul&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-01-front-cover.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-01-front-cover.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-02-title-page.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-02-title-page.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-03-contents-left.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-03-contents-left.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-04-contents-right.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-04-contents-right.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-05-copyright.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-05-copyright.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-06-sample.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-06-sample.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-07-interview-alexey-pajitnov.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-07-interview-alexey-pajitnov.jpg&quot; /&gt;&lt;/li&gt;
            
            &lt;li class=&quot;carousel__slide&quot; style=&quot;background-image: url(&apos;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-08-rear-cover.jpg&apos;);&quot;&gt;&lt;img class=&quot;carousel__staticimage&quot; src=&quot;https://cdn.gingerbeardman.com/images/posts/tetris-heavenly-scrolls-1989-img-08-rear-cover.jpg&quot; /&gt;&lt;/li&gt;
            
          &lt;/ul&gt;
        &lt;/div&gt;
        &lt;div class=&quot;carousel__indicators&quot;&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;a&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;b&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;c&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;d&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;e&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;f&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;g&quot;&gt;&lt;/label&gt;
            
              &lt;label class=&quot;carousel__indicator&quot; for=&quot;h&quot;&gt;&lt;/label&gt;
            
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;style&gt;
.carousel__holder {width: 100%; position: relative; padding-bottom: 133%; margin: 1rem 0 1rem;}
.carousel {
  height: 100%;
  width: 100%;
  overflow: hidden;
  text-align: center;
  position: absolute;
  padding: 0;
}
.carousel__staticimage,
.carousel__controls,
.carousel__activator {
  display: none;
}

.carousel__activator:nth-of-type(1):checked ~ .carousel__track {
  -webkit-transform: translateX(-000%);
          transform: translateX(-000%);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__slide:nth-of-type(1) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__controls:nth-of-type(1) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(1):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(1) {
  opacity: 1;
}

.carousel__activator:nth-of-type(2):checked ~ .carousel__track {
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__slide:nth-of-type(2) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__controls:nth-of-type(2) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(2):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(2) {
  opacity: 1;
}

.carousel__activator:nth-of-type(3):checked ~ .carousel__track {
  -webkit-transform: translateX(-200%);
          transform: translateX(-200%);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__slide:nth-of-type(3) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__controls:nth-of-type(3) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(3):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(3) {
  opacity: 1;
}

.carousel__activator:nth-of-type(4):checked ~ .carousel__track {
  -webkit-transform: translateX(-300%);
          transform: translateX(-300%);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__slide:nth-of-type(4) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__controls:nth-of-type(4) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(4):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(4) {
  opacity: 1;
}

.carousel__activator:nth-of-type(5):checked ~ .carousel__track {
  -webkit-transform: translateX(-400%);
          transform: translateX(-400%);
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__slide:nth-of-type(5) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__controls:nth-of-type(5) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(5):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(5) {
  opacity: 1;
}

.carousel__activator:nth-of-type(6):checked ~ .carousel__track {
  -webkit-transform: translateX(-500%);
          transform: translateX(-500%);
}
.carousel__activator:nth-of-type(6):checked ~ .carousel__slide:nth-of-type(6) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(6):checked ~ .carousel__controls:nth-of-type(6) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(6):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(6) {
  opacity: 1;
}

.carousel__activator:nth-of-type(7):checked ~ .carousel__track {
  -webkit-transform: translateX(-600%);
          transform: translateX(-600%);
}
.carousel__activator:nth-of-type(7):checked ~ .carousel__slide:nth-of-type(7) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(7):checked ~ .carousel__controls:nth-of-type(7) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(7):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(7) {
  opacity: 1;
}

.carousel__activator:nth-of-type(8):checked ~ .carousel__track {
  -webkit-transform: translateX(-700%);
          transform: translateX(-700%);
}
.carousel__activator:nth-of-type(8):checked ~ .carousel__slide:nth-of-type(8) {
  transition: opacity 0.5s, -webkit-transform 0.5s;
  transition: opacity 0.5s, transform 0.5s;
  transition: opacity 0.5s, transform 0.5s, -webkit-transform 0.5s;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.carousel__activator:nth-of-type(8):checked ~ .carousel__controls:nth-of-type(8) {
  display: block;
  opacity: 1;
}
.carousel__activator:nth-of-type(8):checked ~ .carousel__indicators .carousel__indicator:nth-of-type(8) {
  opacity: 1;
}


.carousel__control {
  height: 30px;
  width: 30px;
  margin-top: -15px;
  top: 50%;
  position: absolute;
  display: block;
  cursor: pointer;
  border-width: 5px 5px 0 0;
  border-style: solid;
  opacity: 0.35;
  opacity: 1;
  outline: 0;
  z-index: 3;
  color: #fafafa;
  mix-blend-mode: difference;
}
.carousel__control:hover {
  opacity: 1;
}
.carousel__control--backward {
  left: 20px;
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
.carousel__control--forward {
  right: 20px;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.carousel__indicators {
  position: absolute;
  bottom: 20px;
  width: 100%;
  text-align: center;
}
.carousel__indicator {
  height: 10px;
  width: 10px;
  border-radius: 100%;
  display: inline-block;
  z-index: 2;
  cursor: pointer;
  opacity: 0.35;
  margin: 0 2.5px 0 2.5px;
}
.carousel__indicator:hover {
  opacity: 0.75;
}
.carousel__track {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0;
  margin: 0;
  transition: -webkit-transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s;
  transition: transform 0.5s ease 0s, -webkit-transform 0.5s ease 0s;
}
.carousel__track .carousel__slide {
  display: block;
  top: 0;
  left: 0;
  right: 0;
  opacity: 1;
}

.carousel__track .carousel__slide:nth-of-type(1) {
  -webkit-transform: translateX(000%) translateZ(0);
          transform: translateX(000%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(2) {
  -webkit-transform: translateX(100%) translateZ(0);
          transform: translateX(100%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(3) {
  -webkit-transform: translateX(200%) translateZ(0);
          transform: translateX(200%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(4) {
  -webkit-transform: translateX(300%) translateZ(0);
          transform: translateX(300%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(5) {
  -webkit-transform: translateX(400%) translateZ(0);
          transform: translateX(400%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(6) {
  -webkit-transform: translateX(500%) translateZ(0);
          transform: translateX(500%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(7) {
  -webkit-transform: translateX(600%) translateZ(0);
          transform: translateX(600%) translateZ(0);
}

.carousel__track .carousel__slide:nth-of-type(8) {
  -webkit-transform: translateX(700%) translateZ(0);
          transform: translateX(700%) translateZ(0);
}


.carousel--scale .carousel__slide {
  -webkit-transform: scale(0);
          transform: scale(0);
}
.carousel__slide {
  height: 100%;
  position: absolute;
  opacity: 0;
  overflow: hidden;
}
.carousel__slide .overlay {height: 100%;}
.carousel--thumb .carousel__indicator {
  height: 30px;
  width: 30px;
}
.carousel__indicator {
  background-color: #fafafa;
}

.carousel__slide:nth-of-type(1),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(1) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(2),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(2) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(3),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(3) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(4),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(4) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(5),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(5) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(6),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(6) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(7),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(7) {
  background-size: cover;
  background-position: center;
}

.carousel__slide:nth-of-type(8),
.carousel--thumb .carousel__indicators .carousel__indicator:nth-of-type(8) {
  background-size: cover;
  background-position: center;
}

&lt;/style&gt;

&lt;script&gt;
  function isVisible(el) {
        while (el) {
            if (el === document) {
                return true;
            }

            var $style = window.getComputedStyle(el, null);

            if (!el) {
                return false;
            } else if (!$style) {
                return false;
            } else if ($style.display === &apos;none&apos;) {
                return false;
            } else if ($style.visibility === &apos;hidden&apos;) {
                return false;
            } else if (+$style.opacity === 0) {
                return false;
            } else if (($style.display === &apos;block&apos; || $style.display === &apos;inline-block&apos;) &amp;&amp;
                $style.height === &apos;0px&apos; &amp;&amp; $style.overflow === &apos;hidden&apos;) {
                return false;
            } else {
                return $style.position === &apos;fixed&apos; || isVisible(el.parentNode);
            }
        }
  }
  
  setInterval(function(){
    var j=0;
    var elements = document.querySelectorAll(&apos;.carousel__control--forward&apos;);
    for(i=(elements.length - 1);i&gt;-1;i--) {
      if(isVisible(elements[i])) j=i;
    }
    elements[j].click();
  },7000);
  
&lt;/script&gt;

</description>
          <author>by Matt Sephton</author>
          <pubDate>Tue, 18 Jun 2024 14:47:00 +0000</pubDate>
          <link>https://blog.gingerbeardman.com/2024/06/18/tetris-heavenly-scrolls/</link>
          <guid isPermaLink="true">https://blog.gingerbeardman.com/2024/06/18/tetris-heavenly-scrolls/</guid>
        </item>
      
    

  </channel>
</rss>
