Jumblers vs Rebuilders: Coding with Tetris Bricks - Area per le risposte di Rebuilder


10

Questa è la domanda complementare a Jumblers vs Rebuilders: codifica con Tetris Bricks in cui i Rebuilders possono pubblicare le loro soluzioni.

Come sostenuto in Dove dovremmo mettere i ladri? consente una maggiore libertà di formattazione per i ladri e consente loro di ottenere rep.

Rispondi a questa domanda solo se hai risolto una risposta non ancora crackata a Jumblers vs Rebuilders: Coding with Tetris Bricks . Includi un link a quella risposta nella tua risposta e un commento in quella risposta che collega alla tua risposta.

La risposta accettata per questa domanda sarà il ricostruttore vincente.

Il tabellone comparirà solo nell'altra domanda .

COTO ha generosamente creato un JSFiddle per manipolare facilmente i mattoni del codice. Ho aggiornato questo violino in modo che ES 6 non sia necessario e l'ho minimizzato per questo frammento di stack:

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

Risposte:


9

Crepa della risposta di 340 aree di xnor

Nessun mumbo-jumbo crittografico per me.

Codice:

10000001111111222
22388892357889356
69968999352143221
80867227952780811
a=23333333444444
b=71122368066667
c=47948316823798
d=79254432699451 
496857235742     
579159386011     
606961806231     
pow(a,b,c)-d     
62656269644465648
67766884711672530
73487440752777431
print('Tetris'*(1
))               
7873806482918808 
8843930593249458 
946095869869     

Mappatura di blocchi su numeri di riga

    #Four spaces 9-12
    #Four spaces 9-12
    #Four spaces 9-12
    #Four spaces 9-12
    #Four spaces 17
    #Four spaces 17
    #Four spaces 17
    #Four spaces 17-20
    #Four spaces 5-8
))  #Two spaces 17
0290 1-4
0398 1-4
0866 1-4
0887 1-4
0892 1-4
0992 1-4
1108 13-16
1268 1-4
1297 1-4
1339 1-4
1555 1-4
1722 1-4
1817 1-4
1848 1-4
1930 1-4
2328 1-4
2521 1-4
2611 1-4
2747 5-8
3179 5-8
3192 5-8
3245 5-8
3284 5-8
3334 5-8
3613 5-8
3862 5-8
4086 5-8
4629 5-8
4639 5-8
4674 5-8
4695 5-8
4781 5-8
4968 9
5723 9
5742 9
5791 10
5938 10
6011 10
6069 11
6180 11 
6231 11
6265 13
6269 13
6444 13
6564 13
6776 14
6884 14 
7116 14
7253 14
7348 15
7440 15 
7527 15
7743 15
7873 17
8064 17 
8291 17
8808 17
8843 18
9305 18
9324 18
9458 18
9460 19
9586 19
9869 19
==== 5-8
a,b, 12
abcd 5-8
c)-d 12
etri 16
pow( 12
prin 16
s'*( 16
t('T 16
four spaces  9-12
four spaces  20

6

Soluzione al puzzle di 212 aree di xnor

print('Tetris'* (3580048039607960824098110131314133014381502228523172479258529553116373838184169‌​435643604632480050165153525653945598563157585840631264256539704571638903974876749‌​009825073297156762481649%38941394))

6

Sandbox Teromino

Pur non essendo una soluzione ipso facto, volevo condividere questo strumento online che ho messo insieme ad altri potenziali ricostruttori. Facilita la manipolazione rapida e senza errori del "codice tetrominos".

Le forme sono specificate usando una semplice griglia di caratteri specnell'elemento. La maggior parte delle risposte dovrebbe essere una semplice copia / incolla di PPCG. Le specifiche di forma predefinite forniscono numerosi esempi. Ho anche incluso le specifiche di forma per la mia risposta C-72 .

Due avvertenze:

  1. le specifiche sono sensibili agli spazi bianchi
  2. alcuni caratteri di controllo HTML potrebbero dover essere sottoposti a escape

I pezzi sono mostrati in diversi colori. Trascinali per spostarli e fai clic per ruotarli. Vai tranquillo.

Chiunque desideri aggiungere miglioramenti, aggiungere nuove specifiche, correggere bug, ecc., È invitato a rovesciare il violino e modificare questa risposta per fornire un collegamento aggiornato.

Buona ricostruzione. :)


C'è qualcosa di strano che devo fare per farlo funzionare? Non fa nulla per me in nessuno dei tre browser che ho installato.
Geobits,

@Geobits: utilizza numerose funzionalità ES6. Lo sto eseguendo nell'ultima FF senza problemi. Fammi testare su Chrome.
COTO,

1
Ha! Apparentemente non aggiorno / uso spesso Firefox. Era la versione 22. Gli ultimi lavori bene.
Geobits,

Chrome 38 sembra soffocare sulle espressioni lambda. Non avevo capito che non poteva gestirli. : O IE sapevo che non potevano gestirli, ma ... chi usa IE. : D
COTO

Ho reso il violino compatibile con Chrome e l'ho inserito in uno snippet Stack nella domanda. Spero non ti dispiaccia.
Calvin's Hobbies,

5

Soluzione alla risposta di 80 aree di es1024

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

4

Soluzione alla presentazione di 72 aree di Gerli

FromCharacterCode[
 {8*10+4, 10*10+1,
 100+16, 10*10+14,
 105, 115}]//Print

C'è un errore nella presentazione però. Nel terzo Tblocco, Gerli "ruotava" il [e {quando ruotava il blocco.

Tutto fatto a mano. È Printstato abbastanza facile da trovare. Poi ho scritto le lettere rimanenti e le ho trovate come un anagramma di FromCharacterCode. Ciò ha posto molte restrizioni all'altezza massima del codice e alla maggior parte dei blocchi. Poiché non c'era @e solo una coppia di staffe, che ha dato via che Printè stata applicata con suffisso notazione (che determina sia la sua posizione e che è preceduto dalla //. Alla fine solo una c'erano Se due Ts sinistra. Il Sstato costretto dal layout e il primo incarico di Ts che ho provato ha funzionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.