[Question]
  [
In traditional [Tetris](http://en.wikipedia.org/wiki/Tetris), there are 7 distinct [tetromino](http://en.wikipedia.org/wiki/Tetromino) bricks, each denoted by a letter similar to its shape.
```
#          
#      #    #
#  ##  #    #  ###  ##    ##
#  ##  ##  ##   #    ##  ##
I  O   L   J    T    Z    S
```
Consider the arrangements of these bricks that can make a solid W×H rectangle, for some positive integers W and H. For example, using 2 I's, 1 L, 1 J, 2 T's, and 1 S, a 7×4 rectangle can be made:
```
IIIITTT
LIIIITJ
LTTTSSJ
LLTSSJJ
```
The same bricks can be rearranged (by moving and rotating but **not flipping**) into a different 7×4 pattern:
```
IJJTLLI
IJTTTLI
IJSSTLI
ISSTTTI
```
Now consider using a rectangular block of code in place of the first arrangement. For example this 7×4 bit of Python 3, which prints `Tetris` to stdout:
```
p=print
x='Tet'
y='ris'
p(x+y)#
```
According to the first Tetris arrangement its 7 "bricks" are...
```
           x          '
      int  y          '  ='r   is
p=pr   t   p(  ='Te  )#   x   +y
```
In the other arrangement (one of many possible) they are unintelligible as code:
```
r#)x(x=
p'r'=y'
='istpT
p+ytnie
```
But, given the bricks separately, it might be possible to piece them back together properly. This is the basis of the challenge.
# Challenge
This is a [cops-and-robbers](/questions/tagged/cops-and-robbers "show questions tagged 'cops-and-robbers'") challenge. There are two competing roles, the *Jumblers* and the *Rebuilders*.
The Jumblers submit answers with blocks of code that have been broken down into Tetris bricks. 
The Rebuilders attempt to rebuild these blocks **in the separate question dedicated for them: [Jumblers vs Rebuilders: Coding with Tetris Bricks - Area for Rebuilder Answers](https://codegolf.stackexchange.com/questions/40187/jumblers-vs-rebuilders-coding-with-tetris-bricks-area-for-builder-answers).**
### Jumblers
Using only [printable ASCII](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters) (hex codes 20 to 7E) write a W×H rectangular program. When run, it must output the **sole** word `Tetris` to stdout (or closest alternative). **Do not post this code in your answer; don't give W or H either.** Break it up into some arrangement of Tetris bricks like the example above and post these in your answer. (Your code may contain spaces but since they are hard to distinguish, it's best to use some other character in place of spaces and tell people what you used.)
The harder it is to rebuild your program the better. There may be many ways to rearrange your code-bricks into a rectangle, possibly with different dimensions. What the code does when run in these different arrangements doesn't matter as long as at least one arrangement prints `Tetris` to stdout.
The only other restriction is that W \* H be less than 1025.
Jumblers should specify their programming language (and version).
### Rebuilders
Your goal is to take a Jumbler's code-bricks and put them back into their original order, so `Tetris` is printed when the code is run. If the working arrangement you find isn't the one the Jumbler had in mind that's too bad for them.
Remember that only translation and rotation are allowed in rearrangements, not mirroring.
# Scoring
Each time a submission is rebuilt it is considered "cracked" and is no longer in the running. The first Rebuilder to rebuild a submission gets the credit for it. If an answer goes uncracked for 72 hours the Jumbler should reveal the solution and will be henceforth immune from being cracked. A Jumbler must do this to win, since otherwise it will be unclear if there even was a solution.
The winning Jumbler is the uncracked answer with the smallest area (W \* H = 4 \* num of bricks). In case of ties the highest voted answer wins. The accepted answer for this question will be the winning Jumbler.
The winning Rebuilder is the user who cracks the most submissions. In case of ties it goes to whomever cracked the most cumulative area.
# Notes
* You may not rebuild your own submissions. (But otherwise you may take on both roles.)
* Rebuilders may not attempt to crack the same answer more than once.
# Scoreboard
Sorted from oldest submission to newest.
```
+--------------+-------------+------------------+---------+----------+----------------+-------------------------------------------+-------------------------------------------+
|   Jumbler    |  Language   |       Area       | Immune? | Rebuilt? |   Rebuilder    |                      Link                 |                  Solution Link            |
+--------------+-------------+------------------+---------+----------+----------------+-------------------------------------------+-------------------------------------------+
| xnor         | Python 3    | 212              | no      | yes      | foobar         | https://codegolf.stackexchange.com/a/40142 | https://codegolf.stackexchange.com/a/40203 |
| xnor         | Python 3    | 340              | no      | yes      | feersum        | https://codegolf.stackexchange.com/a/40146 | https://codegolf.stackexchange.com/a/40189 |
| es1024       | C           | 80               | no      | yes      | user23013      | https://codegolf.stackexchange.com/a/40155 | https://codegolf.stackexchange.com/a/40210 |
| Ethiraric    | Brainfuck   | 108              | yes     |          |                | https://codegolf.stackexchange.com/a/40156 |                                           |
| Qwertiy      | JavaScript  | 420              | yes     |          |                | https://codegolf.stackexchange.com/a/40161 |                                           |
| user23013    | Befunge     | 360              | yes     |          |                | https://codegolf.stackexchange.com/a/40163 |                                           |
| user23013    | CJam        | 80               | yes     |          |                | https://codegolf.stackexchange.com/a/40171 |                                           |
| Geobits      | Java        | 360              | yes     |          |                | https://codegolf.stackexchange.com/a/40180 |                                           |
| Dennis       | CJam        | 60               | yes     |          |                | https://codegolf.stackexchange.com/a/40184 |                                           |
| xnor         | Python 3    | 160              | yes     |          |                | https://codegolf.stackexchange.com/a/40192 |                                           |
| COTO         | C           | 72               | yes     |          |                | https://codegolf.stackexchange.com/a/40198 |                                           |
| es1024       | C           | 780              | yes     |          |                | https://codegolf.stackexchange.com/a/40202 |                                           |
| Gerli        | Mathematica | 72               | no      | yes      | Martin Büttner | https://codegolf.stackexchange.com/a/40230 | https://codegolf.stackexchange.com/a/40242 |
| Hydrothermal | JavaScript  | 80               | yes     |          |                | https://codegolf.stackexchange.com/a/40235 |                                           |
| Sam Yonnou   | GolfScript  | 48 (frontrunner) | yes     |          |                | https://codegolf.stackexchange.com/a/40239 |                                           |
| feersum      | Matlab      | 48               |         |          |                | https://codegolf.stackexchange.com/a/40310 |                                           |
| Beta Decay   | Python 3    | 484              |         |          |                | https://codegolf.stackexchange.com/a/40312 |                                           |
| potato       | Python 3    | 176              |         |          |                | https://codegolf.stackexchange.com/a/40341 |                                           |
+--------------+-------------+------------------+---------+----------+----------------+-------------------------------------------+-------------------------------------------+
```
(Thanks to <http://www.sensefulsolutions.com/2010/10/format-text-as-table.html> for table formatting.)
[User COTO](https://codegolf.stackexchange.com/a/40231) made an excellent tool for playing with code-bricks. I've turned it into a convenient snippet:
```
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>function parseSpec(s){function first(){var e,t;t=S.findIndex(function(t){return(e=t.findIndex(function(e){return/\S/.test(e)}))!=-1});return t==-1?null:[e,t]}function at(e){var t=e[0],n=e[1];return n>=0&&n<S.length&&t>=0&&t<S[n].length?S[n][t]:" "}function wipe(e){var t=e[0],n=e[1];if(n>=0&&n<S.length&&t>=0&&t<S[n].length)S[n][t]=" "}var P,S=s.split("\n").map(function(e){return e.split("")});var oPats=$(".proto-tet [pat]").get().map(function(e){return{sPat:eval("["+$(e).attr("pat")+"]"),e:e,block:function(e){return[at(e)].concat(this.sPat.map(function(t){return at([e[0]+t[0],e[1]+t[1]])}))},wipe:function(e){this.sPat.forEach(function(e){return wipe([P[0]+e[0],P[1]+e[1]])})},match:function(e){return!/\s/.test(this.block(e).join(""))}}});window.oPats=oPats;while(P=first()){var oPat=oPats.find(function(e){return e.match(P)});if(!oPat){orphan(at(P));wipe(P);continue}createPiece(oPat.e,oPat.block(P));wipe(P);oPat.wipe(P)}}function createPiece(e,t){function r(e){var t=$(this).position();G.isIgnoreClick=false;G.eDrag=this;G.iOffsets=[e.clientX-t.left,e.clientY-t.top]}function i(){if(G.isIgnoreClick)return;var e=$(this);s($(".proto-tet ."+e.attr("rr")),function(e,t){return n[t-1]},e.css("left"),e.css("top"));e.remove()}function s(e,t,n,s){e.clone().html(e.html().replace(/@(\d)(\d)/g,t)).appendTo("body").on("mousedown",r).click(i).css({left:n,top:s})}var n=[];s($(e),function(e,r,i){return n[r-1]=t[i-1]},18+G.iSpawn%8*18*4+"px",18+~~(G.iSpawn/8)*18*4+"px");G.iSpawn++}function init(){$(document).on("mouseup",function(){return G.eDrag=null}).on("mousemove",function(e){if(G.eDrag){var t=$(G.eDrag),n=Math.round((e.clientX-G.iOffsets[0])/18)*18,r=Math.round((e.clientY-G.iOffsets[1])/18)*18,i=t.position();if(n!=i.left||r!=i.top)G.isIgnoreClick=true;t.css({left:n+"px",top:r+"px"})}})}function orphan(e){error("Spec character not a part of any block: '"+e+"'")}function error(e){$(".error").css("display","block").append("<div>"+e+"</div>")}function go(){$(init);$(function(){parseSpec($("#spec").val())});$("#spec").remove();$("#info").remove();$("#go").remove()}var G={eDrag:null,isIgnoreClick:true,iSpawn:0};Array.prototype.findIndex=function(e){for(var t=0;t<this.length;t++){if(e(this[t]))return t}return-1};Array.prototype.find=function(e){var t=this.findIndex(e);if(t==-1)return;else return this[t]}</script><style>.proto-tet, .spec{display: none;}.tet-I{color: darkgreen;}.tet-J{color: orangered;}.tet-L{color: navy;}.tet-T{color: darkred;}.tet-O{color: darkcyan;}.tet-S{color: darkviolet;}.tet-Z{color: darkorange;}body > .tet{position: absolute;cursor: move;-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;border-collapse: collapse;}.tet td{width: 18px;height: 18px;font: bold 14px "Courier New",monospace;text-align: center;vertical-align: middle;padding: 0;}.error{z-index: 1024;position: absolute;display: none;color: red;font-weight: bold;background-color: white;}textarea{font-family: "Courier New", Courier, monospace;}</style><div id='info'>Put code-bricks here and hit OK. Re-run the snippet to restart.<br>(You may need to replace spaces in code-bricks with some other character first.)</div><textarea id='spec' rows='16' cols='80'>ABCD&nbsp;&nbsp;a&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;Oo&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;&nbsp;&nbsp;oo&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d&#13;&#10;&#13;&#10;&nbsp;E&nbsp;&nbsp;&nbsp;&nbsp;h&#13;&#10;&nbsp;F&nbsp;&nbsp;efg&nbsp;&nbsp;&nbsp;hg&nbsp;&nbsp;&nbsp;GFE&#13;&#10;&nbsp;GH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;&nbsp;&nbsp;H&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e&#13;&#10;&#13;&#10;&nbsp;I&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IJK&#13;&#10;&nbsp;J&nbsp;&nbsp;&nbsp;l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L&#13;&#10;LK&nbsp;&nbsp;&nbsp;kji&nbsp;&nbsp;kl&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t&#13;&#10;&nbsp;OP&nbsp;&nbsp;&nbsp;p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QR&nbsp;&nbsp;&nbsp;&nbsp;rs&#13;&#10;MN&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ST&nbsp;&nbsp;&nbsp;q&#13;&#10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m&#13;&#10;&nbsp;W&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z&#13;&#10;&nbsp;XY&nbsp;&nbsp;&nbsp;&nbsp;zxw&nbsp;&nbsp;&nbsp;&nbsp;yx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Y&#13;&#10;&nbsp;Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w&nbsp;&nbsp;&nbsp;&nbsp;WXZ</textarea><br><button id='go' type='button' onclick='go()'>OK</button><div class="proto-tet"><table class="tet tet-I tet-I0" rr="tet-I1" pat="[1,0],[2,0],[3,0]"><tr><td>@11</td><td>@22</td><td>@33</td><td>@44</td></tr></table><table class="tet tet-I tet-I1" rr="tet-I2" pat="[0,1],[0,2],[0,3]"><tr><td>@11</td></tr><tr><td>@22</td></tr><tr><td>@33</td></tr><tr><td>@44</td></tr></table><table class="tet tet-I tet-I2" rr="tet-I3" ><tr><td>@40</td><td>@30</td><td>@20</td><td>@10</td></tr></table><table class="tet tet-I tet-I3" rr="tet-I0"><tr><td>@40</td></tr><tr><td>@30</td></tr><tr><td>@20</td></tr><tr><td>@10</td></tr></table><table class="tet tet-J tet-J0" rr="tet-J1" pat="[0,1],[-1,2],[0,2]"><tr><td></td><td>@11</td></tr><tr><td></td><td>@22</td></tr><tr><td>@33</td><td>@44</td></tr></table><table class="tet tet-J tet-J1" rr="tet-J2" pat="[0,1],[1,1],[2,1]"><tr><td>@31</td><td></td><td></td></tr><tr><td>@42</td><td>@23</td><td>@14</td></tr></table><table class="tet tet-J tet-J2" rr="tet-J3" pat="[1,0],[0,1],[0,2]"><tr><td>@41</td><td>@32</td></tr><tr><td>@23</td><td></td></tr><tr><td>@14</td><td></td></tr></table><table class="tet tet-J tet-J3" rr="tet-J0" pat="[1,0],[2,0],[2,1]"><tr><td>@11</td><td>@22</td><td>@43</td></tr><tr><td></td><td></td><td>@34</td></tr></table><table class="tet tet-O tet-O0" rr="tet-O1" pat="[1,0],[0,1],[1,1]"><tr><td>@11</td><td>@22</td></tr><tr><td>@33</td><td>@44</td></tr></table><table class="tet tet-O tet-O1" rr="tet-O2"><tr><td>@30</td><td>@10</td></tr><tr><td>@40</td><td>@20</td></tr></table><table class="tet tet-O tet-O2" rr="tet-O3"><tr><td>@40</td><td>@30</td></tr><tr><td>@20</td><td>@10</td></tr></table><table class="tet tet-O tet-O3" rr="tet-O0"><tr><td>@20</td><td>@40</td></tr><tr><td>@10</td><td>@30</td></tr></table><table class="tet tet-L tet-L0" rr="tet-L1" pat="[0,1],[0,2],[1,2]"><tr><td>@11</td><td></td></tr><tr><td>@22</td><td></td></tr><tr><td>@33</td><td>@44</td></tr></table><table class="tet tet-L tet-L1" rr="tet-L2" pat="[1,0],[2,0],[0,1]"><tr><td>@31</td><td>@22</td><td>@13</td></tr><tr><td>@44</td><td></td><td></td></tr></table><table class="tet tet-L tet-L2" rr="tet-L3" pat="[1,0],[1,1],[1,2]"><tr><td>@41</td><td>@32</td></tr><tr><td></td><td>@23</td></tr><tr><td></td><td>@14</td></tr></table><table class="tet tet-L tet-L3" rr="tet-L0" pat="[-2,1],[-1,1],[0,1]"><tr><td></td><td></td><td>@41</td></tr><tr><td>@12</td><td>@23</td><td>@34</td></tr></table><table class="tet tet-S tet-S0" rr="tet-S1" pat="[1,0],[-1,1],[0,1]"><tr><td></td><td>@21</td><td>@12</td></tr><tr><td>@43</td><td>@34</td><td></td></tr></table><table class="tet tet-S tet-S1" rr="tet-S2" pat="[0,1],[1,1],[1,2]"><tr><td>@41</td><td></td></tr><tr><td>@32</td><td>@23</td></tr><tr><td></td><td>@14</td></tr></table><table class="tet tet-S tet-S2" rr="tet-S3"><tr><td></td><td>@30</td><td>@40</td></tr><tr><td>@10</td><td>@20</td><td></td></tr></table><table class="tet tet-S tet-S3" rr="tet-S0"><tr><td>@10</td><td></td></tr><tr><td>@20</td><td>@30</td></tr><tr><td></td><td>@40</td></tr></table><table class="tet tet-Z tet-Z0" rr="tet-Z1" pat="[1,0],[1,1],[2,1]"><tr><td>@11</td><td>@22</td><td></td></tr><tr><td></td><td>@33</td><td>@44</td></tr></table><table class="tet tet-Z tet-Z1" rr="tet-Z2" pat="[-1,1],[0,1],[-1,2]"><tr><td></td><td>@11</td></tr><tr><td>@32</td><td>@23</td></tr><tr><td>@44</td><td></td></tr></table><table class="tet tet-Z tet-Z2" rr="tet-Z3"><tr><td>@40</td><td>@30</td><td></td></tr><tr><td></td><td>@20</td><td>@10</td></tr></table><table class="tet tet-Z tet-Z3" rr="tet-Z0"><tr><td></td><td>@40</td></tr><tr><td>@20</td><td>@30</td></tr><tr><td>@10</td><td></td></tr></table><table class="tet tet-T tet-T0" rr="tet-T1" pat="[1,0],[2,0],[1,1]"><tr><td>@11</td><td>@22</td><td>@33</td></tr><tr><td></td><td>@44</td><td></td></tr></table><table class="tet tet-T tet-T1" rr="tet-T2" pat="[-1,1],[0,1],[0,2]"><tr><td></td><td>@11</td></tr><tr><td>@42</td><td>@23</td></tr><tr><td></td><td>@34</td></tr></table><table class="tet tet-T tet-T2" rr="tet-T3" pat="[-1,1],[0,1],[1,1]"><tr><td></td><td>@41</td><td></td></tr><tr><td>@32</td><td>@23</td><td>@14</td></tr></table><table class="tet tet-T tet-T3" rr="tet-T0" pat="[0,1],[1,1],[0,2]"><tr><td>@31</td><td></td></tr><tr><td>@22</td><td>@43</td></tr><tr><td>@14</td><td></td></tr></table></div><div class="error"></div>
```
  
[Answer]
# Java : 360 area
> 
> # Bounty: 500
> 
> 
> Reconstructing these things is hard! That's probably why there aren't too many robbers participating in this challenge. However, I *want* to see mine cracked. So, instead of giving the solution after 72 hours, **I'm putting up 500 rep to the first successful cracker.** To clarify, I will add a +500 bounty to the answer post and award it to your crack if you reassemble these pieces into any working, rectangular Java program that outputs "Tetris". I am not preemptively activating the bounty, because I don't feel like wasting rep if nobody answers.
> 
> 
> There is no end date to this offer. It's valid as long as I'm a member here. To ensure I see your answer, ping me with a comment below.
> 
> 
> I've triple-checked to make sure the pieces (and code) are valid, but if a trusted user wants to confirm this, I can email/something the solution to them. Obviously, that would exempt them from posting it and collecting the bounty.
> 
> 
> 
Made of a mix of all seven piece types. To make things easier(?) I've made sure that all pieces of the same type are rotated to the same orientation. Since Java has parts that can't be changed much, I've left the *really* obvious parts as simple I-blocks to get it started.
**Note:** Since Java has a few mandatory spaces, I've replaced them with underscores (`_`)below for layout purposes. There are 11 of them total, and they should all be converted to spaces to run the code. No other whitespace is present in the code, any below is just for positioning.
There are:
* 41 I
* 15 O
* 11 J
* 8 L
* 6 T
* 6 S
* 3 Z
**Have fun!**
```
------------- I 
clas    s_X{    publ    ic_s
tati    c_vo    id_m    ain(    
Stri    ng[]    2;c*    p(b-    
(b-c    _voi    nt_a    Syst    
em.o    ut.p    rint    1,c=    
d=1,    e=3,    new_    int[    
;b++    for(    1008    ?1:2    
)a);    ccc+    ==++    pf}(    
for(    (b);    p(b+    --b-    
or(d    1?1:    +1;e    for(    
=1);
------------- O
a)
*2
b=
r(
12
<3
36
[c
*1
++
b<
6]
64
64
7]
]-
<1
1;
89
0;
;p
c)
=0
ic
st
ch
at
ar
d/
1;
-------------- T
{in
 ]
 
+b(
 5
 
d/2
 ;
 
d<<
 )
 
;;;
 1
 
=1)
 (
 
------------- L
2=[
+
]b*
8
=1)
]
<<b
<
}_}
d
3=b
)
+[[
=
=c,
=
-------------- J
o
;b=
,
2;)
f
2;c
*
=][
c
f=d
+
e1+
e
=;;
d
_p(
i
<++
=
){_
[
f+e
---------------- S
 t_
;f
 c+
1)
 +<
;p
 64
<6
 b=
;p
 ))
(;
--------------- Z
4,
 -1
;=
 ff
 
;f
 0;
```
[Answer]
# Brainfuck, 108 area
This code was made of 27 I pieces.
```
-.[>
.<++
.<++
[>++
[>++
-]++
]>.-
-]>[
-]>+
]>++
+.+-
+[>+
+-+-
++[>
++[>
++]-
++++
++++
+++<
+++<
+<-]
--<-
<-]>
<><+
>+.>
>++[
>+<<
```
I don't know if there is any way other than bruteforce to find the answer. If there is, i'd really like to know how.
[Answer]
## Python 3: 212 area [Rebuilt]
My code is broken up into the following 53 `I`-pieces, which I've written one per line alphabetically.
```
(358
0048
0396
0796
0824
0981
1013
1314
1330
1438
1502
2285
2317
2479
2585
2955
3116
3738
3818
4169
4356
4360
4632
4800
5016
5153
5256
5394
5598
5631
5758
5840
6312
6425
6539
7045
7156
7163
7329
7624
7674
8164
8250
8903
9%38
9009
94))
9413
9748
etri
prin
s'* 
t('T
```
Have fun!
[Answer]
# JavaScript - Area 80
Seems like a lot of these answers are just using lots of I pieces and maybe an O piece or two, so I threw this together with some of the more interesting shapes.
* 7 I pieces
* 1 L piece
* 1 J piece
* 4 O pieces
* 6 T pieces
* 1 S piece
Each piece is separated by two spaces. The two hash signs are actually spaces in the code.
```
l  n  \  /  ;  +  r
o  -  x  c  v  (  i
g  (  5  o  a  ;  s    )  o    //  #c  ns  ->   )    "    d    l    e    l    wi
(  "  4  n  r  ;  "  x65  log  ;/  ")  ].  "c  "(#  o+\  ave  ow"  t"o  "Te  [" 
```
Have fun!
[Answer]
## Javascript, area 420
Only I-blocks.
```
!!!(
!!!+
!!!+
!!![
!!!]
!!!]
!!!]
!!!]
!!!]
!!'!
!![]
!!]]
!(!+
!(![
!+!]
!+!]
!+"+
!++)
!++[
!++[
!++[
!++[
!++]
![+[
!](+
(!!'
(!!+
(!(]
(++!
(['[
)!'!
)[)[
)]]!
+++"
+++)
++++
+++[
+++]
++])
+[+[
+[[[
+]'+
+]']
+]+[
+]+[
+]]!
+]]!
+]]!
+]]!
+]]'
+]][
+]]]
[!!+
[!!+
[!!+
[!!+
[!!+
[!!]
[!+!
[![[
[![[
[((!
[))!
[){!
[+'+
[++)
[++]
[[)+
[[+[
[[[!
[[['
[[[+
[][]
[]]]
[{[[
]!(!
]!]+
]['[
][[!
][[!
][[!
][[!
][[(
][[+
][[+
][[[
][[[
][]]
][}!
]]T]
]][(
]]]!
]]]!
]]]'
]]])
]]]]
]}]]
a['!
e]'(
l++[
v).!
{[[[
{]g]
})')
}]]]
```
No any standard obfuscators were used. All code including obfuscation and making this sorted list of blocks is made by less then 16 lines of my own code.
---
It's time to show how it was made:
```
x="+[],+!![],+!![]+!![],+!![]+!![]+!![],+!![]+!![]+!![]+!![],+!![]+!![]+!![]+!![]+!![],+!![]+!![]+!![]+!![]+!![]+!![],+!![]+!![]+!![]+!![]+!![]+!![]+!![],+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![],+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]".split(/,/g)
res={}
for(q=0; q<x.length; ++q) res[eval(x[q])]=x[q]
function add(str) { for(q=0;q<Math.min(str.length,10);++q) res[eval(x=str+"["+res[q]+"]")]=x }
add("({}+[])")
add("(![]+[])")
add("(!![]+[])")
add("([][[]]+[])")
code = 'eval('+Array.prototype.map.call('console.log("Tetris")',function(x){return res[x]||"'"+x+"'"}).join("+")+')'
res=[]
console.log(code)
code.replace(/(.)(?=.{104}(.).{104}(.).{104}(.))/g,function(m,a,b,c,d){res.push(a+b+c+d)})
eval(res.map(function(x){return x[0]}).join("")+res.map(function(x){return x[1]}).join("")+res.map(function(x){return x[2]}).join("")+res.map(function(x){return x[3]}).join(""))
console.log(res.sort().join("\n"))
```
So, it's just call to `eval` with obfuscated `'console.log("Tetris")'` argument, which is 420 symbols in length. It is splitted into 4 lines of 105 symbols and read by columns and alphabetical sorted.
Obfuscation for 10 digits is hardcoded, for other symbols used first 10 symbols from 4 combinations passed to `add` function. If there is no obfuscation for some symbol it is passed as is.
[Answer]
# C, 80 area
Made of 12 `I` pieces and 8 `O` pieces. C syntax is always fun.
`I` pieces in no particular order:
```
 c[] // starts with a space
','n
',;}
(q){
,',  // ends in a space 
u>6/
T2sr
char
main
q/**
t#1'
ts(c
```
`O` pieces:
```
q<
pu
't
i'
Ir
$'
/}
);
'?
re
',
`:
"e
i>
={
,0
```
[Answer]
# CJam, 60 (15 O's)
```
71 05 37 23 36 04 27 69 32 :i 12 93 bi i] 43
69 44 71 71 -# 70 10 25 44 cb 93 20 *G 9B 62
```
### Solution
> 
> `27`  
> 
> `10`  
> 
> `96`  
> 
> `17`  
> 
> `54`  
> 
> `04`  
> 
> `52`  
> 
> `96`  
> 
> `71`  
> 
> `37`  
> 
> `12`  
> 
> `93`  
> 
> `43`  
> 
> `62`  
> 
> `29`  
> 
> `03`  
> 
> `07`  
> 
> `40`  
> 
> `44`  
> 
> `23`  
> 
> `72`  
> 
> `13`  
> 
> `]B`  
> 
> `i9`  
> 
> `*b`  
> 
> `Gi`  
> 
> `6#`  
> 
> `3-`  
> 
> `ib`  
> 
> `:c`
> 
> 
> 
[Answer]
# Befunge, 360 area
90 `O`-pieces.
```
 "
#6
 "
#^
 #
# 
 #
4 
 +
$ 
 +
0>
 +
v_
 0
> 
 3
# 
 >
\ 
 ^
/1
 _
v8
 v
$,
 ~
*=
!!
00
!<
v>
"!
< 
"<
#^
">
^<
"v
# 
"v
w\
# 
 #
# 
|_
#*
_*
#0
.@
#3
~#
#?
t@
#^
RI
#v
~>
#~
~#
$ 
!4
&v
v#
*#
"#
**
>^
+1
>^
+5
 ,
+^
S"
- 
#"
-#
2\
-~
 #
0 
|>
00
00
0<
v\
2,
+#
2v
^v
3#
< 
3#
>2
3~
^-
47
31
6 
6#
70
"T
8#
:\
:#
 #
:$
$*
:0
3<
< 
#$
<*
<|
<<
>>
<>
<>
<@
 >
<~
2,
> 
7<
>$
^6
>>
<<
>v
|g
\ 
^ 
\_
 !
^ 
<s
_!
>9
_$
ET
kr
 >
m~
#3
q~
~+
r^
c 
t~
, 
v 
 ?
v/
_$
v4
>>
v7
>#
v<
>#
v<
>#
v>
:^
v~
1/
zr
 $
~#
#~
~#
\#
~$
7>
~3
$_
~v
\$
~~
~#
```
You can [try it here](http://www.quirkster.com/iano/js/befunge.html).
> 
> 
> ```
> 3#~#~vm~00-~q~\_:$:#r^&v_!!<v<
> >2\#\$#300 #~+ !$* #c v#>9v>>#
> "v0< 36 v < ~~ ^<~^ <<<@\ -##v
> w\v\# 6# ?#$~#/12,<s>> >^ 2\~>
> "> +>$ +:0 _ #2,v/$ >>v4v7- 3~
> ^<0>^6v_3<v84 +#_$!4<<>>>##"^-
> <*8#> #0 v ~v~2v#~~#kr"v "zr"<
> <|:\7<.@$,*=1/^v~##~ ># #6 $#^
> #*+1# 3# 0470 >vv< ## ~$t~ "<>
> _*>^|_< > 31|>|g>##  #7>, #^<>
> 70_$#^+^~3 +** >v>!!+5#3*#"!#?
> "TETRIS"$_$ >^\ :^00 ,~#"#< t@
> ```
> 
>   
> 
>  There are probably other solutions. I didn't rotate the bricks.
> 
> 
> 
[Answer]
# GolfScript 48
`I` pieces:
```
!;..  )+?;
```
`O` pieces:
```
.[  ;*  .(
):  ++  -\
```
`T` pieces:
```
+]\  +++  ;).  );.
 .    *    ,    )
```
`J` pieces:
```
.    )    *
(@@  :?,  .,:
```
### Solution
> 
>  `.[!)):,.`  
> 
> `):;+:?,*`  
> 
> `;*.?;).+`  
> 
> `++.;),*+`  
> 
> `.(..;).+`  
> 
> `-\(@@\]+`
> 
> 
> 
[Answer]
## Python 3: 340 area [Rebuilt]
Made of 85 `I`-pieces, given here alphabetized one per line.
```
    #Four spaces
    #Four spaces
    #Four spaces
    #Four spaces
    #Four spaces
    #Four spaces
    #Four spaces
    #Four spaces
    #Four spaces        
))  #Two spaces
0290
0398
0866
0887
0892
0992
1108
1268
1297
1339
1555
1722
1817
1848
1930
2328
2521
2611
2747
3179
3192
3245
3284
3334
3613
3862
4086
4629
4639
4674
4695
4781
4968
5723
5742
5791
5938
6011
6069
6180
6231
6265
6269
6444
6564
6776
6884
7116
7253
7348
7440
7527
7743
7873
8064
8291
8808
8843
9305
9324
9458
9460
9586
9869
====
a,b,
abcd
c)-d
etri
pow(
prin
s'*(
t('T
```
As a Python list:
```
['    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '))  ', '0290', '0398', '0866', '0887', '0892', '0992', '1108', '1268', '1297', '1339', '1555', '1722', '1817', '1848', '1930', '2328', '2521', '2611', '2747', '3179', '3192', '3245', '3284', '3334', '3613', '3862', '4086', '4629', '4639', '4674', '4695', '4781', '4968', '5723', '5742', '5791', '5938', '6011', '6069', '6180', '6231', '6265', '6269', '6444', '6564', '6776', '6884', '7116', '7253', '7348', '7440', '7527', '7743', '7873', '8064', '8291', '8808', '8843', '9305', '9324', '9458', '9460', '9586', '9869', '====', 'a,b,', 'abcd', 'c)-d', 'etri', 'pow(', 'prin', "s'*(", "t('T"]
```
[Answer]
## Python 3: 160 area
After [feersum's crack](https://codegolf.stackexchange.com/a/40142/20260), I tried to tighten up my code to make it harder to avoid cryptographic mumbo-jumbo. It's made of 40 `I` pieces, listed one per row:
```
')    #Two spaces
)-d)
*'Te
,b,c
0484
0824
2448
2562
3094
3762
3896
4052
4233
4562
5266
5277
5400
5885
5927
5965
6080
6720
6808
6884
7568
7856
7963
8609
8639
8665
8732
8892
9206
9893
====
abcd
ow(a
prin
t((p
tris
```
As a Python list:
```
["')  ", ')-d)', "*'Te", ',b,c', '0484', '0824', '2448', '2562', '3094', '3762', '3896', '4052', '4233', '4562', '5266', '5277', '5400', '5885', '5927', '5965', '6080', '6720', '6808', '6884', '7568', '7856', '7963', '8609', '8639', '8665', '8732', '8892', '9206', '9893', '====', 'abcd', 'ow(a', 'prin', 't((p', 'tris']
```
Changed:
* Reordered string multiplication to try to force `pow` to be used
* Fewer spaces (though shorter numbers)
* No `1`'s
I am worried about the many factors of the area though.
[Answer]
# C - Area 72
**Blocks:**
```
I    J     _______ L ______       O      __ Z _     _______ T ______
          /                \   /    \   /      \   /                \
"    e    m   "   T   )   6    };  ii   3"   (.    \nn  {6"  ]"0  i%s
i    t    p   ,   &   m   1    -]  ar    "\   f(    t    8    e    T
s   )"    .[  0x  ,f  ai  0r
"  
 ""   (t   ["
)"   61   4+
\____   ____/
      S
```
Since the only other C submission was cracked. ;)
A neat 72 characters. Pure obfuscation. No NP-hard problems to solve or huge integers to factor. Borrows some tricks from one of the greats. **Spaces are represented using `.`s. No actual `.`s appear in the solution.**
I've triple-checked the solution to ensure validity of the pieces.
[Answer]
# CJam, 80 area
20 `O`-pieces.
```
 I
`7
&d
'X
+5
7m
-2
`-
-6
#b
-O
U[
3Z
Pi
4"
2X
43
P"
?<
5b
D:
.=
FH
uL
K`
~C
QT
:c
[^
+9
aj
^F
hD
dP
tn
6 
uq
KG
x6
CF
```
> 
>  `-24"hD&d ID:uqx6tn-OajFH43[^+5?<3ZK`-6QT`  
> 
>  ``-2XdP'X`7.=KGCF6 U[^FuLP"+97m5bPi~C#b:c`  
> 
>   
> 
>  I didn't rotate the bricks.
> 
> 
> 
[Answer]
# C - Area 780
There are 195 pieces in total. No comments were used. Nothing particularly complicated.
Note: all backslashes (`\`) are to be replaced with spaces.
95 `I` Pieces:
```
____ x12
incl
\edu
\\\\
\\\\
\\\\
dts<
h.oi
*_*>
_,_(
int\
__;\
,_(_
_*_,
=__,
__"*
+|_;
r__+
ahct
)=pu
_\ra
f\ch
edep
#t_,
y___
*_;_
(_;-
){__
,<_\
9"=_
+__*
___;
_+>_
_??<
+__*
*__,
__*_
*=+_
__:-
___-
_+__
,___
,__,
_,*&
*\&*
_,*_
_++,
+,__
++++
+__=
_++,
,,,_
___+
=+__
?++_
___+
=__+
,<_*
__+*
&+;*
+*__
__*_
__+,
++?~
__-9
_?__
__*_
(_+_
[**(
_<&_
};__
_@A:
(nia
@@@@
AAAA
AAAA
~~~~
_++;
_&,)
A__+
~~__
g_""
_;}_
+*__
```
35 `O` Pieces:
```
__
__
 (x18)
)_
__
_*
_\
_;
,-
_*
__
~)
"{
+_
+_
*_
,_
__
_)
~~
a~
_,
__
__
,)
_:
__
+*
__
__
+,
*+
_+
AA
AA
__
,+
```
18 `L` Pieces:
```
___
_
 (x2)
_;*
_
_=_
+
__*
_
+__
_
**_
&
+*_
_
&*&
,
++,
_
_*_
_
;;_
"
__+
_
AAA
~
"*)
;
___
(
,_-
_
_~^
_
```
25 `J` Pieces:
```
_+=
  +
+,_
  _
*__
  ;
;;_
  \
_,_
  )
~~~
  _
___
  A
~;(
  _
;__
  i
_;m
  A
=__
  _
a;a
  A
="A
  a
~_\
  o
o_a
  a
~~~
  _
99-
  _
*9_
  _
__)
  _
__*
  <
+_,
  _
_++
  =
_+_
  _
++_
  _
_+:
  _
```
10 `T` Pieces:
```
 _
,__
 +
*?_
 =
**=
 _
__+
 _
:_+
 _
_+_
 _
(_-
 +
++,
 +
___
 *
__:
```
4 `Z` Pieces:
```
=*
 ++
*+
 __
t_
 -~
__
 f(
```
8 `S` Pieces:
```
 _,
_,
 __
__
 (x2)
 -_
__
 (x2)
 _9
~_
 99
__
 __
],
```
### Solution
> 
> `#include <stdio.h>
> typedef char _________; int (*
> _____)()=putchar;____(_,___,__
> ,______) _________*__,* *___,*
> ______;{__="9>?_|";______=*___
> ;--_;--_<*__++?++*______,_+=_+
> _:___,__,___;_<*__++?*______+=
> *______,++______,__,*______+=*
> ______,__,++______,*&*______+=
> *______,++______,* &*______+=*
> ______,++______,*&*&*______+=*
> ______,++______,_,*______+=*&*
> ______,_+=_+_:__,_;_<*__++?++*
> ______++,++*______++,++*______
> ++,++*______++,++*&*______++,_
> ,++*______,_+=_+_+_+_:______;_
> <*__++?~_____(_-_+_-_)^~_____(
> *______),++*___,_____,_,_+=*&*
> ______,_+_:_____(_+_-_-_);;_<*
> __?--*______:___;}_________ _[
> 999-99-99],*__=_;main(______){
> _________*___="AAA@@@@@~~~~~~"
> "~~~~~~aAAAAAaAAAAAAAAAAAAA;;"
> "aa~~~~~~~~~a;a";_____:____((*
> ___-______),&__);if(__,*++___)
> goto _____;++______;++______;}`
> 
> 
> 
[Answer]
# Wolfram, area 72
Everywhere you see a dash (-), replace it with a space
## i
```
h01-
r*1/
```
## j
```
6
115
```
## l
```
  m
+1C
  t
*0e
  e
,,[
```
## o
```
r4
a+
```
## s
```
 10
-1
 +1
Pr
```
## z
```
ro
 8*
ac
 -1
od
 +1
```
## t
```
--F
 {
,50
 0
/]}  -- fixed bracket directions
 0
1-,
 ,
01C
 0
tni
 4
```
[Answer]
# MATLAB, area 48
Unfortunately, it does not seem to work in Octave.
```
-
^-1
'
'u"
v'+
e
[['
;
'.i
]
lmi
a
 kv
hW
 .x
).
3)
t;
b(
'p
('l; 
.]'e
```
[Answer]
# Python 3 176 Area
I don't use underscores in this program, so I decided to replace all spaces with underscores for added readablity. Make sure to replace them back to spaces when failing to put it back together.
## I Blocks:
```
1456
"jtr
\)\~
tris
],i)
t=""
2697
t(t[
_r+2
_r_i
```
## O Blocks:
```
i_
s_
_;
32
6#
an
".
+-
t)
in
n(
_[
""
(c
ap
ri
```
## L Blocks:
```
  =
#14
  .
\n"
  ;
"(t
  i
T%"
  o
:=i
  r
ioj
  6
mp#
```
## J Blocks:
```
6
2(h
5
574
#
"=t
7
spl
f
o__
s
(s_
n
];#
0    
t=_
*
#)(
```
## T Blocks:
```
=_1
 _
295
 r
21,
 r
,2)
 .
```
## Z Blocks:
```
46
 ""
"5
 3"
#t
 )n
1t
 ),
```
## S Blocks:
```
 ge
34
 nt
68
```
[Answer]
# Python 3
## Area - 484
Spaces replaced by `%`. There are some comments used as padding. Quite a bit of repetition of code. May be quite complicated.
### 121 Os
```
41
)+
%r
1-
:#
1#
%r
1-
01
,+
a1
n+
))
0+
h1
r-
#0
##
--
ge
11
1-
hr
1-
--
-1
ap
0+
+1
+'
h0
r+
:1
##
11
1-
))
0+
a0
p+
n0
d+
f%
oz
-1
0+
hr
1-
n0
d+
a0
p+
a1
n+
+0
1+
hf
.=
i1
%-
f%
oa
a1
n+
(c
0+
(0
1+
0,
1+
i1
n+
in
1+
r+
%=
-0
1+
fo
%l
n'
d'
--
=1
p1
%-
-;
-a
-;
-h
a1
n+
pe
0+
pe
0+
-1
0+
n0
d+
11
0-
a0
p+
i1
n+
hz
.=
n0
d+
##
)#
5)
1+
g(
1-
%1
r-
(c
.j
(0
c+
11
0-
(z
n(
g(
1-
41
)+
)s
)'
in
1+
r+
%=
ap
in
g(
1-
01
,+
-a
-n
(l
1+
pt
e(
%1
r-
-#
]#
(1
f+
g1
(-
h.
l=
01
,+
h.
pr
:1
##
:#
1#
(1
z+
r+
%=
+1
0+
p0
e+
r%
+=
(a
0+
hz
.=
+0
1+
(0
c+
))
0+
#0
##
q%
1-
g1
e-
-0
1+
#0
##
pe
0+
-1
h)
61
)+
an
1+
--
ng
fo
%f
)0
)+
f%
oz
-=
-[
11
)+
q1
%-
:#
1#
+0
1+
--
=r
j1
%-
ho
ri
#-
ra
(0
c+
i1
n+
,1
8-
r+
%=
%1
r-
##
0#
```
]