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 Tetris
nach 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 Bullen und Räuber . 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 Tetris
an 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 Tetris
auf 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 Tetris
gedruckt 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 a b Oo c oo d E h F efg hg GFE GH f H e I IJK J l L LK kji kl j i t OP p QR rs MN on ST q m W z XY zxw yx Y Z y w 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>
quelle
Antworten:
GolfScript 48
I
Stücke:O
Stücke:T
Stücke:J
Stücke:Lösung
quelle
Java: 360 Bereich
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:
Habe Spaß!
quelle
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.
quelle
Python 3: 212 Bereich [Rebuilt]
Mein Code
I
gliedert sich in die folgenden 53 Teile, die ich alphabetisch pro Zeile geschrieben habe.Habe Spaß!
quelle
print('Tetris'* (3580048039607960824098110131314133014381502228523172479258529553116373838184169435643604632480050165153525653945598563157585840631264256539704571638903974876749009825073297156762481649%38941394))
%3894
?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 sie358UNKNOWN94
gleich sind1
, während ich sie durchUNKNOWN
die Permutation ersetzte . Also habe ich nicht verwendet,%3894
weil 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;)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.
Jedes Stück ist durch zwei Leerzeichen getrennt. Die beiden Hash-Zeichen sind tatsächlich Leerzeichen im Code.
Habe Spaß!
quelle
Javascript, Bereich 420
Nur I-Blöcke.
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:
Es ist also nur ein Aufruf
eval
mit 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
add
Funktion übergeben werden. Wenn es für ein Symbol keine Verschleierung gibt, wird es so übergeben, wie es ist.quelle
C 80 Bereich
Hergestellt aus 12
I
und 8O
Teilen. C-Syntax macht immer Spaß.I
Stücke in keiner bestimmten Reihenfolge:O
Stücke:quelle
main(q){char c[]
={'/T','$"e','t'
,0162,'rIi>`:i',
'?#>s',q<q/**/};
return puts(c);}
CJam, 60 (15 O's)
Lösung
quelle
Befunge, 360 Bereich
90-
O
teilig.Sie können es hier ausprobieren .
quelle
Python 3: 340 Bereich [Rebuilt]
Hergestellt aus 85
I
Teilen, hier in alphabetischer Reihenfolge ein Stück pro Zeile.Als Python-Liste:
quelle
Python 3: 160 Bereich
Nach Feersums Riss habe ich versucht, meinen Code zu verschärfen, um kryptografisches Hokuspokus zu vermeiden. Es besteht aus 40
I
Teilen, eines pro Reihe:Als Python-Liste:
Geändert:
pow
zu nutzen1
‚sIch bin jedoch besorgt über die vielen Faktoren in der Region.
quelle
C - Bereich 72
Blöcke:
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.
quelle
CJam, 80 Bereich
20-
O
teilig.quelle
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
I
Stücke:35
O
Stücke:18
L
Stücke:25
J
Stück:10
T
Stück:4
Z
Stück:8
S
Stück:Lösung
quelle
Wolfram, Bereich 72
Wenn Sie einen Bindestrich (-) sehen, ersetzen Sie ihn durch ein Leerzeichen
ich
j
l
O
s
z
t
quelle
T
Block sollten umgekehrt sein. Ich habe es geschafft, es wieder aufzubauen .MATLAB, Bereich 48
Leider scheint es in Octave nicht zu funktionieren.
quelle
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:
O-Blöcke:
L-Blöcke:
J-Blöcke:
T-Blöcke:
Z-Blöcke:
S-Blöcke:
quelle
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
quelle