Jumblers vs Rebuilders: Codierung mit Tetris Bricks


34

Im traditionellen Tetris gibt es 7 verschiedene Tetrominosteine , die jeweils durch einen Buchstaben gekennzeichnet sind, der ihrer Form ähnlich ist.

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

Betrachten Sie die Anordnungen dieser Bausteine, die für einige positive ganze Zahlen W und H ein festes W × H-Rechteck bilden können. Wenn Sie beispielsweise 2 I, 1 L, 1 J, 2 T und 1 S verwenden, kann ein 7 × 4-Rechteck verwendet werden gemacht sein:

IIIITTT
LIIIITJ
LTTTSSJ
LLTSSJJ

Dieselben Bausteine ​​können neu angeordnet werden (durch Bewegen und Drehen, aber nicht Umdrehen ) in ein anderes 7 × 4-Muster:

IJJTLLI
IJTTTLI
IJSSTLI
ISSTTTI

Betrachten Sie nun die Verwendung eines rechteckigen Codeblocks anstelle der ersten Anordnung. Zum Beispiel dieses 7 × 4-Bit von Python 3, das Tetrisnach stdout gedruckt wird :

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

Nach dem ersten Tetris-Arrangement sind seine 7 "Steine" ...

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

In der anderen Anordnung (eine von vielen möglichen) sind sie als Code unverständlich:

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

Wenn die Bausteine ​​jedoch einzeln verwendet werden, können sie möglicherweise wieder richtig zusammengesetzt werden. Dies ist die Basis der Herausforderung.

Herausforderung

Dies ist eine Herausforderung für . Es gibt zwei konkurrierende Rollen, die Jumblers und die Rebuilders .

Die Jumbler übermitteln Antworten mit Codeblöcken, die in Tetris-Bausteine ​​zerlegt wurden.

Die Rebuilders versuchen, diese Blöcke in der separaten Frage, die ihnen gewidmet ist , neu aufzubauen : Jumblers vs Rebuilders: Codieren mit Tetris Bricks - Bereich für Rebuilder-Antworten .

Durcheinander

Schreiben Sie ein B × H-Rechteckprogramm, indem Sie nur druckbares ASCII (Hex-Codes 20 bis 7E) verwenden. Beim Ausführen muss das einzige Wort Tetrisan stdout (oder die nächstgelegene Alternative) ausgegeben werden . Veröffentlichen Sie diesen Code nicht in Ihrer Antwort. Gib weder W noch H. Teilen Sie es in eine Anordnung von Tetris-Steinen auf, wie im obigen Beispiel, und geben Sie diese in Ihre Antwort ein. (Ihr Code kann Leerzeichen enthalten. Da sie jedoch schwer zu unterscheiden sind, verwenden Sie am besten ein anderes Zeichen anstelle von Leerzeichen und geben Sie an, was Sie verwendet haben.)

Je schwieriger es ist, Ihr Programm neu zu erstellen, desto besser. Es gibt viele Möglichkeiten, Ihre Code-Bausteine ​​in ein Rechteck umzuordnen, möglicherweise mit unterschiedlichen Abmessungen. Was der Code tut, wenn er in diesen verschiedenen Arrangements ausgeführt wird, spielt keine Rolle, solange mindestens ein Arrangement Tetrisauf stdout gedruckt wird .

Die einzige andere Einschränkung ist, dass W * H kleiner als 1025 ist.

Jumbler sollten ihre Programmiersprache (und Version) angeben.

Wiederaufbau

Ihr Ziel ist es, die Code-Bausteine ​​eines Jumblers wieder in die ursprüngliche Reihenfolge zu bringen, damit sie Tetrisgedruckt werden, wenn der Code ausgeführt wird. Wenn die Arbeitsvereinbarung, die Sie finden, nicht die ist, die der Jumbler im Sinn hatte, ist das für sie zu schlecht.

Denken Sie daran, dass bei Neuanordnungen nur Translation und Rotation zulässig sind, keine Spiegelung.

Wertung

Jedes Mal, wenn eine Übermittlung neu erstellt wird, wird sie als "geknackt" betrachtet und ist nicht mehr aktiv. Der erste Rebuilder, der eine Übermittlung neu erstellt, erhält die Gutschrift dafür. Wenn eine Antwort 72 Stunden lang nicht geknackt wird, sollte der Jumbler die Lösung enthüllen und ist von nun an immun gegen Knacken. Ein Jumbler muss dies tun, um zu gewinnen, da sonst nicht klar ist, ob es überhaupt eine Lösung gibt.

Der siegreiche Jumbler ist die ungerissene Antwort mit der kleinsten Fläche (B * H = 4 * Anzahl Steine). Bei Stimmengleichheit gewinnt die am höchsten bewertete Antwort. Die akzeptierte Antwort auf diese Frage wird der Gewinner sein.

Der gewinnende Rebuilder ist der Benutzer, der die meisten Einsendungen knackt. Bei Gleichstand geht es an denjenigen, der den kumulativsten Bereich geknackt hat.

Anmerkungen

  • Sie können Ihre eigenen Beiträge möglicherweise nicht neu erstellen. (Andernfalls können Sie beide Rollen übernehmen.)
  • Rebuilder dürfen nicht versuchen, dieselbe Antwort mehr als einmal zu knacken.

Anzeigetafel

Sortiert von der ältesten bis zur neuesten Einreichung.

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

(Dank an http://www.sensefulsolutions.com/2010/10/format-text-as-table.html für die Tabellenformatierung.)

User COTO hat ein exzellentes Tool zum Spielen mit Code-Bricks entwickelt. Ich habe daraus einen praktischen Ausschnitt gemacht:

<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
Klingt nach einem Job für Befunge.
Martin Ender

8
Würde OP uns bitte sagen, wie er es schafft, solche Sachen zu erfinden?
Soham Chowdhury

5
@SohamChowdhury Ich kann nicht viel mehr sagen, als ich bereits gesagt habe . Meine wichtigsten Grundsätze sind Einfachheit und Originalität .
Calvins Hobbys

Kann ich trotzdem ein Problem einreichen oder ist diese Herausforderung für Jumbler geschlossen?
ASCIIThenANSI

@ASCIIThenANSI Mach weiter. Es gibt jedoch noch nicht viele Wiederaufbauer.
Calvins Hobbys

Antworten:


3

GolfScript 48

I Stücke:

!;..  )+?;

O Stücke:

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

T Stücke:

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

J Stücke:

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

Lösung

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


Hoppla, ich habe es benutzt, um die Tetris-Teile zu entwickeln. Ich habe es schnell genug bearbeitet, damit der "bearbeitete" Link nicht angezeigt wird, sodass die Leute nicht in der Lage sein sollten, den Bearbeitungsverlauf nach der Antwort zu durchsuchen.
SamYonnou

Nun, ich möchte das Spiel nicht verderben, aber ich hoffe, ich war der einzige, der die Seite so schnell geöffnet hat. ;)
Martin Ender

Ich weiß, dass dies längst überfällig ist, aber ich beende den Wettbewerb offiziell und wenn ich mich nicht irre, hat diese Einsendung gewonnen! Sam, ich akzeptiere diese Antwort, wenn du die Lösung postest, um zu beweisen, dass es tatsächlich möglich war.
Calvins Hobbys

@ Calvin'sHobbies Fertig
SamYonnou

23

Java: 360 Bereich

Kopfgeld: 500

Diese Dinge zu rekonstruieren ist schwer! Das ist wahrscheinlich der Grund, warum nicht zu viele Räuber an dieser Herausforderung teilnehmen. Allerdings möchte ich meine geknackt sehen. Anstatt die Lösung nach 72 Stunden zu geben, setze ich 500 Wiederholungen für den ersten erfolgreichen Cracker ein. Zur Verdeutlichung füge ich dem Antwortpost ein Kopfgeld von +500 hinzu und vergebe es Ihrem Crack, wenn Sie diese Teile in ein funktionierendes, rechteckiges Java-Programm umbauen, das "Tetris" ausgibt. Ich aktiviere das Kopfgeld nicht präventiv, weil ich keine Lust habe, Repräsentanten zu verschwenden, wenn niemand antwortet.

Es gibt kein Enddatum für dieses Angebot. Es ist gültig, solange ich hier Mitglied bin. Um sicherzustellen, dass ich Ihre Antwort sehe, senden Sie mir unten einen Kommentar.

Ich habe dreimal überprüft, ob die Teile (und der Code) gültig sind, aber wenn ein vertrauenswürdiger Benutzer dies bestätigen möchte, kann ich die Lösung per E-Mail / E-Mail an sie senden. Offensichtlich würde das sie davon befreien, es zu posten und das Kopfgeld zu sammeln.

Hergestellt aus einer Mischung aller sieben Teiltypen. Zur Vereinfachung (?) Habe ich darauf geachtet, dass alle Teile desselben Typs in die gleiche Richtung gedreht werden. Da Java Teile hat, die sich nicht viel ändern lassen, habe ich die wirklich offensichtlichen Teile als einfache I-Blöcke hinterlassen , um den Anfang zu machen.

Hinweis: Da Java einige obligatorische Leerzeichen enthält, habe ich sie für Layoutzwecke durch Unterstriche ( _) unten ersetzt. Insgesamt sind es 11, und alle sollten in Leerzeichen umgewandelt werden, um den Code auszuführen. Der Code enthält kein anderes Leerzeichen. Die folgenden Angaben dienen lediglich der Positionierung.

Es gibt:

  • 41 I
  • 15 O
  • 11 J
  • 8 l
  • 6 T
  • 6 S
  • 3 Z

Habe Spaß!

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

Müssen die Codeblöcke gedreht werden, um eine gültige (oder zumindest die beabsichtigte) Lösung zu erstellen?
El'endia Starman

@ El'endiaStarman Ja, du musst einige für die beabsichtigte Lösung drehen.
Geobits

12

Brainfuck, 108 Bereich

Dieser Code bestand aus 27 I-Stücken.

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

Ich weiß nicht, ob es einen anderen Weg als Bruteforce gibt, um die Antwort zu finden. Wenn ja, würde ich gerne wissen, wie.


9

Python 3: 212 Bereich [Rebuilt]

Mein Code Igliedert sich in die folgenden 53 Teile, die ich alphabetisch pro Zeile geschrieben habe.

(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

Habe Spaß!


Ich habe eine Schwachstelle in dieser Methode gefunden, aber ich lasse sie geknackt werden. Ich habe eine andere Antwort gepostet, von der ich hoffe, dass sie sicherer ist.
22.

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

1
@foobar Glückwunsch! Hast du viele Shuffles mod 38941394 oder etwas systematischeres ausprobiert? Wie lange hat es gedauert? Warum auch nicht %3894?
Xnor

1
Ich habe gerade vorgebaut print('Tetris'* (358UNKNOWN94))und da ich ziemlich sicher war, dass Sie keine Kacheln gedreht haben, war alles, was ich getan habe, alle möglichen Permutationen der verbleibenden Kacheln zu erstellen, sie zusammenzufügen und zu bewerten, ob sie 358UNKNOWN94gleich sind 1, während ich sie durch UNKNOWNdie Permutation ersetzte . Also habe ich nicht verwendet, %3894weil zuerst eine andere passende Permutation gefunden wurde;) Ich weiß nicht, wie lange es genau gedauert hat, aber mit einem einzelnen Kern waren es ungefähr 20 Minuten. Also habe ich eigentlich etwas weniger systematisches verwendet, ich habe die Lösung nur brachial durchgesetzt;)
22.10.14 um

1
@ MartinBüttner fertig;) codegolf.stackexchange.com/a/40203/19475
foobar

5

JavaScript - Bereich 80

Scheint, als ob viele dieser Antworten nur viele I-Teile und vielleicht ein oder zwei O-Teile enthalten, also habe ich dies zusammen mit einigen der interessanteren Formen geworfen.

  • 7 I Stücke
  • 1 L Stück
  • 1 J Stück
  • 4 O Stücke
  • 6 T-Stücke
  • 1 S Stück

Jedes Stück ist durch zwei Leerzeichen getrennt. Die beiden Hash-Zeichen sind tatsächlich Leerzeichen im 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  [" 

Habe Spaß!


5

Javascript, Bereich 420

Nur I-Blöcke.

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

Es wurden keine Standardobfuscatoren verwendet. Der gesamte Code, einschließlich der Verschleierung und der Erstellung dieser sortierten Liste von Blöcken, besteht aus weniger als 16 Zeilen meines eigenen Codes.


Es ist Zeit zu zeigen, wie es gemacht wurde:

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

Es ist also nur ein Aufruf evalmit einem verschleierten 'console.log("Tetris")'Argument, das 420 Symbole lang ist. Es ist in 4 Zeilen zu je 105 Symbolen aufgeteilt und wird spaltenweise und alphabetisch sortiert gelesen.

Die Verschleierung für 10 Ziffern ist fest codiert, für andere Symbole werden zuerst 10 Symbole aus 4 Kombinationen verwendet, die an die addFunktion übergeben werden. Wenn es für ein Symbol keine Verschleierung gibt, wird es so übergeben, wie es ist.


Ist es Zeit zu posten, wie es gemacht wurde?
Qwertiy

@Qwerity Ja, wenn du willst.
Calvins Hobbys

Erklärung wird hinzugefügt.
Qwertiy

4

C 80 Bereich

Hergestellt aus 12 Iund 8 OTeilen. C-Syntax macht immer Spaß.

I Stücke in keiner bestimmten Reihenfolge:

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

O Stücke:

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 Glückwunsch!
Es1024

4

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

Lösung

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, 360 Bereich

90- Oteilig.

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

~~
~#

Sie können es hier ausprobieren .

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@

Es gibt wahrscheinlich andere Lösungen. Ich habe die Steine ​​nicht gedreht.


Dies ist eines der kompliziertesten Befunge-Programme, die ich je gesehen und beim Laufen beobachtet habe. Sehr schlau!
El'endia Starman

3

Python 3: 340 Bereich [Rebuilt]

Hergestellt aus 85 ITeilen, hier in alphabetischer Reihenfolge ein Stück pro Zeile.

    #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

Als Python-Liste:

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

Ich habe einen Fehler gemacht und zu viel eingefügt. Ich habe es jetzt behoben, aber Rebuilder, bitte schauen Sie nicht durch den Bearbeitungsverlauf.
Xnor

2
Zu Ihrer Information, Sie haben es innerhalb der Kulanzfrist behoben, sodass Sie sich keine Sorgen über den Bearbeitungsverlauf machen müssen.
Nathaniel

In der Hauptliste fehlen zwei der 4-Leerzeichen-Blöcke.
Feersum

@feersum Glückwunsch! Ich habe überhaupt nicht daran gedacht, solche Überhänge zu verwenden. Zeit für ein neues und besseres Durcheinander.
Xnor


3

Python 3: 160 Bereich

Nach Feersums Riss habe ich versucht, meinen Code zu verschärfen, um kryptografisches Hokuspokus zu vermeiden. Es besteht aus 40 ITeilen, eines pro Reihe:

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

Als Python-Liste:

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

Geändert:

  • Neu geordnet String Multiplikation Kraft , um zu versuchen powzu nutzen
  • Weniger Leerzeichen (wenn auch kürzere Zahlen)
  • Keine 1‚s

Ich bin jedoch besorgt über die vielen Faktoren in der Region.


2

C - Bereich 72

Blöcke:

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

Da wurde die einzige andere C-Vorlage geknackt. ;)

Ordentlich 72 Zeichen. Reine Verschleierung. Keine np-schwierigen Probleme zu lösen oder große ganze Zahlen zu berücksichtigen. Leiht sich ein paar Tricks von einem der ganz Großen aus. Leerzeichen werden mit .s dargestellt. In .der Lösung werden keine tatsächlichen s angezeigt.

Ich habe die Lösung dreifach überprüft, um die Gültigkeit der Teile sicherzustellen.


2

CJam, 80 Bereich

20- Oteilig.

 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

Ich habe die Steine ​​nicht gedreht.


2

C - Bereich 780

Insgesamt gibt es 195 Stück. Es wurden keine Kommentare verwendet. Nichts besonders kompliziertes.

Hinweis: Alle umgekehrten Schrägstriche ( \) müssen durch Leerzeichen ersetzt werden.

95 IStücke:

____ 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 OStücke:

__
__
 (x18)
)_
__

_*
_\

_;
,-

_*
__

~)
"{

+_
+_

*_
,_

__
_)

~~
a~

_,
__

__
,)

_:
__

+*
__

__
+,

*+
_+

AA
AA

__
,+

18 LStücke:

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

25 JStück:

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

10 TStück:

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

4 ZStück:

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

8 SStück:

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

Lösung

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


1

Wolfram, Bereich 72

Wenn Sie einen Bindestrich (-) sehen, ersetzen Sie ihn durch ein Leerzeichen

ich

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

Meinen Sie Wolfram-Sprache (zB Mathematica)? Alle Ihre Klammern und Klammern zeigen in die gleiche Richtung - haben Sie sie versehentlich gewendet, als Sie die Blöcke gedreht haben?
Martin Ender

1
Okay ja, die Klammer und die Klammer im dritten TBlock sollten umgekehrt sein. Ich habe es geschafft, es wieder aufzubauen .
Martin Ender

Wolfram-Sprache, ja. Oh nein, ich habe einen Fehler gemacht! Herzlichen Glückwunsch zur Lösung!
Gerli

Ich korrigierte das T. Ich druckte den Code aus und drehte das Papier, um geistige Anstrengung zu reduzieren. Ich vergaß zu berücksichtigen, dass sich auch die Symbole änderten.
Gerli

0

MATLAB, Bereich 48

Leider scheint es in Octave nicht zu funktionieren.

-
^-1

'
'u"

v'+
e

[['
;

'.i
]

lmi
a

 kv
hW

 .x
).

3)
t;

b(
'p

('l; 

.]'e

0

Python 3 176 Bereich

Ich verwende in diesem Programm keine Unterstriche, daher habe ich beschlossen, alle Leerzeichen durch Unterstriche zu ersetzen, um die Lesbarkeit zu verbessern. Stellen Sie sicher, dass Sie sie wieder in Leerzeichen setzen, wenn Sie sie nicht wieder zusammensetzen können.

I-Blöcke:

1456

"jtr

\)\~

tris

],i)

t=""

2697

t(t[

_r+2

_r_i

O-Blöcke:

i_
s_

_;
32

6#
an

".
+-

t)
in

n(
_[

""
(c

ap
ri

L-Blöcke:

  =
#14

  .
\n"

  ;
"(t

  i
T%"

  o
:=i

  r
ioj

  6
mp#

J-Blöcke:

6
2(h

5
574

#
"=t

7
spl

f
o__

s
(s_

n
];#

0    
t=_

*
#)(

T-Blöcke:

=_1
 _

295
 r

21,
 r

,2)
 .

Z-Blöcke:

46
 ""

"5
 3"

#t
 )n

1t
 ),

S-Blöcke:

 ge
34

 nt
68

0

Python 3

Fläche - 484

Leerzeichen ersetzt durch %. Es gibt einige Kommentare, die als Auffüllung verwendet werden. Ein bisschen Code-Wiederholung. Kann ziemlich kompliziert sein.

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#
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.