Jumblers vs Rebuilders: Mã hóa bằng gạch Tetris


34

Trong Tetris truyền thống , có 7 viên gạch tetromino riêng biệt , mỗi viên được biểu thị bằng một chữ cái tương tự như hình dạng của nó.

#          
#      #    #
#  ##  #    #  ###  ##    ##
#  ##  ##  ##   #    ##  ##
I  O   L   J    T    Z    S

Hãy xem xét sự sắp xếp của những viên gạch này có thể tạo ra một hình chữ nhật W × H chắc chắn, đối với một số số nguyên dương W và H. Ví dụ: sử dụng 2 I, 1 L, 1 J, 2 T và 1 S, hình chữ nhật 7 × 4 có thể được thực hiện:

IIIITTT
LIIIITJ
LTTTSSJ
LLTSSJJ

Các viên gạch giống nhau có thể được sắp xếp lại (bằng cách di chuyển và xoay nhưng không lật ) thành một mẫu 7 × 4 khác nhau:

IJJTLLI
IJTTTLI
IJSSTLI
ISSTTTI

Bây giờ hãy xem xét sử dụng một khối mã hình chữ nhật thay cho sự sắp xếp đầu tiên. Ví dụ, bit 7 × 4 này của Python 3, in Tetrisra thiết bị xuất chuẩn:

p=print
x='Tet'
y='ris'
p(x+y)#

Theo cách sắp xếp Tetris đầu tiên, 7 "viên gạch" của nó là ...

           x          '
      int  y          '  ='r   is
p=pr   t   p(  ='Te  )#   x   +y

Trong cách sắp xếp khác (một trong nhiều khả năng) chúng không thể hiểu được dưới dạng mã:

r#)x(x=
p'r'=y'
='istpT
p+ytnie

Nhưng, với các viên gạch riêng biệt, có thể ghép chúng lại với nhau đúng cách. Đây là cơ sở của thách thức.

Thử thách

Đây là một thử thách . Có hai vai trò cạnh tranh là JumblersRebuilders .

Jumblers gửi câu trả lời với các khối mã đã được chia thành các viên gạch Tetris.

Các Rebuilders cố gắng xây dựng lại các khối này trong câu hỏi riêng dành cho họ: Jumblers vs Rebuilders: Mã hóa với Tetris Bricks - Khu vực cho câu trả lời của Rebuilder .

Kẻ lừa đảo

Chỉ sử dụng ASCII có thể in (mã hex 20 đến 7E) viết chương trình hình chữ nhật W × H. Khi chạy, nó phải xuất từ duy nhấtTetris thành thiết bị xuất chuẩn (hoặc thay thế gần nhất). Không đăng mã này trong câu trả lời của bạn; đừng cho W hoặc H. Chia nó thành một số cách sắp xếp các viên gạch Tetris như ví dụ trên và đăng chúng trong câu trả lời của bạn. (Mã của bạn có thể chứa khoảng trắng nhưng vì chúng khó phân biệt, tốt nhất nên sử dụng một số ký tự khác thay cho khoảng trắng và cho mọi người biết những gì bạn đã sử dụng.)

Càng khó để xây dựng lại chương trình của bạn càng tốt. Có thể có nhiều cách để sắp xếp lại các khối mã của bạn thành một hình chữ nhật, có thể với các kích thước khác nhau. Mã làm gì khi chạy trong các sắp xếp khác nhau này không quan trọng miễn là ít nhất một sắp xếp in Tetrisra thiết bị xuất chuẩn.

Hạn chế duy nhất khác là W * H nhỏ hơn 1025.

Jumblers nên chỉ định ngôn ngữ lập trình (và phiên bản) của họ.

Người tái tạo

Mục tiêu của bạn là lấy các viên gạch mã của Jumbler và đưa chúng trở lại thứ tự ban đầu, do đó Tetrisđược in khi mã được chạy. Nếu sự sắp xếp công việc mà bạn tìm thấy không phải là người mà Jumbler nghĩ đến thì điều đó thật tệ cho họ.

Hãy nhớ rằng chỉ cho phép dịch và xoay trong sắp xếp lại, không phản chiếu.

Chấm điểm

Mỗi lần đệ trình được xây dựng lại, nó được coi là "bẻ khóa" và không còn hoạt động. Rebuilder đầu tiên xây dựng lại một bài nộp nhận được tín dụng cho nó. Nếu câu trả lời không bị bẻ khóa trong 72 giờ, Jumbler sẽ tiết lộ giải pháp và từ đó sẽ được miễn nhiễm khỏi bị bẻ khóa. Một Jumbler phải làm điều này để giành chiến thắng, vì nếu không sẽ không rõ nếu có một giải pháp.

Jumbler chiến thắng là câu trả lời không bị bẻ khóa với diện tích nhỏ nhất (W * H = 4 * num gạch). Trong trường hợp quan hệ, câu trả lời được bình chọn cao nhất sẽ thắng. Câu trả lời được chấp nhận cho câu hỏi này sẽ là Jumbler chiến thắng.

Rebuilder chiến thắng là người dùng bẻ khóa nhiều bài nộp nhất. Trong trường hợp các mối quan hệ, nó đi đến bất cứ ai phá vỡ khu vực tích lũy nhất.

Ghi chú

  • Bạn không thể xây dựng lại đệ trình của riêng bạn. (Nhưng nếu không, bạn có thể đảm nhận cả hai vai trò.)
  • Người tái tạo có thể không cố gắng bẻ khóa cùng một câu trả lời nhiều lần.

Bảng điểm

Sắp xếp từ trình cũ nhất đến mới nhất.

+--------------+-------------+------------------+---------+----------+----------------+-------------------------------------------+-------------------------------------------+
|   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 |                                           |
+--------------+-------------+------------------+---------+----------+----------------+-------------------------------------------+-------------------------------------------+

(Cảm ơn http://www.sensefulsolutions.com/2010/10/format-text-as-table.html để định dạng bảng.)

Người dùng COTO đã tạo ra một công cụ tuyệt vời để chơi với mã gạch. Tôi đã biến nó thành một đoạn tiện lợi:

<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>


10
Âm thanh như một công việc cho Befunge.
Martin Ender

8
OP xin vui lòng cho chúng tôi biết làm thế nào anh ấy quản lý để đưa ra những thứ như thế này?
Soham Chowdhury

5
@SohamChowdhury Tôi không thể nói nhiều hơn tôi đã nói . Nguyên lý chính của tôi là sự đơn giảnđộc đáo .
Sở thích của Calvin

Tôi vẫn có thể gửi một vấn đề, hoặc thử thách này đã kết thúc với Jumblers?
ASCIIThenANSI

@ASCIIThenANSI Đi trước. Không có nhiều người xây dựng lại vẫn còn xung quanh mặc dù.
Sở thích của Calvin

Câu trả lời:


3

GolfScript 48

I miếng:

!;..  )+?;

O miếng:

.[  ;*  .(
):  ++  -\

T miếng:

+]\  +++  ;).  );.
 .    *    ,    )

J miếng:

.    )    *
(@@  :?,  .,:

Dung dịch

.[!)):,.
):;+:?,*
;*.?;).+
++.;),*+
.(..;).+
-\(@@\]+


Vâng, tôi đã sử dụng nó để đưa ra các mảnh tetris. Tôi đã chỉnh sửa nó đủ nhanh để liên kết "đã chỉnh sửa" không hiển thị để mọi người không thể nhìn vào lịch sử chỉnh sửa để tìm câu trả lời.
SamYonnou

Chà, tôi không muốn làm hỏng trò chơi, nhưng hãy hy vọng tôi là người duy nhất mở trang đó nhanh chóng. ;)
Martin Ender

Tôi biết điều này đã quá hạn lâu nhưng tôi chính thức kết thúc cuộc thi, và trừ khi tôi nhầm bài dự thi này đã thắng! Sam, tôi sẽ chấp nhận câu trả lời này nếu bạn đăng giải pháp để chứng minh rằng thực tế là có thể.
Sở thích của Calvin

@ Calvin'sHobbies Xong
SamYonnou

23

Java: khu vực 360

Tiền thưởng: 500

Tái thiết những điều này là khó! Đó có lẽ là lý do tại sao không có quá nhiều tên cướp tham gia thử thách này. Tuy nhiên, tôi muốn thấy tôi bị nứt. Vì vậy, thay vì đưa ra giải pháp sau 72 giờ, tôi đưa 500 rep cho cracker thành công đầu tiên. Để làm rõ, tôi sẽ thêm một khoản tiền thưởng +500 vào bài trả lời và trao giải cho vết nứt của bạn nếu bạn lắp lại các phần này vào bất kỳ chương trình Java hình chữ nhật nào đang hoạt động có kết quả "Tetris". Tôi không kích hoạt tiền thưởng một cách ưu tiên, vì tôi không cảm thấy lãng phí đại diện nếu không có ai trả lời.

Không có ngày kết thúc để cung cấp này. Nó hợp lệ miễn là tôi là thành viên ở đây. Để đảm bảo tôi thấy câu trả lời của bạn, hãy ping tôi với một bình luận bên dưới.

Tôi đã kiểm tra ba lần để đảm bảo các phần (và mã) là hợp lệ, nhưng nếu người dùng đáng tin cậy muốn xác nhận điều này, tôi có thể gửi email / một cái gì đó giải pháp cho họ. Rõ ràng, điều đó sẽ miễn cho họ đăng nó và thu tiền thưởng.

Được làm bằng một hỗn hợp của tất cả bảy loại mảnh. Để làm cho mọi thứ dễ dàng hơn (?) Tôi đã đảm bảo rằng tất cả các phần cùng loại được xoay theo cùng một hướng. Vì Java có các phần không thể thay đổi nhiều, tôi đã để các phần thực sự rõ ràng là các khối I đơn giản để bắt đầu.

Lưu ý: Vì Java có một vài khoảng trắng bắt buộc, tôi đã thay thế chúng bằng dấu gạch dưới ( _) bên dưới cho mục đích bố trí. Có tổng cộng 11 cái và tất cả chúng nên được chuyển đổi thành khoảng trắng để chạy mã. Không có khoảng trắng nào khác trong mã, bất kỳ phần bên dưới nào chỉ dành cho định vị.

Có:

  • 41 tôi
  • 15 O
  • 11 J
  • 8 L
  • 6 T
  • 6 S
  • 3 Z

Chúc vui vẻ!

------------- 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;

Có bất kỳ khối mã nào phải được xoay để xây dựng một giải pháp hợp lệ (hoặc ít nhất là, dự định) không?
El'endia Starman

@ El'endiaStarman Có, bạn sẽ cần xoay một số cho giải pháp dự định.
Geobits

12

Brainfuck, khu vực 108

Mã này được làm từ 27 mảnh.

-.[>
.<++
.<++
[>++
[>++
-]++
]>.-
-]>[
-]>+
]>++
+.+-
+[>+
+-+-
++[>
++[>
++]-
++++
++++
+++<
+++<
+<-]
--<-
<-]>
<><+
>+.>
>++[
>+<<

Tôi không biết có cách nào khác ngoài bruteforce để tìm câu trả lời không. Nếu có, tôi thực sự muốn biết làm thế nào.


9

Vùng Python 3: 212 [Được xây dựng lại]

Mã của tôi được chia thành 53 phần sau đây I, mà tôi đã viết một dòng trên mỗi dòng theo thứ tự bảng chữ cái.

(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

Chúc vui vẻ!


Tôi đã tìm thấy một lỗ hổng trong phương pháp này, nhưng tôi sẽ để nó bị bẻ khóa. Tôi đã đăng một câu trả lời khác mà tôi hy vọng sẽ an toàn hơn.
xnor

8
print('Tetris'* (3580048039607960824098110131314133014381502228523172479258529553116373838184169435643604632480050165153525653945598563157585840631264256539704571638903974876749009825073297156762481649%38941394))
foobar

1
@foobar Xin chúc mừng! Bạn đã thử rất nhiều shuffles mod 38941394 hoặc một cái gì đó có hệ thống hơn? Mất bao lâu? Ngoài ra, tại sao không %3894?
xnor

1
Tôi mới xây dựng sẵn print('Tetris'* (358UNKNOWN94))và vì tôi khá chắc chắn rằng bạn đã không xoay bất kỳ ô nào, tất cả những gì tôi đã làm là xây dựng tất cả các hoán vị có thể có của các ô còn lại, nối chúng lại với nhau và đánh giá nếu 358UNKNOWN94bằng 1, trong khi tôi thay thế UNKNOWNbằng hoán vị . Vì vậy, tôi đã không sử dụng %3894vì một hoán vị phù hợp khác đã được tìm thấy trước tiên;) Tôi không biết chính xác mất bao lâu, nhưng mất khoảng 20 phút sử dụng một lõi. Vì vậy, tôi thực sự đã sử dụng một cái gì đó ít hệ thống hơn, tôi chỉ sử dụng giải pháp đó;)
foobar

1
@ MartinBüttner đã hoàn tất;) codegolf.stackexchange.com/a/40203/19475
foobar

5

JavaScript - Khu vực 80

Có vẻ như rất nhiều câu trả lời trong số này chỉ sử dụng nhiều mảnh I và có thể là một hoặc hai mảnh O, vì vậy tôi đã ném nó cùng với một số hình dạng thú vị hơn.

  • 7 mảnh
  • 1 mảnh
  • 1 mảnh J
  • 4 miếng O
  • 6 miếng
  • 1 mảnh

Mỗi mảnh được ngăn cách bởi hai không gian. Hai dấu hiệu băm thực sự là khoảng trắng trong mã.

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  [" 

Chúc vui vẻ!


5

Javascript, khu vực 420

Chỉ có khối I.

!!!(
!!!+
!!!+
!!![
!!!]
!!!]
!!!]
!!!]
!!!]
!!'!
!![]
!!]]
!(!+
!(![
!+!]
!+!]
!+"+
!++)
!++[
!++[
!++[
!++[
!++]
![+[
!](+
(!!'
(!!+
(!(]
(++!
(['[
)!'!
)[)[
)]]!
+++"
+++)
++++
+++[
+++]
++])
+[+[
+[[[
+]'+
+]']
+]+[
+]+[
+]]!
+]]!
+]]!
+]]!
+]]'
+]][
+]]]
[!!+
[!!+
[!!+
[!!+
[!!+
[!!]
[!+!
[![[
[![[
[((!
[))!
[){!
[+'+
[++)
[++]
[[)+
[[+[
[[[!
[[['
[[[+
[][]
[]]]
[{[[
]!(!
]!]+
]['[
][[!
][[!
][[!
][[!
][[(
][[+
][[+
][[[
][[[
][]]
][}!
]]T]
]][(
]]]!
]]]!
]]]'
]]])
]]]]
]}]]
a['!
e]'(
l++[
v).!
{[[[
{]g]
})')
}]]]

Không có bất kỳ obfuscators tiêu chuẩn đã được sử dụng. Tất cả mã bao gồm obfuscation và tạo danh sách các khối được sắp xếp này được tạo bởi ít hơn 16 dòng mã của riêng tôi.


Đã đến lúc chỉ ra cách nó được tạo ra:

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"))

Vì vậy, nó chỉ cần gọi evalvới 'console.log("Tetris")'đối số bị xáo trộn , có độ dài 420 ký hiệu. Nó được chia thành 4 dòng 105 ký hiệu và đọc theo cột và sắp xếp theo thứ tự bảng chữ cái.

Obfuscation cho 10 chữ số được mã hóa cứng, đối với các ký hiệu khác được sử dụng 10 ký hiệu đầu tiên từ 4 kết hợp được truyền cho addchức năng. Nếu không có obfuscation cho một số biểu tượng, nó được thông qua như là.


Đã đến lúc đăng bài như thế nào?
Qwertiy

@Qwerity Có, nếu bạn muốn.
Sở thích của Calvin

Giải thích được thêm vào.
Qwertiy

4

C, khu vực 80

Được làm từ 12 Imiếng và 8 Omiếng. Cú pháp C luôn vui vẻ.

I các mảnh không theo thứ tự cụ thể:

 c[] // starts with a space
','n
',;}
(q){
,',  // ends in a space 
u>6/
T2sr
char
main
q/**
t#1'
ts(c

O miếng:

q<
pu

't
i'

Ir
$'

/}
);

'?
re

',
`:

"e
i>

={
,0

2
main(q){char c[] ={'/T','$"e','t' ,0162,'rIi>`:i', '?#>s',q<q/**/}; return puts(c);}
jimmy23013

@ user23013 Xin chúc mừng!
es1024

4

CJam, 60 (15 giờ)

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

Dung dịch

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


4

Befunge, khu vực 360

90 Omảnh.

 "
#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
\$

~~
~#

Bạn có thể thử nó ở đây .

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@

Có lẽ có những giải pháp khác. Tôi đã không xoay những viên gạch.


Đây là một trong những chương trình Befunge phức tạp nhất mà tôi từng thấy và xem chạy. Rất thông minh!
El'endia Starman

3

Python 3: 340 khu vực [Được xây dựng lại]

Được làm bằng 85 Imảnh, được đặt ở đây theo thứ tự bảng chữ cái trên mỗi dòng.

    #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

Như một danh sách Python:

['    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '    ', '))  ', '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"]

Tôi đã phạm sai lầm và dán quá nhiều. Tôi đã sửa nó ngay bây giờ, nhưng các nhà xây dựng lại, xin vui lòng không xem qua lịch sử chỉnh sửa.
xnor

2
FYI, bạn đã sửa nó trong thời gian ân hạn, vì vậy không có lịch sử chỉnh sửa để lo lắng.
Nathaniel

Danh sách chính bị thiếu hai trong số các khối 4 không gian.
frageum

@feersum Chúc mừng! Tôi hoàn toàn không nghĩ đến việc sử dụng phần nhô ra như thế. Thời gian để làm cho một mớ bòng bong mới và tốt hơn.
xnor

2
Crackw btw.
frageum

3

Python 3: 160 khu vực

Sau khi bẻ khóa , tôi đã cố gắng thắt chặt mã của mình để tránh khó khăn hơn trong việc tránh mumbo-jumbo. Nó được làm từ 40 Imảnh, được liệt kê một hàng mỗi:

')    #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

Như một danh sách Python:

["')  ", ')-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']

Thay đổi:

  • Sắp xếp lại chuỗi nhân để cố gắng powsử dụng
  • Ít không gian hơn (mặc dù số ngắn hơn)
  • Không 1's

Tôi lo lắng về nhiều yếu tố của khu vực mặc dù.


2

C - Khu vực 72

Khối:

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

Vì chỉ có trình C khác bị bẻ khóa. ;)

72 ký tự gọn gàng. Tinh khiết. Không có vấn đề NP-hard để giải quyết hoặc số nguyên lớn cho yếu tố. Mượn một số thủ thuật từ một trong những người vĩ đại. Không gian được thể hiện bằng .s. Không có .s thực tế xuất hiện trong giải pháp.

Tôi đã kiểm tra ba lần giải pháp để đảm bảo tính hợp lệ của các mảnh.


2

CJam, khu vực 80

20 Omảnh.

 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

Tôi đã không xoay những viên gạch.


2

C - Khu vực 780

Có 195 mảnh trong tổng số. Không có ý kiến ​​đã được sử dụng. Không có gì đặc biệt phức tạp.

Lưu ý: tất cả dấu gạch chéo ngược (\ ) sẽ được thay thế bằng dấu cách.

95 Imiếng:

____ 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 Omiếng:

__
__
 (x18)
)_
__

_*
_\

_;
,-

_*
__

~)
"{

+_
+_

*_
,_

__
_)

~~
a~

_,
__

__
,)

_:
__

+*
__

__
+,

*+
_+

AA
AA

__
,+

18 Lmiếng:

___
_
 (x2)
_;*
_
_=_
+
__*
_
+__
_
**_
&
+*_
_
&*&
,
++,
_
_*_
_
;;_
"
__+
_
AAA
~
"*)
;
___
(
,_-
_
_~^
_

25 Jmiếng:

_+=
  +
+,_
  _
*__
  ;
;;_
  \
_,_
  )
~~~
  _
___
  A
~;(
  _
;__
  i
_;m
  A
=__
  _
a;a
  A
="A
  a
~_\
  o
o_a
  a
~~~
  _
99-
  _
*9_
  _
__)
  _
__*
  <
+_,
  _
_++
  =
_+_
  _
++_
  _
_+:
  _

10 Tmiếng:

 _
,__
 +
*?_
 =
**=
 _
__+
 _
:_+
 _
_+_
 _
(_-
 +
++,
 +
___
 *
__:

4 Zmiếng:

=*
 ++
*+
 __
t_
 -~
__
 f(

8 Smiếng:

 _,
_,
 __
__
 (x2)
 -_
__
 (x2)
 _9
~_
 99
__
 __
],

Dung dịch

#include <stdio.h> typedef char _________; int (* _____)()=putchar;____(_,___,__ ,______) _________*__,* *___,* ______;{__="9>?_|";______=*___ ;--_;--_<*__++?++*______,_+=_+ _:___,__,___;_<*__++?*______+= *______,++______,__,*______+=* ______,__,++______,*&*______+= *______,++______,* &*______+=* ______,++______,*&*&*______+=* ______,++______,_,*______+=*&* ______,_+=_+_:__,_;_<*__++?++* ______++,++*______++,++*______ ++,++*______++,++*&*______++,_ ,++*______,_+=_+_+_+_:______;_ <*__++?~_____(_-_+_-_)^~_____( *______),++*___,_____,_,_+=*&* ______,_+_:_____(_+_-_-_);;_<* __?--*______:___;}_________ _[ 999-99-99],*__=_;main(______){ _________*___="AAA@@@@@~~~~~~" "~~~~~~aAAAAAaAAAAAAAAAAAAA;;" "aa~~~~~~~~~a;a";_____:____((* ___-______),&__);if(__,*++___) goto _____;++______;++______;}


1

Wolfram, khu vực 72

Ở mọi nơi bạn thấy dấu gạch ngang (-), hãy thay thế nó bằng dấu cách

tôi

h01-

r*1/

j

6
115

tôi

  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

Bạn có nghĩa là ngôn ngữ Wolfram (tức là Mathicala)? Tất cả dấu ngoặc và dấu ngoặc nhọn của bạn cùng hướng - bạn có vô tình lật chúng xung quanh khi xoay các khối không?
Martin Ender

1
Được rồi, khung và nẹp trong Tkhối thứ ba phải là cách khác. Tôi quản lý để xây dựng lại nó .
Martin Ender

Ngôn ngữ Wolfram, vâng. Ồ không, tôi đã làm sai! Xin chúc mừng vì đã giải quyết nó bất chấp điều đó!
Gerli

Tôi đã sửa lỗi T. Tôi đã in mã ra và xoay tờ giấy để giảm bớt việc tập thể dục tinh thần ... Tôi đã quên tính đến thực tế là các biểu tượng cũng thay đổi ...
Gerli

0

MATLAB, khu vực 48

Thật không may, nó dường như không hoạt động trong Octave.

-
^-1

'
'u"

v'+
e

[['
;

'.i
]

lmi
a

 kv
hW

 .x
).

3)
t;

b(
'p

('l; 

.]'e

0

Khu vực Python 3 176

Tôi không sử dụng dấu gạch dưới trong chương trình này, vì vậy tôi quyết định thay thế tất cả các khoảng trắng bằng dấu gạch dưới để tăng tính dễ đọc. Hãy chắc chắn để thay thế chúng trở lại không gian khi không đặt nó trở lại với nhau.

Tôi khối:

1456

"jtr

\)\~

tris

],i)

t=""

2697

t(t[

_r+2

_r_i

Khối O:

i_
s_

_;
32

6#
an

".
+-

t)
in

n(
_[

""
(c

ap
ri

Khối L:

  =
#14

  .
\n"

  ;
"(t

  i
T%"

  o
:=i

  r
ioj

  6
mp#

Khối J:

6
2(h

5
574

#
"=t

7
spl

f
o__

s
(s_

n
];#

0    
t=_

*
#)(

Khối T:

=_1
 _

295
 r

21,
 r

,2)
 .

Khối Z:

46
 ""

"5
 3"

#t
 )n

1t
 ),

Khối S:

 ge
34

 nt
68

0

Con trăn 3

Diện tích - 484

Không gian được thay thế bởi % . Có một số ý kiến ​​được sử dụng như đệm. Khá một chút sự lặp lại của mã. Có thể khá phức tạp.

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#
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.