{"id":36,"date":"2013-07-03T22:11:00","date_gmt":"2013-07-03T22:11:00","guid":{"rendered":"https:\/\/paulgcurran.com\/skepticalstats\/?p=36"},"modified":"2013-07-03T22:11:00","modified_gmt":"2013-07-03T22:11:00","slug":"tetris-pieces-exponential-growth-and-unexpected-cryptography","status":"publish","type":"post","link":"https:\/\/paulgcurran.com\/skepticalstats\/?p=36","title":{"rendered":"Tetris Pieces, Exponential Growth, and Unexpected Cryptography"},"content":{"rendered":"<p>I talked about Tetris a few weeks ago (<a href=\"http:\/\/theskepticalstatistician.blogspot.com\/2013\/06\/tetris-pieces-and-you.html\">here<\/a>), and examined the counts of pieces across a number of games. That got me thinking about Tetris pieces, especially when I started to look at some of the Tetris variants that people have programmed. <\/p>\n<p>One of the things that lingered in my mind was the idea that all Tetris pieces are made up of four 1&#215;1 blocks. &nbsp;I&#8217;ve played some variants over the years (many of them official) that did some other things with these four blocks, like allow for corner-to-corner connection (unacceptable!) instead of strict face-to-face connection, but none to my recollection that changed the standard use of four 1&#215;1 blocks per piece. <\/p>\n<p>So what would happen if we changed around this simple building block (haha) of the Tetris franchise?<\/p>\n<p>The simplest Tetris game would be a situation where each piece was made from one 1&#215;1 block. &nbsp;When I say simplest, I&#8217;m not sure I can express that enough. &nbsp;You just get the same piece over and over, and try to build lines with it. &nbsp;It&#8217;s basically two-dimensional Minecraft where the pieces fall from the top and sometimes disappear.<\/p>\n<p>The two 1&#215;1 block case is hardly different, actually. &nbsp;There&#8217;s still just one piece, though at least now rotation matters in game. &nbsp;Not that much, though. <\/p>\n<p>The three 1&#215;1 block situation starts to get a little more interesting. <\/p>\n<div style=\"clear: both; text-align: center;\"><\/div>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/2.bp.blogspot.com\/-uBJlPFc5ZtI\/UeQTVSSye3I\/AAAAAAAADNs\/98z4IgdNaxM\/s1600\/tetris+2+v2.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"http:\/\/2.bp.blogspot.com\/-uBJlPFc5ZtI\/UeQTVSSye3I\/AAAAAAAADNs\/98z4IgdNaxM\/s1600\/tetris+2+v2.png\" height=\"228\" width=\"320\" \/><\/a><\/div>\n<p>You still only end up with two distinct pieces &#8211; a hooked piece and a straight piece. &nbsp;It might actually make for a fairly interesting (if not somewhat simpler) game. &nbsp;Tetris Jr., perhaps. &nbsp;Someone code this. <\/p>\n<p>A situation with four 1&#215;1 blocks is the Tetris we know and love, and produces seven pieces.<\/p>\n<div style=\"clear: both; text-align: center;\"><\/div>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/1.bp.blogspot.com\/-ehAWi6S_YhQ\/UdRgcYyto8I\/AAAAAAAADGw\/O7Plt7oftJg\/s282\/tetris+4+piece.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"http:\/\/1.bp.blogspot.com\/-ehAWi6S_YhQ\/UdRgcYyto8I\/AAAAAAAADGw\/O7Plt7oftJg\/s282\/tetris+4+piece.png\" height=\"229\" width=\"400\" \/><\/a><\/div>\n<p>You should be familiar with these, but you can also see that they&#8217;re basically just an extension of the pieces in the three 1&#215;1 situation. &nbsp;You can add a 1&#215;1 block to the first piece (in the three 1&#215;1 case) to make the square (O) block. &nbsp;You can also add a 1&#215;1 block to that piece to make the S, Z, J and L pieces. &nbsp;You can make the T out of any of the pieces, but the only way to make the straight (I) piece is to add on to the straight piece from the prior set. &nbsp;It&#8217;s a rather simple but interesting point.<\/p>\n<p>So we already have a pretty interesting set of numbers here. &nbsp;The first two cases result in a single piece, then we move to two, then to seven. &nbsp;We&#8217;re more than doubling with the addition of one more 1&#215;1 block because each piece already able to be made can produce a number of new pieces. &nbsp;The more complex those pieces, the more places a block is likely to produce a new unique piece when placed. <\/p>\n<p>Let&#8217;s see if we can build a set of Tetris pieces with 5 1&#215;1 blocks. &nbsp;By that I mean, I&#8217;m going to spend some time doing that in Excel, and the next thing you&#8217;ll see is that completed.<\/p>\n<div style=\"clear: both; text-align: center;\"><\/div>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/1.bp.blogspot.com\/-K92SRm13y34\/UdRzeumtfoI\/AAAAAAAADHg\/n0ElJuxP6xw\/s962\/tetris+5+piece+v2.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img decoding=\"async\" border=\"0\" src=\"http:\/\/1.bp.blogspot.com\/-K92SRm13y34\/UdRzeumtfoI\/AAAAAAAADHg\/n0ElJuxP6xw\/s962\/tetris+5+piece+v2.png\" \/><\/a><\/div>\n<p>So there you go. &nbsp;That might have seemed quick for you, right? <\/p>\n<p>I worked each piece separately to make sure I was covering all bases, and didn&#8217;t create duplicates within the same base piece (from the four 1&#215;1 level). &nbsp;I shaded pieces red if they duplicated a piece already made by a previous base piece. &nbsp;That leaves us with 18 unique pieces, which we can see a bit clearer in this picture.<\/p>\n<div style=\"clear: both; text-align: center;\"><\/div>\n<div style=\"clear: both; text-align: center;\"><\/div>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/1.bp.blogspot.com\/-Fqa4lWTGMkA\/UdR11lNy6nI\/AAAAAAAADH4\/-wiLFGpfM78\/s522\/tetris+5+piece+no+duplicates+v2.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"http:\/\/1.bp.blogspot.com\/-Fqa4lWTGMkA\/UdR11lNy6nI\/AAAAAAAADH4\/-wiLFGpfM78\/s522\/tetris+5+piece+no+duplicates+v2.png\" height=\"418\" width=\"640\" \/><\/a><\/div>\n<p>There you go. &nbsp;Someone, make this game. <\/p>\n<p>There are two things that stand out to me.<\/p>\n<p>First off, there&#8217;s a lot more pieces, but still only one straight piece. &nbsp;Since it simply is what it is (all the 1&#215;1 blocks you have to work with, in a line), there&#8217;s only ever going to be one while the rest of the pieces keep expanding. &nbsp;If you thought you were waiting a long time for a straight piece in the four 1&#215;1 version you&#8217;d hate a version like this. <\/p>\n<p>You could look at it this way:<\/p>\n<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;\">\n<tbody>\n<tr style=\"height: 15.0pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;\">\n<td nowrap=\"\" style=\"border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;\" valign=\"top\" width=\"79\">\n<div style=\"margin-bottom: 0.0001pt;\">1&#215;1 blocks<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 50.0pt;\" valign=\"top\" width=\"67\">\n<div style=\"margin-bottom: 0.0001pt;\">I pieces<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-left: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.0pt;\" valign=\"top\" width=\"127\">\n<div style=\"margin-bottom: 0.0001pt;\">Percent of whole<o:p><\/o:p><\/div>\n<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt; mso-yfti-irow: 1;\">\n<td nowrap=\"\" style=\"border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;\" valign=\"top\" width=\"79\">\n<div style=\"margin-bottom: 0.0001pt;\">1<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 50.0pt;\" valign=\"top\" width=\"67\">\n<div style=\"margin-bottom: 0.0001pt;\">1 of 1<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.0pt;\" valign=\"top\" width=\"127\">\n<div style=\"margin-bottom: 0.0001pt;\">100.0%<o:p><\/o:p><\/div>\n<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt; mso-yfti-irow: 2;\">\n<td nowrap=\"\" style=\"border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;\" valign=\"top\" width=\"79\">\n<div style=\"margin-bottom: 0.0001pt;\">2<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 50.0pt;\" valign=\"top\" width=\"67\">\n<div style=\"margin-bottom: 0.0001pt;\">1 of 1<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.0pt;\" valign=\"top\" width=\"127\">\n<div style=\"margin-bottom: 0.0001pt;\">100.0%<o:p><\/o:p><\/div>\n<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt; mso-yfti-irow: 3;\">\n<td nowrap=\"\" style=\"border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;\" valign=\"top\" width=\"79\">\n<div style=\"margin-bottom: 0.0001pt;\">3<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 50.0pt;\" valign=\"top\" width=\"67\">\n<div style=\"margin-bottom: 0.0001pt;\">1 of 2<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.0pt;\" valign=\"top\" width=\"127\">\n<div style=\"margin-bottom: 0.0001pt;\">50.0%<o:p><\/o:p><\/div>\n<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt; mso-yfti-irow: 4;\">\n<td nowrap=\"\" style=\"border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;\" valign=\"top\" width=\"79\">\n<div style=\"margin-bottom: 0.0001pt;\">4<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 50.0pt;\" valign=\"top\" width=\"67\">\n<div style=\"margin-bottom: 0.0001pt;\">1 of 7<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.0pt;\" valign=\"top\" width=\"127\">\n<div style=\"margin-bottom: 0.0001pt;\">14.3%<o:p><\/o:p><\/div>\n<\/td>\n<\/tr>\n<tr style=\"height: 15.0pt; mso-yfti-irow: 5; mso-yfti-lastrow: yes;\">\n<td nowrap=\"\" style=\"border-top: none; border: solid windowtext 1.0pt; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 59.0pt;\" valign=\"top\" width=\"79\">\n<div style=\"margin-bottom: 0.0001pt;\">5<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 50.0pt;\" valign=\"top\" width=\"67\">\n<div style=\"margin-bottom: 0.0001pt;\">1 of 18<o:p><\/o:p><\/div>\n<\/td>\n<td nowrap=\"\" style=\"border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 15.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 95.0pt;\" valign=\"top\" width=\"127\">\n<div style=\"margin-bottom: 0.0001pt;\">5.6%<o:p><\/o:p><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/p>\n<div><\/div>\n<p>That&#8217;s only going to get worse, though I&#8217;m not going to go past five 1&#215;1 blocks given how much more work the six 1&#215;1 case is going to be. <\/p>\n<p>The second thing that stands out to me, though, is how close some of these pieces look to actual letters. &nbsp;There are also 18 of them, and while some of the duplicates fail the rotation test in Tetris, they would look distinct enough on paper. <\/p>\n<p>In fact, we&#8217;d only need eight reflections to get up to 26, which is a pretty interesting number because at that point we can build a substitution cipher with the English language. &nbsp;So&#8230;let&#8217;s do that.<\/p>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/3.bp.blogspot.com\/-ZMlorde6qls\/UdR359XTifI\/AAAAAAAADII\/EriIZZqKZXo\/s962\/base+cipher.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"http:\/\/3.bp.blogspot.com\/-ZMlorde6qls\/UdR359XTifI\/AAAAAAAADII\/EriIZZqKZXo\/s962\/base+cipher.png\" height=\"266\" width=\"640\" \/><\/a><\/div>\n<p>I didn&#8217;t really expect to end up with a substitution cipher when I started this post, but I suppose time makes fools of us all. <\/p>\n<p>The nice thing about this is that each letter can fit in a 4&#215;4 square, allowing for even further ciphering by expressing those letters not as letters but as a string of numbers. &nbsp;Off the top of my head you could easily do that one of two ways. <\/p>\n<p>The first would be expressing a letter as a string of numbers based on which squares were filled in. &nbsp;In that way, &#8216;a&#8217; would be 6\/9\/10\/14\/15, or 69101415. &nbsp;The information can be parsed out without explicit spacing due to the lack of any letters in the cipher using the &#8216;1&#8217; square. &nbsp;If there&#8217;s a 1 in the number it means that it &#8211; and the next number following &#8211; are part of a two digit number. &nbsp;In that way you can easily break 69101415 into 6, 9, 10, 14, 15. <\/p>\n<p>The numbers also don&#8217;t need to be in order, so the letter would be just as preserved written as 10149156.<\/p>\n<p>Each letter could also be written as a 16 digit binary number (realistically less if we figured out which squares were never used). &nbsp;In that way, &#8216;a&#8217; would be 0000010011000110. &nbsp;If you read my post on <a href=\"http:\/\/theskepticalstatistician.blogspot.com\/2013\/06\/rat-race-differential-odds-and.html\">binary math<\/a> you know we could easily translate that number into base 10 and come up with 1,222. <\/p>\n<p>I think I&#8217;ll revisit this one in a few weeks, as I think there&#8217;s some other stuff we could do with this. &nbsp;For now, though:<\/p>\n<div style=\"clear: both; text-align: center;\"><a href=\"http:\/\/2.bp.blogspot.com\/-shkUzTolT7s\/UdR9GN-aZoI\/AAAAAAAADIY\/ylXNClLuxqk\/s942\/fourth+of+july.png\" style=\"margin-left: 1em; margin-right: 1em;\"><img loading=\"lazy\" decoding=\"async\" border=\"0\" src=\"http:\/\/2.bp.blogspot.com\/-shkUzTolT7s\/UdR9GN-aZoI\/AAAAAAAADIY\/ylXNClLuxqk\/s942\/fourth+of+july.png\" height=\"150\" width=\"640\" \/><\/a><\/div>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I talked about Tetris a few weeks ago (here), and examined the counts of pieces across a number of games. That got me thinking about Tetris pieces, especially when I started to look at some of the Tetris variants that people have programmed. One of the things that lingered in my mind was the idea &hellip; <a href=\"https:\/\/paulgcurran.com\/skepticalstats\/?p=36\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Tetris Pieces, Exponential Growth, and Unexpected Cryptography<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-36","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=\/wp\/v2\/posts\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=36"}],"version-history":[{"count":0,"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions"}],"wp:attachment":[{"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paulgcurran.com\/skepticalstats\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}