[Question]
  [
# Historic Tetris Achievement
[Blue Scuti](https://en.wikipedia.org/wiki/Willis_Gibson) became the first ever human to beat the classic game of Tetris on NES.
Here's the Tetris [Kill Screen](https://www.youtube.com/watch?v=GuJ5UuknsHU)
[![Blue Scuti](https://i.stack.imgur.com/vVwak.jpg)](https://i.stack.imgur.com/vVwak.jpg)
# Challenge
Output the following Tetris `Kill Screen` board (10x20 blocks)
```
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEEEEEEE
EEEEGGEEEE
EEEEBGGEEE
EBEEBBGGEE
EBEGBBBGBE
EEEEEEEEEE
BBGEBBGGBB
BBBEBBEGBB
BBBBBBBGBE
GGEBBBBBBB
GGEGBGGBBB
BBEBBGGGBB
```
| Code | Color |
| --- | --- |
| B | Blue |
| G | Green |
| E | Black |
# Rules
There is no strict requirement to use the characters B, G, and E, or a specific board orientation, as long as the concept of the `Kill Screen` is preserved.
# Examples
```
 Original    Rotate 180°
██████████   ░░▓▓▓░░█░░
██████████   ░░░▓▓░▓█▓▓
██████████   ░░░░░░░█▓▓
██████████   █░▓░░░░░░░
██████████   ░░▓█░░█░░░
██████████   ░░▓▓░░█▓░░
██████████   ██████████
██████████   █░▓░░░▓█░█
██████████   ██▓▓░░██░█
████▓▓████   ███▓▓░████     Rotate left 90°        Rotate right 90°    
████░▓▓███   ████▓▓████   ██████████████░░█░░░   ░▓▓░░░██████████████
█░██░░▓▓██   ██████████   ████████████░█░░░░░░   ░▓▓░░░█░░███████████
█░█▓░░░▓░█   ██████████   ███████████▓▓█▓▓▓░░▓   ███░░▓██████████████
██████████   ██████████   ██████████▓▓░█▓█░░▓▓   ░▓░░███▓████████████
░░▓█░░▓▓░░   ██████████   █████████▓▓░░█░░░░▓▓   ░░░░░░█░░░▓█████████
░░░█░░█▓░░   ██████████   █████████▓░░░█░░░░░░   ▓▓░░░░█░░▓▓█████████
░░░░░░░▓░█   ██████████   ████████████▓███░░▓░   ▓▓░░█▓█░▓▓██████████
▓▓█░░░░░░░   ██████████   ██████████████▓░░███   ▓░░▓▓▓█▓▓███████████
▓▓█▓░▓▓░░░   ██████████   ███████████░░█░░░▓▓░   ░░░░░░█░████████████
░░█░░▓▓▓░░   ██████████   ██████████████░░░▓▓░   ░░░█░░██████████████
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 0 0 0 0 0 0  1111111111  ..........
0 0 0 0 1 1 0 0 0 0  1111221111  ....##....                            ""     
0 0 0 0 2 1 1 0 0 0  1111022111  ....O##...  00000000000000220222      !""   
0 2 0 0 2 2 1 1 0 0  1011002211  .O..OO##..  00000000000020222222   !  !!""  
0 2 0 1 2 2 2 1 2 0  1012000201  .O.#OOO#O.  00000000000110111221   ! "!!!"! 
0 0 0 0 0 0 0 0 0 0  1111111111  ..........  00000000001120102211
2 2 1 0 2 2 1 1 2 2  0021002200  OO#.OO##OO  00000000011220222211  !!" !!""!!
2 2 2 0 2 2 0 1 2 2  0001001200  OOO.OO.#OO  00000000012220222222  !!! !! "!!
2 2 2 2 2 2 2 1 2 0  0000000201  OOOOOOO#O.  00000000000010002212  !!!!!!!"! 
1 1 0 2 2 2 2 2 2 2  2210000000  ##.OOOOOOO  00000000000000122000  "" !!!!!!!
1 1 0 1 2 1 1 2 2 2  2212022000  ##.#O##OOO  00000000000220222112  "" "!""!!!
2 2 0 2 2 1 1 1 2 2  0010022200  OO.OO###OO  00000000000000222112  !! !!"""!!
```
  
[Answer]
# C (gcc), ~~476~~ ~~395~~ ~~308~~ ~~283~~ ~~153~~ 151 bytes
*-130 bytes thanks to @Command Master  
-2 bytes thanks to @ceilingcat*
Applying [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) to the ascii-art.
```
*a=L"sssssssss7%77%-#'%#1s''%'1''Y%Y%%1''/'";b;main(c){for(;c=*a++;(b+=c/5-3)%20||puts(""))printf("[4%dm %*s",c%5,c/5,"[0m");}
```
[Try it online](https://godbolt.org/z/o8dr1YKbh)
**Output**
[![cm](https://i.stack.imgur.com/ALSgm.png)](https://i.stack.imgur.com/ALSgm.png)
[Linux Terminal](https://godbolt.org/z/sz3E1xn87)
[![l_works_153](https://i.stack.imgur.com/EBcYT.png)](https://i.stack.imgur.com/EBcYT.png)
[Answer]
# [Zsh](https://www.zsh.org/), 98 bytes
```
repeat 9 <<<1111111111
for w (MJ4 M3D KS7 QY7 MS4 150Z 15LQ QZZ 19JR 1809 14OH)rev<<<$[[##3]36#$w]
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m724qjhjwYKlpSVpuhY3k4pSC1ITSxQsFWxsbAzhgCstv0ihXEHD18tEwdfYRcE72FwhMNJcwTfYRMHQ1CAKSPgEKgRGARmWXkEKhhYGlgqGJv4emkWpZUCDVKKjlZWNY43NlFXKYyE2QS2EWQwA)
Converts each line from base 36 to base 3. Each line is reversed, because no line ends with a `G` (`0`), so we can avoid needing to pad with zeroes.
[Generator](https://ato.pxeger.com/run?1=m724qjhjwYKlpSVpuhY3DdLyixSKFTQSilLLakqKFNxdnRQMDI0SNLlSkzPyFXTzFFSio5WVjc1ijZVVimNjFCD6oNoX3KxwBQJ3dxDJBSKcwGwuVycgE8wGMd2dgGwniAII4AIKgBU4OQGZTkCmK5TpBFXrDpIHAxDTHawUpACsC8iGOAAA)
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 32 bytes
```
“ṚƝ*ẊḢ-PṇḃeḶ:@İñṇY¤kṂė’b3Ż94¡s⁵Y
```
[Try it online!](https://tio.run/##AUYAuf9qZWxsef//4oCc4bmaxp0q4bqK4biiLVDhuYfhuINl4bi2OkDEsMOx4bmHWcKka@G5gsSX4oCZYjPFuzk0wqFz4oG1Wf// "Jelly – Try It Online")
A niladic link that outputs the kill screen with 0 for E, 1 for G and 2 for B. A base-250 encoded integer that is converted to base 3, prepended with 94 zeros, split into pieces length 10 and then joined with new lines.
[Answer]
# [Python](https://www.python.org), ~~114~~ 112 bytes
```
x=int("cmlzatvntfmkheiwxpk0p5iob21d1xxc29",36)
c='0'*90
while x:c+=str(x%3);x//=3
while c:print(c[:10]);c=c[10:]
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72soLIkIz9vwYKlpSVpuhY3CypsM_NKNJSSc3OqEkvK8krScrMzUjPLKwqyDQpMM_OTjAxTDCsqko0slXSMzTS5km3VDdS1LA24yjMyc1IVKqyStW2LS4o0KlSNNa0r9PVtjaEyyVYFRSCTk6OtDA1iNa2TbZOjDQ2sYiH2Qq2HOQMA)
This isn't winning any code golf, but it's an interesting concept I wanted to try out before. Basically it is the last 11 rows concatenated, interpreted as a base-3 number, then reversed. Of course, storing the data in the source code as a ~~hex~~ base-36 number wastes a lot of bits, and the printing and decoding can be optimized much further.
# [Python](https://www.python.org), 106 bytes
```
lambda i=200,x=int("2mwpsm5yo9be8gwx4tjcljqj9lx0jxigz",36):f(i-1,x//3)+str(x%3)+'​\n'[i%10<1]if i else''
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72soLIkIz9vweI025ilpSVpuhY3s3ISc5NSEhUybY0MDHQqbDPzSjSUjHLLC4pzTSvzLZNSLdLLK0xKspJzsgqzLHMqDLIqMtOrlHSMzTSt0jQydQ11KvT1jTW1i0uKNCpUgQz1Rw3dMXnq0ZmqhgY2hrGZaQqZCqk5xanq6hAbVxUUgexI09DUhAgsWAChAQ)
This is the program rewritten as a function returning the result, based on l4m2's answer. Before the `\n` there's a ZWSP that is counted in the byte-count but technically means the string has a bunch of extra non-printing spaces.
Very rough constant generation code:
```
b="""EEEEGGEEEE
EEEEBGGEEE
EBEEBBGGEE
EBEGBBBGBE
EEEEEEEEEE
BBGEBBGGBB
BBBEBBEGBB
BBBBBBBGBE
GGEBBBBBBB
GGEGBGGBBB
BBEBBGGGBB"""
b = b.replace('E','0').replace('G','1').replace('B','2')
b = b.replace('\n','')[::-1]
x = int(b,3)
print(hex(x))
```
[Answer]
# [Funge-98](https://esolangs.org/wiki/Funge-98), 165 bytes
```
 9\wv>58k:9k.a,1+:
    v3> ^j3:k35,a<
  2p>53k:3k.7:..'^e
v>k.2277722523k:772757725k:57752725k:227522523k:7722572258k:527222752555772255255557725k.a,
<,a.k9p10-1_@#:g10
```
[Try it online!](https://tio.run/##RY7BCsIwDEDP9isKHjy4lTUldA2j@CEyqVAHBkYvTvz6mtWDhySPvITknh@vdcl9GPvyaVirDtf3FnFkCmxSZ8@kDpuLen46YoddmpTWUCI6JsfGkzGnOastsgHw3gMgiBLwKAmZpCA0kgH8e8A95NBum0LE1m/025YX1NQlw6HYobe3y5EWO9T6BQ)
Instead of `B`, `G`, and `E`, this program outputs `2`, `7`, and `5`.
Contains a tab, which does not seem to work in code blocks, so here is a hex dump:
```
00000000: 2039 5c77 763e 3538 6b3a 396b 2e61 2c31   9\wv>58k:9k.a,1
00000010: 2b3a 0a09 7633 3e20 5e6a 333a 6b33 352c  +:..v3> ^j3:k35,
00000020: 613c 0a20 2032 703e 3533 6b3a 336b 2e37  a<.  2p>53k:3k.7
00000030: 3a2e 2e27 5e65 0a76 3e6b 2e32 3237 3737  :..'^e.v>k.22777
00000040: 3232 3532 336b 3a37 3732 3735 3737 3235  22523k:772757725
00000050: 6b3a 3537 3735 3237 3235 6b3a 3232 3735  k:57752725k:2275
00000060: 3232 3532 336b 3a37 3732 3235 3732 3235  22523k:772257225
00000070: 386b 3a35 3237 3232 3237 3532 3535 3537  8k:5272227525557
00000080: 3732 3235 3532 3535 3535 3737 3235 6b2e  72255255557725k.
00000090: 612c 0a3c 2c61 2e6b 3970 3130 2d31 5f40  a,.<,a.k9p10-1_@
000000a0: 233a 6731 30                             #:g10
```
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), ~~37~~ 35 bytes
```
ＧTχE⪪”{“⌈K→◧ψＭ^≡Ｎq§d5Ｇ↑℅a⁰≔)⦃L+y≡”χ
```
[Try it online!](https://tio.run/##S85ILErOT8z5/z8gP6cyPT9PwypER8HQQEdB3VVd05oroCgzr0QjuCAns0RDyRUI3N1docAJwnQCIgjTydXdCch0ckUAIBcs6wQCQJYrhOUEUecOkoRw3IEyCGXuIKYSyB2amtb////XLcsBAA "Charcoal – Try It Online") Link is to verbose version of code. Explanation: The `ＧTχE` draws a `10×10` square of `E`s, leaving the cursor at the bottom left, so that the `10`th line will be overwritten as the bottom `11` lines are then drawn by splitting a compressed string into rows of `10` characters.
[Answer]
# [Perl 5](https://www.perl.org/), 108 bytes
```
say for('}'x13 .']W}MJWeJURW]JMOZOJ}eROMRWjMRMOzROJMWMzWMOJWjMR_R')=~s,.,($&&G)x((63&ord$&)/8),gre=~/.{10}/g
```
[Try it online!](https://tio.run/##FcjdCoIwGADQV/FC9gO2OcToxuvgg4/BIAaBRNASI5psEWbMR2/RuTyTC/c253h@F1cfGE10Vk0haG8TgnVwMLYH1EcNyRmNxt7QoF6MBrS4WNTwn5OhvFtjJSpWErLnM2PbhvhwKQmXO14NwXWrFB9VJznk/PXTc/SPmDf4aoWqfw "Perl 5 – Try It Online")
[Answer]
# [Ruby](https://www.ruby-lang.org/), ~~84~~ ~~83~~ 78 bytes
```
puts (?0*94+0x7241ea9db46487237308d479dcb396cc036e301ec3.to_s(3)).scan /.{10}/
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72kqDSpcsGCpaUlaboWN_0KSkuKFTTsDbQsTbQNKsyNTAxTEy1TkkzMTCzMjYzNjQ0sUkzMLVOSk4wtzZKTDYzNUo0NDFOTjfVK8uOLNYw1NfWKkxPzFPT1qg0NavUhpkINh1kCAA)
Ports Jelly, which to my surprise is extremely short in Ruby.
Previous solutions:
# [Ruby](https://www.ruby-lang.org/), 86 bytes
```
puts [674,5102,9124,30937,96952,116639,2264,459,18212,716].map{_1.to_s(3).rjust 20,?0}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m72kqDSpcsGCpaUlaboWN8MKSkuKFaLNzE10TA0NjHQsDY1MdIwNLI3NdSzNLE2NdAwNzcyMLXWMjMxMdExMLXUMLYwMjXTMDc1i9XITC6rjDfVK8uOLNYw19YqySotLFIwMdOwNaiGmQy2BWQYA)
Outputs the board rotated 90 degrees, rough port of my Japt solution.
## [Ruby](https://www.ruby-lang.org/), ~~119~~ 114 bytes
```
puts [716,18212,459,2264,116639,96952,30937,9124,5102,674].map{_1.to_s(3).rjust(20,?0).chars}.transpose.map{_1*''}
```
[Attempt This Online!](https://ato.pxeger.com/run?1=Nc5BCsIwEEDRq7hrK2PITJJJs_IgIqWKIoI2ZJJFkZ7ETRd6KG_jwrr_8N_zlcphnOd3yedN-0mxZFntPDJgS0hgXQAitoDIbAIEDo7A6GA8BCQLDjUBe7tXtz4-OlR56KQ2jUrXIrkmDVvdqOOlTzKpnPq7xEFOS7yuqul3XgB_yBc)
Un-rotated version of above solution.
[Answer]
# Python 3.10.10, 164 bytes(UTF-8)
---
###### Definitely not the shortest, but oh well.
```
a="\n#.~"
for i in"ªªªZV¨ªªfU¡ªª¾ªª~n=ªª~Yõ¨ªzeU¡ªªºZªªª^*ªªjY}¨ªªjõ":w=ord(i)*4;print("".join(a[(w:=w//4)&3]for i in a),end="")
```
[Try it online!](https://tio.run/##K6gsycjPM7YoKPr/P9FWKSZPWa9OiSstv0ghUyEzT@nQKhCMCju0AkSnhR5aCBbZV3@oF8Soy7MFU5GHt4JUVKXCFOyKOtQO0RunBSKzImshRmQd3sqoZFVum1@UopGpqWViXVCUmVeioaSkl5WfmaeRGK1RbmVbrq9voqlmHAtzhkKipk5qXoqtkpLm//8A "Python 3.8 (pre-release) – Try It Online")
Outputs a 90deg rotated board, with some extra newlines.
## How
I packed 4 characters into a byte, using 2 bits for each character(`#`,`.`,`~`, or `\n`).
Then, I just use `ord` to convert the ASCII junk back into integers, then unpack it.
#### Clever things:
* Since `for i in range(4)` is obviously way too long, I used `for i in a`, as `a` (coincidentally) has a `len` of 4, and I don't need the value of `i`(the second i) anyway.
* `*4` when assigning `w`, then `(w:=w//4)` in the loop, making use of the [walrus operator](https://docs.python.org/3/whatsnew/3.8.html#assignment-expressions). I originally had `a[w&3+0*(w:=w//4)]`, but then I realized I can just multiply the initial value of `w` by 4.
###### Misc note: I checked, `print(*(genexpr),sep="",end="")` is longer than `print("".join(genexpr),end="")`(by exactly 1 character)
[Answer]
# [Whitespace](https://web.archive.org/web/20150618184706/http://compsoc.dur.ac.uk/whitespace/tutorial.php), ~~695~~ 682 bytes
```
[S S S T    S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   T   N
_Push_3_"][S N
S _Duplicate_3_"][S N
S _Duplicate_3_"][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   N
_Push_1_<space>][S S S T    S N
_Push_2_!][S N
S _Duplicate_2_!][S S T T   S T S T N
_Push_-21_\n][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S S S T   T   N
_Push_3_"][S N
S _Duplicate_3_"][S S S T   S N
_Push_2_!][S S S T  T   N
_Push_3_"][S S S T  N
_Push_1_<space>][S S S T    T   N
_Push_3_"][S N
S _Duplicate_3_"][S S T T   S T S T N
_Push_-21_\n][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S S S T   N
_Push_1_<space>][S S S T    T   N
_Push_3_"][S N
S _Duplicate_3_"][S S T T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S S S T    S N
_Push_2_!][S S S T  T   N
_Push_3_"][S S S T  S N
_Push_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S S T T   S T S T N
_Push_-21_\n][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   T   N
_Push_3_"][S S S T  N
_Push_1_<space>][S S S T    S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   N
_Push_1_<space>][S S S T    S N
_Push_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S S T T   S T S T N
_Push_-21_\n][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   T   N
_Push_3_"][S N
S _Duplicate_3_"][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   N
_Push_1_<space>][S S S T    T   N
_Push_3_"][S S S T  S N
_Push_2_!][S N
S _Duplicate_2_!][S S T T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S S T   T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S S S T    S N
_Push_2_!][S S S T  T   N
_Push_3_"][S S S T  S N
_Push_2_!][S N
S _Duplicate_2_!][S N
S _Duplicate_2_!][S S S T   T   N
_Push_3_"][S S S T  N
_Push_1_<space>][S S S T    S N
_Push_2_!][S S S T  N
_Push_1_<space>][S S T  T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S S S T T   N
_Push_3_"][S N
S _Duplicate_3_"][S S S T   S N
_Push_2_!][S N
S _Duplicate_2_!][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S S S T S N
_Push_2_!][S S S T  N
_Push_1_<space>][S S T  T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S S S T T   N
_Push_3_"][S N
S _Duplicate_3_"][S S S T   S N
_Push_2_!][S S S T  N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S S T   T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S S S T T   N
_Push_3_"][S N
S _Duplicate_3_"][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S S S N
_Push_0][S S S T    S S T   N
_Push_9][T  T   S _Store][N
S S S N
_Create_Label_LOOP1][S S T  T   S T S T N
_Push_-21_\n][S S S T   N
_Push_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S N
S _Duplicate_1_<space>][S S S N
_Push_0][T  T   T   _Retrieve][S S S T  N
_Push_1][T  S S T   _Subtract][S N
S _Duplicate][S S S N
_Push_0][S N
T   _Swap_top_two][T    T   S _Store][N
T   S N
_If_0_Jump_to_Label_LOOP2][N
S N
S N
_Jump_to_Label_LOOP1][N
S S N
_Create_Label_LOOP2][S S S T    T   T   T   T   N
_Push_31][T S S S _Add_top_two][T   N
S S _Output_as_character][N
S N
N
_Jump_to_Label_LOOP2]
```
Letters `S` (space), `T` (tab), and `N` (new-line) added as highlighting only.  
`[..._some_action]` added as explanation only.
[**Try it online**](https://tio.run/##lZHBCoQwDETPM1@RX5NFWG/CLuzndxNjJdpE0HqYDp3mJf29l@/8WafX3JqIQKjLBDbh@jAZdoDK6MScm77tOdS5@NfHeb02zw8FzhhZMzexbALVHDKclKvuZGB1eS1SsMXJM0UbX4gVYnwRnGp02xnVhN/FB9MQDWE7ho5ijZipDi3Mg0o/Ym/K/Nb@) (with raw spaces, tabs and new-lines only).
Outputs with `! "` instead of `BEG` to save 13 bytes.  
(Here the TIO for the old/longer program: [Try it online with `BEG` as output](https://tio.run/##lVFbCoAwDPtuTtGriQj6Jyh4/LlsUzu7CfqANmuadD3mZZ@2dRinEFRFFPFVRimAViBMJvFRJjdkiRnMaSaakwbRft36x0Bp3GvgJayT9kBfPH8Ntf7Lo3fUsvY1jbN7hS@Zjj27ALTd@U2h69JuRiqVC06FBEsz/LkSBUsTWwuDsxCMCEgGbg3@kDIZT0I4AQ).)
**Explanation in pseudo-code:**
```
Push the codepoint-integers minus 31 of string '!!"""!! !!\n
                                                !!!""!" ""\n
                                                !!!!!!! ""\n
                                                 !"!!!!!!!\n
                                                !!" !! !!!\n
                                                !!""!! "!!\n
                                                          \n
                                                 !"!!!" ! \n
                                                  ""!!  ! \n
                                                   ""!    \n
                                                    ""    '
a=9
Start LOOP1:
  Push the codepoint-integers minus 31 of string '\n
                                                            '
  a = a-1
  If a==0:
    Jump to LOOP2
  Go to next iteration of LOOP1
LOOP2:
  Add 31 to the top integer
  Print it as character with this codepoint to STDOUT
  Go to next iteration of LOOP2
```
The constant `31` is generated by [this Java program](https://tio.run/##fVLva9swEP2ev@J8n2Scmgy2D7UjSgsdGJYO6nQblDJkV03UObIny4Ew8renJ/9InG3UH6TH3Xvvzqd7FVtx8fr863DIC1HXsBBK/5kAVE1WqBxqKyxd21I9w4ZSLLVG6dXjEwjf0QC6ABhZN4UFDuJx9hS3GaUt1BtRFLJ2iURbuZImXFz/@Pnt@svD7RQSfhmPTQb2/WCG2OW/Pixv76OX0jBnqngSq/mHT7NYBUHfxqkRjji104oPWgCny3ZWQhZ1bYYraW8oUDP/KKd@X4BlnCsf8lJbpRvZ1Y2PDMup/LL8vlakrUQub5QWZtdVZtmF8uORG7Oh/N2IombVuAxQiyY0sirI4LMytWXVtAowvUtxpN@DLGoJ5zobmBHjiCpuh/AQpPImLKRe2TXzYX4c7aiRf6Y98h6928nmlE4ors5Ldme6q63chGVjw4qGYgvNsJNzDAbTAGN6QwySACECDN4bauL3Zf92Zuftt6z9hI5@Zft1eM/b7ZLuB7IVhp4X0xQDpjmfXSFGek7XEiM8PsywgXk0bLMtzyxd1l8Iuw5FVjPt@/9bNRvwfP7x8op8I/KPR/Mz0jZGEwPvsPuj/eFwcBlEd7Ykr8UT8Ai22EH0CHswWpcJBVqC5xH0CEIPvZ6LLt9@DmJLdYRWRfgN), based on [this Whitespace tip of mine](https://codegolf.stackexchange.com/a/158232/52210).
[Answer]
# [JavaScript (Node.js)](https://nodejs.org), 92 bytes
```
f=(x=200,n=0xe482b7c850b79b07c4080ea138643fd606dacb4523n)=>x?f(x-1,n/3n)+n%3n+[`
`[x%10]]:''
```
[Try it online!](https://tio.run/##DcfdCsIgGADQ@95jTNlWnz9TC6wHGYOp0yjGZ7QI3946d@fpvm4P78frM2BeYw0Z97zF45bvhNRkSbEcoEcLJUrDvQ5mBK/PHnSQYCA6JoySIq0K1OqClyMXSO213BIpA@vx9G@HjcBuWg7LVBoG83xp20oJpfUH "JavaScript (Node.js) – Try It Online")
# [JavaScript (Node.js)](https://nodejs.org), 146 bytes
```
x=>(x=`EEEEEEEEEE
`).repeat(9)+`EEEEGGEEEE
EEEEBGGEEE
EBEEBBGGEE
EBEGBBBGBE
${x}BBGEBBGGBB
BBBEBBEGBB
BBBBBBBGBE
GGEBBBBBBB
GGEGBGGBBB
BBEBBGGGBB`
```
[Try it online!](https://tio.run/##PcvBCoMwDAbge5/DQ4LofQc9BEpeo8UV2RArKqMw9uxdEsQcwkf@P@/4ice0v7azW/Mz1SmvR15Sv@QZoJZhhDIEf48L2O9pS/GEB7YWMFugi8zOk9CsZBKTd823/ESWEDm5Cv1FukqsuY2SraoF@xKHioBY/w "JavaScript (Node.js) – Try It Online")
* +
[Answer]
# [Uiua](https://www.uiua.org), 104 bytes
```
≡(&p⊏:".O#"⇌)⬚0≡(≡/(+×2)↯⊟:2⌈÷2⧻.)⋯⊂⊚9+.640_1184_66856_68940_0_337197_345357_349516_169301_167093_332973
```
[Pad](https://uiua.org/pad?src=0_8_0__4omhKCZw4oqPOiIuTyMi4oeMKeKsmjDiiaEo4omhLygrw5cyKeKGr-KKnzoy4oyIw7cy4qe7Linii6_iioLiipo5Ky42NDBfMTE4NF82Njg1Nl82ODk0MF8wXzMzNzE5N18zNDUzNTdfMzQ5NTE2XzE2OTMwMV8xNjcwOTNfMzMyOTczCg==)
Outputs the following:
```
..........
..........
..........
..........
..........
..........
..........
..........
..........
....##....
....O##...
.O..OO##..
.O.#OOO#O.
..........
OO#.OO##OO
OOO.OO.#OO
OOOOOOO#O.
##.OOOOOOO
##.#O##OOO
OO.OO###OO
```
[Answer]
# APL+WIN, 112 bytes, 109 bytes or 68 bytes
Prompts for characters to display. 3 bytes can be saved if a matrix of the integers 1 2 3 is allowed. Simply delete the first 2 characters and the last.
```
⎕[⍉(2×b⊤n,48 24 12 68 0 140 4 4 768 856 28)+((b←10⍴2)⊤(n←9⍴0),0 32 304 314 0 819 947 1018 127 39 867)+z←10 20⍴1]
```
[Try it online! Thanks to Dyalog Classic](https://tio.run/##HY5NCsIwEIX3OcXsTGgLmSQ2yVYQERQPIC7aSkUoVehKD@AfVNyIF/AI3sCb5CJ1KrN5j8f3Mdm@StaHrNptkqLKmmZbdOH@nM/C6aEZpemCErJwOZf9sAztlavvKw@3dx0bB8oAKkgdSEAjwdBZam6YgnIi4jzveRnajxLE8JqqpyZFLEEr0NKARkO4Qw/eWECJjpwWtAeXWhEd/wZQvQRXHb3CupINxpPRgMEP "APL (Dyalog Classic) – Try It Online")
Alternatively using the base 3 approach with the integers 0 1 2 representing E G B
```
(9 10⍴0)⍪(11⍴3)⊤376 9124 594 4417 146893 166580 55205 18212 2551 337
```
[Try it online! Thanks to Dyalog Classic](https://tio.run/##Dcw7CgIxEADQPqeYcrdYyGRm8jmCoHiGsLIiBBS28gKuCCs23sDK2hPNRWK6V718KcPhmsv5OIwlz/NprPp877Z6e5Fp2uyb0Oh9mWqXAK2uP9vr@u0QG6nXx4eCh4SOQRIDMwZA9jERoPcSLYg4K4DRoQMngkAUahtNnYyBPw "APL (Dyalog Classic) – Try It Online")
[Answer]
# Python (3), ~~229~~ ~~142~~ ~~132~~ 125 bytes
```
x=0
while x<400:print(''.join("█░▓"[int('bie58lyn9recsv5ux1hcplbz7kxon7tmdbe9cplju',36)>>i&3]for i in range(x,x+20,2)));x+=20
```
[Try it online](https://tio.run/##HchBDoIwEADAu69oOAgNxFQQERU@YjwIVruIW1JBF1/g1ZjwQD5SjXOcpm@VxshaysTkoaCWjLYLIdaNAWw9151VGtBzxuE1Du9x@Di7/xcg41XdY2pkebvHHc1V2dTFM7mQxqS9HguZ/qLq3CBa8jyHabQ/acOAATJzwLP0KCA/FEHIOd@Qn4XC2i8)
**Output (Rotated 180°)**
```
▓▓░░░▓▓█▓▓
▓▓▓░░▓░█░░
▓▓▓▓▓▓▓█░░
█▓░▓▓▓▓▓▓▓
▓▓░█▓▓█▓▓▓
▓▓░░▓▓█░▓▓
██████████
█▓░▓▓▓░█▓█
██░░▓▓██▓█
███░░▓████
████░░████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
██████████
```
[Answer]
# [Japt](https://github.com/ETHproductions/japt), ~~50~~ 49 [bytes](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)
```
`mcnhp4 bn26 3hsvn2Ô©u6pn8t4n4v l2`qÍ®nH3ÃùT20 Õ·
```
[Test it](https://petershaggynoble.github.io/Japt-Interpreter/?v=1.4.6&code=YG1jbmhwNJpibjI2jTNoc3ZuMtSpdTZwbjh0NG40doFsMmBxza5uSDPD%2bVQyMCDVtw)
My idea was to compress the 10 columns as base-3, left-pad each with zeroes to length 20, and transpose. I think this is more optimal than compressing the 11 rows as base-3 and prepending 9 rows of zeroes, which seems to be the strategy most submissions are using right now.
The idea used by Nick Kennedy's clever Jelly solution doesn't translate to Japt because it doesn't have support for bigints without hooking into JS, and when you leave Japt-land you don't get compression, so the program ends up quite a bit longer.
# [Japt](https://github.com/ETHproductions/japt) [`-R`](https://codegolf.meta.stackexchange.com/a/14339/), 47 [bytes](https://en.wikipedia.org/wiki/ISO/IEC_8859-1)
```
`l2n4v8t4nu6pn2Ô©3hsvn26ebnhp4nmc`qÍ®nH3ÃùT20
```
[Test it](https://petershaggynoble.github.io/Japt-Interpreter/?v=1.4.6&flags=LVI&code=YGwybjR2gTh0NG51NnBuMtSpM2hzdm4yNo1lYm5ocDRubWNgcc2ubkgzw/lUMjA)
Output rotated 90 degrees.
[Answer]
# [JavaScript (Node.js)](https://nodejs.org), ~~159~~ ~~156~~ 153 bytes
```
console.log('94E2G8EB2G4EB2E2B2G3EBEG3BGB11E2BGE2B2G5BE2BEG9BGBE2GE7B2GEGB2G5BE2B3G2B'.replace(/(\d+)(.)/g,(_,t,c)=>c.repeat(t)).replace(/.{10}/g,`$&
`))
```
[Try it online!](https://tio.run/##RYpBCsIwEEX3nkNsBmNq04p2oYvAMJcQbEhDqZSmtMGNePY4CuJm/vz3390@7OLmfoq7MbQ@JRfGJQxeDaETWV2hphMaTRUf1PyUaJBKQ6YouNOXHQwHUs2UfTwyQvrxkrTJ1OynwTovcnFttyAU5J0UNxmlg/PFfWZvo4gAf1M9i/2LtWa9WTUAKb0B "JavaScript (Node.js) – Try It Online")
[Answer]
# Assembly (nasm, x64, linux) 322 bytes
```
b dq 0,0,0,0,01ADB000000000h,0BEF21AC00033838h,0BFE67E8h,8455DEDA83BD4C42h,41B2938E84746B28h,8343133241A32656h
global _start
_start:mov r8,b
mov bl,20
l:mov eax,[r8]
mov rsi,rsp
mov rcx,10
mov[rsi],cl
r:mov dl,0
mov r9,10
div r9
add dl,48
dec si
mov[rsi],dl
loop r
mov al,1
mov dx,11
mov di,1
syscall
add r8,4
dec bl
jnz l
```
[Try it online!](https://tio.run/##RY5dbsMgEITfOQUH2Er82SF9M7FziSiqwFi1o3WcQlQlvbwLOFXhgW9nZ0bYGIfZ4fPtauO8ro76L8rgdXnTGvZ3RmCmOwreHNIgpZY6K8eu3nWJtKqqtmsbLU2rDkqMoLgRe6k7rXaqNiJ7pJJcSqF4I0Vd1SP5xMVZpB/xbsOdbM/7vHzToMGRDA5BMIJFHOwDTkGfyyLECUK8bdw/gLOMpySfoUcSSsIjsM2xzwY/ZSLW@7xRmvihp3H6D3okuCw3GkrIIvACPtW/aEpSfMbeIpae9FFVahySy/WH4rr@Ag)
[Answer]
# [YASEPL](https://github.com/madeforlosers/yasepl-esolang), ~~131~~ 130 bytes
```
=m)"1"=a;m,10<<<<<<<<<;m,4~#44<~>944111#19>11994411>1914999491;m,10<=g;"9",2~#41~#44<~#91~#14<~~~>9491#441~~~>9#44149449<~#m~#444~
```
really annoying code but here's the output:
```
1111111111
1111111111
1111111111
1111111111
1111111111
1111111111
1111111111
1111111111
1111111111
1111441111
1111944111
1911994411
1914999491
1111111111
9941994499
9991991499
9999999491
4419999999
4414944999
9919944499
```
uses 1, 4, and 9
edit : fixed an inconsistency
[Answer]
# [Retina 0.8.2](https://github.com/m-ender/retina/wiki/The-Language/a950ad7d925ec9316e3e2fb2cf5d49fd15d23e3d), 100 bytes
```
E93G1E7BG1E3BE1B1G1E2BEGB2GBE10B1GEB1G1B4EB1EGB8GBEG1EB6G1EGBG1B4EB1G2B1
\d+
$*
+`(.)1
$1$1
!`.{10}
```
[Try it online!](https://tio.run/##K0otycxL/P@fy9XS2N3Q1dwJSBg7uRo6GQIZRk6u7k5G7kCuAZDvChJzMgFSQFELoChQhZOZO4gHFXc3cjLkiknR5lLR4tJO0NDTNORSMVQx5FJM0Ks2NKj9//@/blkOAA "Retina 0.8.2 – Try It Online") Explanation: Inspired by @mekb's JavaScript answer.
```
E93G1E7BG1E3BE1B1G1E2BEGB2GBE10B1GEB1G1B4EB1EGB8GBEG1EB6G1EGBG1B4EB1G2B1
```
Insert the RLE compressed string.
```
\d+
$*
```
Convert to unary.
```
+`(.)1
$1$1
```
Perform RLE decoding.
```
!`.{10}
```
Split into rows of `10` characters.
[Answer]
# [Vyxal 3](https://github.com/Vyxal/Vyxal/tree/version-3) `j`, 77 bytes
```
90'e×"∧.€¯uэuꜝ!¹»ġ«ᶳ⊻)pṚnṘᵞΘṆuĿġɾ⌐5Ṙ}Ч∥•Ɠ₌ᶳ¿⌈X¥¿₀Ḥ₉ỌŀoṆ~2JᶪNgWyZ∨ᵏᵘ#Ṡ=<W„J₀Ẇ
```
[Try it Online!](https://vyxal.github.io/latest.html#WyJqIiwiIiwiOTAnZcOXXCLiiKcu4oKswq910Y116pydIcK5wrvEocKr4baz4oq7KXDhuZpu4bmY4bWezpjhuYZ1xL/Eocm+4oyQNeG5mH3Qp+KIpeKAosaT4oKM4bazwr/ijIhYwqXCv+KCgOG4pOKCieG7jMWAb+G5hn4ySuG2qk5nV3la4oio4bWP4bWYI+G5oD08V+KAnkrigoDhuoZcbiIsIiIsIlxuIiwiMy40LjEiXQ==)
90 'e's then the rest of the board as a string, split into chunks of 10
will try to do an algorithmic approach later
[Answer]
# [Pip](https://github.com/dloscutoff/pip) `-l`, 46 bytes
```
0X94.(A*"!`V(;O0
1U	_3^R@=Mc,c"FDh)TB3<>t
```
The code contains unprintable characters which do not display correctly on StackExchange. Here's a hexdump:
```
00000000: 3058 3934 2e28 412a 2203 2160 5628 3b4f  0X94.(A*".!`V(;O
00000010: 300c 3155 095f 330e 5e52 4016 3d4d 632c  0.1U._3.^R@.=Mc,
00000020: 1a08 6322 4644 6829 5442 333c 3e74       ..c"FDh)TB3<>t
```
[Attempt This Online!](https://ato.pxeger.com/run?1=m724ILNgWbSSbo5S7IKlpSVpuhY39QwiLE30NBy1lJgVE8I0rP0NeAxDOeON-eKCHMRsfZN1pDiSldxcMjRDnIxt7EoguqCaF0BpAA)
### Explanation
Basically the same idea as [Nick Kennedy's Jelly answer](https://codegolf.stackexchange.com/a/269414/16766), though Pip doesn't have the same base decompression builtin:
```
0X94.(A*"..."FDh)TB3<>t
                         t is 10; h is 100 (implicit)
        "..."            String of characters
      A*                 Get ASCII code of each
             FDh         Treat those as base-100 digits and convert to base 10
     (          )TB3     Convert to base 3
0X94.                    Prepend string of 94 zeros
                    <>t  Group into chunks of length 10
                         Print each on a separate line (-l flag)
```
I experimented with several bases and found 100 to give the best results. It's not the most efficient compression, but saving two bytes by writing `h` instead of `100` makes up for that.
[Answer]
# [Vyxal 3](https://github.com/Vyxal/Vyxal/tree/version-3), 32 bytes
```
"ṁṘkƓ₳İᵛᵂƛ»Ω7∥I»;ᶤḌᶠĖꜝ“3y₅dÞ0₀Ẇ'
```
[Try it Online!](https://vyxal.github.io/latest.html#WyIiLCIiLCJcIuG5geG5mGvGk+KCs8Sw4bWb4bWCxpvCu86pN+KIpUnCuzvhtqThuIzhtqDEluqcneKAnDN54oKFZMOeMOKCgOG6hiciLCIiLCIiLCIzLjQuMSJd)
This is roughly a port of Nick Kennedy's Jelly answer.
[Answer]
# Pascal (FPC), 232 bytes
On 6 June 1984, the first Tetris version was written in [Pascal](https://en.wikipedia.org/wiki/Pascal_(programming_language)) for the Electronica 60.
```
var i:Byte;begin for i:=1 to 9 do WriteLn('EEEEEEEEEE');WriteLn('EEEEGGEEEE'#10'EEEEBGGEEE'#10'EBEEBBGGEE'#10'EBEGBBBGBE'#10'EEEEEEEEEE'#10'BBGEBBGGBB'#10'BBBEBBEGBB'#10'BBBBBBBGBE'#10'GGEBBBBBBB'#10'GGEGBGGBBB'#10'BBEBBGGGBB');end.
```
[Try it online!](https://tio.run/##VcwxC8IwEAXgv3LgUDsodtTg8qDc4u4c21QCkpQ2CP76mJyN1tu@d@9u1HOnH7th7GJ86onsCa9g1M3craPB5@DcUPB0pN7TdbLBXNy2ar9T1eovZZZ00xyEEH@IRHEhIxm/8vIxMy2kDCxEYrsiVrecuzKFLKelLJ/yba2M6/cxvgE)
**Challenge**
Can the code be modified to < 200 bytes?
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E/wiki/Commands), ~~34~~ 33 [bytes](https://github.com/Adriandmen/05AB1E/wiki/Codepage)
```
•{Žúƶ
Í‹¼šÎëPšpUθrćQ´β•3B¾94×ìTô»
```
~~Outputs `012` for `BEG`/blue-black-green respectively.~~  
-1 byte thanks to *@noodleMan* by using `012` for `EGB`/black-green-blue instead.
[Try it online.](https://tio.run/##AUMAvP9vc2FiaWX//@KAonvFvcO6xrYKw43igLnCvMWhw47Dq1DFoXBVzrhyxIdRwrTOsuKAojNCwr45NMOXw6xUw7TCu///)
**Explanation:**
```
•{Žúƶ
Í‹¼šÎëPšpUθrćQ´β•
            # Push compressed integer 166987503168216280220890692936947577852890694295235
 3B         # Convert it to base-3: 1100000000211000020022110002012221200000000000221022112222202201222222222120110222222211012112222202211122
   ¾94×     # Push a string of 94 "0"s
       ì    # Prepend it
        Tô  # Split it into parts of size 10
          » # Join this list by newlines
            # (after which the result is output implicitly)
```
[See this 05AB1E tip of mine (section *How to compress large integers?*)](https://codegolf.stackexchange.com/a/166851/52210), to understand why `•{Žúƶ\nÍ‹¼šÎëPšpUθrćQ´β•` is `166987503168216280220890692936947577852890694295235`.
[Answer]
# [Javascript (V8)](https://v8.dev), 134 bytes
```
for(x of"@@@@@@@@@Ԁी𠩐𡪘@򤩚򨨚򪪘񒪪񑥪򢥚")print("0".repeat(10-(m=((v=x.codePointAt(0))<65?0:v).toString(4)).length)+m)
```
[Try it online!](https://tio.run/##y0osSyxOLsosKNEts/j/Py2/SKNCIT9NyQEGrjQ8WNrwYcHKCR8Wrprh8GnJylmfVqyY9WnVqhkfJ61a9XHi0lWfFi2dpaRZUJSZV6KhZKCkV5RakJpYomFooKuRa6uhUWZboZecn5IakA9U4FiiYaCpaWNmam9gVaapV5IfXALUl65hoqmpl5Oal16Soamdq/n/PwA "JavaScript (V8) – Try It Online")
My first post! :3 Might as well start here because I'm a tetris fanatic
]