Code für drei Aufgaben schreiben

8

Wenn Sie Ihr Programm zuerst ausführen, sollte es eine ganzzahlige Sequenz drucken. Der zweite Durchgang sollte das Lied "Mary hatte ein kleines Lamm" drucken. Der dritte Lauf sollte eine ASCII-Image-Datei erzeugen.

Wertung

Ihre Punktzahl ist die Summe Ihrer Code-Bytes und des gesamten Dateiinhalts zu Beginn jedes der drei Läufe. Die niedrigste Punktzahl gewinnt.

Zum Beispiel myprogist es 1500 Byte und ändert seine Größe nicht, schreibt aber bei jedem Lauf eine 4-Byte-Datei, damit es weiß, was beim nächsten Lauf zu tun ist. Die Punktzahl wäre 1500 + (1500 + 4) + (1500 + 4) = 4508.

Ausgabe

Die erste Ausgabe ist diese Folge von 133 Ganzzahlen, die durch einzelne Leerzeichen getrennt sind:

0 89 98 179 188 197 269 278 287 296 359 368 377 386 395 449 458 467 476 485
494 539 548 557 566 575 584 593 629 638 647 656 665 674 683 692 719 728
737 746 755 764 773 782 791 809 818 827 836 845 854 863 872 881 890 908
917 926 935 944 953 962 971 980 1079 1088 1097 1169 1178 1187 1196 1259
1268 1277 1286 1295 1349 1358 1367 1376 1385 1394 1439 1448 1457 1466 1475
1484 1493 1529 1538 1547 1556 1565 1574 1583 1592 1619 1628 1637 1646 1655
1664 1673 1682 1691 1709 1718 1727 1736 1745 1754 1763 1772 1781 1790 1808
1817 1826 1835 1844 1853 1862 1871 1880 1907 1916 1925 1934 1943 1952 1961
1970

Die zweite Ausgabe ist genau dieser Text (einschließlich Großbuchstaben, Interpunktion und Leerzeichen - die inkonsistente Interpunktion ist beabsichtigt):

Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow

And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go

It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.

It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school

Die dritte Ausgabe ist dieses Bild im PPM ASCII (P3) -Format, das in einer aufgerufenen Datei verbleibt blue.ppm. Dies ist das Bild im PNG-Format:

Zielbild

Die PPM-Datei sollte ungefähr so ​​aussehen:

P3 50 50 255
255 255 255 255 255 255 255 255 255 255 255 255 ...
...
255 255 255

Hier finden Sie eine Kopie der vollständigen PPM-Datei .

Beispiellauf (unter Linux)

# ls
myprog
# interpreter myprog
0 89 98 179 188 197 269 278 287 296 359 ...
# interpreter myprog
Mary had a little lamb,
Little ...
# interpreter myprog
# ls
blue.ppm
myprog
# cat blue.ppm
P3 50 50 255
255 255 255 255 255 ...

Regeln

  • Ihr Code kann sich selbst ändern.
  • Das vierte Ausführen des Programms ist ein undefiniertes Verhalten.
  • Sie können in eine Datei im aktuellen Verzeichnis schreiben, aber die Größe dieser Datei erhöht Ihre Punktzahl zu Beginn jedes Laufs. Die endgültige PPM-Datei ist davon ausgeschlossen.
  • Die ersten beiden Ausgänge sind stdout (oder ähnlich). Die letzte Ausgabe wird in eine Datei geschrieben, ohne dass etwas an stdout gesendet wird.
  • Die ersten beiden Ausgänge können optional ein nachfolgendes Leerzeichen (z. B. Leerzeichen oder Zeilenvorschub) haben.
  • Sie dürfen keine Komprimierungs- oder Bildbibliotheken verwenden. Sie können Ihre eigenen Komprimierungs- oder Bildfunktionen verwenden, dieser Code muss jedoch in Ihrem Programm enthalten sein.
  • Die Standardlücken sind verboten.
Logikritter
quelle
1
Tolles Problem! Ich habe beim Lösen einige neue Dinge gelernt.
Anmol Singh Jaggi
Muss die PPM-Datei 256 Farbschritte haben oder sollte sie nur das gleiche Bild erzeugen können?
Oberon
Muss die Bildausgabedatei genau der in der Frage genannten entsprechen oder kann es Unterschiede bei den Leerzeichen geben? Dies ist für meine Antwort von entscheidender Bedeutung, da ich besonders darauf geachtet habe, dass die Zeilenumbrüche jedes Mal an der richtigen Stelle eingefügt werden.
Anmol Singh Jaggi
@Oberon und Anmol Singh Jaggi, das PPM muss im P3-Format vorliegen und beim Betrachten genau das gleiche Bild wie das PNG zeigen. Die Bittiefe und der interne Leerraum liegen bei Ihnen, es muss sich jedoch um eine gültige Datei handeln.
Logic Knight

Antworten:

9

Python (897 + 814 + 386 = 2097)

Einfache selbstmodifizierende Antwort. Ich muss den zweiten Lauf später verfeinern.

def p(x):print x,
map(p,[0]+filter(lambda x:sum(map(int,`x`))==17,range(1971)))
#l="ittle lamb,";M="Mary ";w=M+"went";e="verywhere that "+w;s="chool one day";I="It followed her to s"+s+"\n";j="augh and play";i="It made the children l"+j;print M+"had a l"+l+"\nL"+l+" l"+l+"\n"+M+"had a l"+l+"\nIts fleece was white as snow\n\n"+"And e"+e+",\n"+w+", "+w+",\nE"+e+"\nThe lamb was sure to go\n\n"+I+"S"+s+", s"+s+"\n"+I+"Which was against the rules.\n\n"+i+",\nL"+j+", l"+j+",\n"+i+"\nTo see a lamb at school"
#print>>file("blue.ppm","w"),"P3 50 50 255"+' '.join(" %i"%(255-255*any(a<y<b and x==c or y==d and e<x<f for a,b,c,d,e,f in[(2,48,2,47,2,37),(9,48,36,9,27,37),(9,41,28,40,9,29),(0,41,10,1,9,49),(0,37,48,36,14,49),(2,37,15,3,2,16)]))*2+" 255"for x in range(50)for y in range(50))
import sys;x=file(sys.argv[0],"r+");y='#'.join(x.read().split('#')[1:]);x.seek(0);x.truncate();x.write(y)

Wenn es zum vierten Mal ausgeführt wird, wird es außerdem sicher zu einem NOP:

'.join(x.read().split('#')[1:]);x.seek(0);x.truncate();x.write(y)
Oberon
quelle
Das wird schwer zu schlagen sein. Ich habe mich gefragt, wann ein hinterhältiger, sich selbst modifizierender Code erscheinen würde ;-)
Logic Knight
11

Ruby, 1356 1268 * 3 = 3804 Bytes

if File.file?(?b)
s='P3
50 50
255
'
d=e=0
[153,44,6,1,42,1,6,1,42,1,6,1,42,1,6,1,42,1,6,1,42,1,6,1,42,1,4,40,5,1,4,1,1,1,36,1,5,1,4,1,1,1,36,1,5,1,4,1,1,1,36,1,5,1,4,1,1,1,36,1,5,1,4,1,1,34,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,34,1,3,1,5,1,4,1,8,31,5,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,1,25,1,9,1,4,1,8,37,4,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,1,34,1,14,36,63].map{|n|n.times{s+=[" 255 255 255"," 0 0 255"][d];s+=$/if (e+=1)%50==0};d=1-d}
File.write 'blue.ppm',s
elsif File.file?(?a)
puts [["","Mary had a ","little lamb",?,,?,,"Its fleece was white as snow"],["And ","everywhere that ","Mary went",?,,'',"The lamb was sure to go"],["","It followed her to ","school one day",'','',"Which was against the rules."],["","It made the children ","laugh and play",?,,'',"To see a lamb at school"]].map{|a,b,c,d,e,f|[a+b+c+d,c.capitalize+', '+c+d,b.capitalize+c+e,f]*$/}*"

"
`touch b`
else
1971.times{|i|$><<"#{i} "if i.to_s.chars.map(&:to_i).reduce(:+)%17<1}
`touch a`
end

Um den Aufruf zu verfolgen, erstelle ich abeim ersten Lauf eine leere Datei bund beim zweiten Lauf eine leere Datei .

  • Das erste Programm verwendet eine bestimmte Eigenschaft der Zahlen.
  • Das zweite Programm verwendet eine Reihe wiederverwendbarer Teile der Verse, aber das spart derzeit nur 100 Bytes beim naiven Drucken des gesamten Dings.
  • Das dritte Programm verwendet derzeit nur eine einfache Lauflängencodierung. Ich werde später untersuchen, wie der Pfad der Zeile tatsächlich codiert wird.
Martin Ender
quelle
1
Gute Lösung, besonders die Zahlen (was eher ein mathematisches Problem ist). Sie könnten ein paar Bytes speichern , wenn Sie ersetzen i.to_s.chars.map(&:to_i).reduce(:+)mit(j=i.to_s).sum-48*j.size
Blutorange
@blutorange Oh, das ist ordentlich. :) Ich möchte die Bilderzeugung noch einmal besuchen. Ich werde Ihren Vorschlag einarbeiten, wenn ich es tue.
Martin Ender
Sie müssen nur einen Teil Ihrer Quelldatei für den 2. und 3. Lauf behalten, aber vielleicht ist es nicht so viel Gewinn, da der größte Teil derzeit Teil 3 ist. Mit der Lauflängencodierung der lauflängencodierten Zeilen können Sie Teil 3 erheblich verbessern.
Randomra
2

Python 3, 1027 + 1028 + 1029 = 3084

0 or print('0 '+' '.join(str(i)for i in range(1971)if sum(map(int,str(i)))==17))
1 or print("""+$,
L$, l$,
+$,
Its fleece was white as snow

And e(@,
@, @,
E(@
The!was sure to go

#&
S&, s&
#&
Which was against the rules.

%l/,
L/, l/,
%l/
To see a!at school""".translate({43:'Mary had a l',36:'ittle lamb',40:'verywhere that ',64:'Mary went',35:'It followed her to s',38:'chool one day',47:'augh and play',37:'It made the children ',33:' lamb '}))
q=[153,44]+[e-63for e in b'E@i@E@i@E@i@E@i@E@i@E@i@CgD@C@@@c@D@C@@@c@D@C@@@c@D@C@@@c@D@C@@aB@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@a@B@D@C@G^D@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@G@X@H@C@GdC@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@M@a@Mc~?']
1 or open("blue.ppm","w").write("P3\n50 50\n255\n"+' '.join(q[r*2]*'255 255 255 '+q[r*2+1]*'0 0 255 'for r in range(140)).strip())
f=open(__file__);l=f.read();f.close();open(__file__,"w").write(l.replace("0 or","0 and",1).replace("1 or","0 or",1))

Verwendet OEIS A166370 für die Zahlen, eine handgeschriebene Komprimierung für Mary's Lamb und ASCII-Bytes, um die Anzahl der Zahlen im PPM zu speichern.

(Ab) verwendet die Python-Funktion, um den zweiten Wert für logische Operatoren nur auszuwerten, wenn das Ergebnis noch nicht bekannt ist (Kurzschluss): 1 or codeund 0 and codenicht auszuwerten code. Verwendet dann einige Ersetzungen, um die 0 orAusführung des Aktivierungscodes in a 0 andund next neben 1 orzu ändern 0 or.

Die dritte Ausführung beendet den zweiten Ersatz, da es keine mehr gibt 1 or. Die 4. Ausführung beendet das erste Ersetzen, wonach der Code im Grunde nichts mehr tut.

PurkkaKoodari
quelle
2

C ++, 1204 * 3 = 3612 Bytes

Verwendeter Compiler - GCC 4.9.2 mit -std=c++14Flag

#include<bits/stdc++.h>
int i,j,c;
using namespace std;int main(){fstream f("F"),g("G");if(!f){while(i<=1970){j=i,c=0;while(j)c+=j%10,j/=10;if(c==17||i==0)cout<<i<<" ";i++;}ofstream f("F");}else if(f&&!g){cout<<R"(Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow

And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go

It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.

It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school)";ofstream g("G");}else{ofstream F("blue.ppm");F<<"P3 50 50 ";vector<int> L={1,2,4,10,13,16,19,25,28,43,76,103,109,127,190,460};vector<string> R={"1","?","43","10","6","161=","1","14","39","10","4","1514121<","1","151412","33","10","12","1315141;","1","13151417","30","10","1","1514171","7",":1814171","36","01","1","41","11",";191","35","01","1",">"},C={"255","0"};string r;i=j=0;while(i<R.size()){stringstream S(R[i]);S>>c;while(c--)r+=R[i+1];i+=2;}i=0;while(i<r.size()){c=L[r[i]-48];while(c--){F<<C[j]<<" ";}j=1-j;i++;}}}

Erklärung -:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    fstream f( "F" ), g( "G" ); // Creating empty files so that the program can decide when to run which task

    /**************************** TASK 1 ****************************/

    if ( !f ) // Print all the numbers within the range whose sum of digits is 17
    {
        for ( int i = 0; i <= 1970; i++ )
        {
            int j = i, c = 0;
            while ( j )
            {
                c += j % 10, j /= 10;
            }
            if ( c == 17 || i == 0 )
            {
                cout << i << " ";
            }
        }       
        ofstream f( "F" );
    }

    /**************************** TASK 2 ****************************/

    else if ( f && !g )  // Print the second task as it is using raw literals
    {
        cout << R"(Mary had a little lamb,
Little lamb, little lamb,
Mary had a little lamb,
Its fleece was white as snow

And everywhere that Mary went,
Mary went, Mary went,
Everywhere that Mary went
The lamb was sure to go

It followed her to school one day
School one day, school one day
It followed her to school one day
Which was against the rules.

It made the children laugh and play,
Laugh and play, laugh and play,
It made the children laugh and play
To see a lamb at school)";

        ofstream g( "G" );
    }

    /**************************** TASK 3 ****************************/

    else // Third task using Run-Length encoding
    {
        ofstream F( "blue.ppm" );
        F << "P3 50 50 ";

        /*
        L = set of all the lengths found during run-length encoding.
        R = vector containing the run-length encoding of "255" and "0" alternatingly.
                {1,"?") means 1 times print '255'/'0' "x" number of times where x = L[ASCII(?)-48] = L[15] = 469
        C = vector containing the two strings to be printed alternatingly.
        */

        vector<int> L = {1, 2, 4, 10, 13, 16, 19, 25, 28, 43, 76, 103, 109, 127, 190, 460};
        vector<string> R = {"1", "?", "43", "10", "6", "161=", "1", "14", "39", "10", "4", "1514121<", "1", "151412", "33", "10", "12", "1315141;", "1", "13151417", "30", "10", "1", "1514171", "7", ":1814171", "36", "01", "1", "41", "11", ";191", "35", "01", "1", ">"};
        vector<string> C = {"255", "0"};
        string r; // Contains the normal/expanded version of R
        i = j = 0;

        while ( i < R.size() ) // Expanding "R" into normal form and putting it into "r"
        {
            stringstream S( R[i] );
            S >> c; // Convert R[i] to its integer representation and put it in "c" with the help of stringstream.
            while ( c-- )
            {
                r += R[i + 1];
            }
            i += 2;
        }

        i = 0;
        while ( i < r.size() )
        {
            c = L[r[i] - 48];  // "c" is the number of times the current character has to be printed consecutively.
            while ( c-- )
            {
                F << C[j] << " ";
            }
            j = 1 - j; // Alternate "255" and "0"
            i++;
        }
    }
}
Anmol Singh Jaggi
quelle
1

PHP (1552 * 3) +2 = 4658

Es gibt eine Menge Golf, die gemacht werden kann.

Der Code schreibt 1 Byte in eine andere aufgerufene Datei z, um den Status zu überprüfen.

Hier ist der Code:

<?$Y=base64_decode;$Z=gzdecode;$r=file_put_contents;switch(include z){case 2:$M=Mary;$l=lamb;$L=ittle;$H="$M had a l$L $l,";echo"$H
L$L $l, l$L $l,
$H
Its fleece was white as snow
";$W="$M went";$H="verywhere that $W";echo"
And e$H,
$W, $W,
E$H
The $l was sure to go
";$S=chool;$O="$S one day";$I="
It followed her to s$O";echo"$I
S$O, s$O$I
Which was against the rules.";$L="augh and play";$I="
It made the children l$L";echo"$I,
L$L, l$L,$I
To see a $l at s$S";$r(z,3);break;case 3:$r($Z($Y("H4sIAAAAAAAAA+3ay63CMBSE4X2qSAkRKH3QfzXAmkf8mBOfiX9dRXcBfIJ47Ewwj/uyb+u+Lbd9fx+r4gACAgICApoO2l5/Jf+X0icCfT4gG7ka0DSQQMdPOopB9bv5BpqeG6D2F8tjQK6AImJAroAiYkCugCJiQK6AemKQ51bWF+oaxe6Rk2DhAQUKjIIEIU9Xg8gTkBIiT0BKKG+e8nXMcVBRDFr3oyQIq4ADVLW1JNnfbEYkafYcJR+oatZLtrebEfluPVAAVDNKkn3yZoQfazhAvXkaW4WNTvQkEIUcSAlRyIGUEIUcSApRyIGUEIUcSAlRyIGUEIUcSAlRyH+/w/H7qudDXUHMf+nhpq4NGlM28196KOFtx5iy6XPpyTdiyaEhZdPg3p0S3gaN+baOAnVViAKV6bz4QxSoTOflAhAF6v95yfdVTT7otOEPCSNQ+Sgl/1jc9RhAhrOfux8HyG/2Gy6xE0J+v+AyXGInhAxnv98SOyFkOPspWA6Q3+w3XGInhChYQBGQ4ez3W2InhAxnPwXLAfKb/RfYvQqH8o0aENBJ0BPXPoC/PXEAAA==")),'blue.ppm');$r(z,1);break;default:echo$Z($Y("H4sIAAAAAAAAAxXSuQHAMAwCwFUYIehF+y8WXCWWaDj7gw4ncA+Uv7eIOcQKIf/fIPuQI+QuUj5fo+pQLdQsagclz67QeegSuhc9g95Gy/NLTBwmhanF9GCmMVsYeXeB5WFD2FxsDbYbO4XdxMr7I/QdREGxUA5UDXVBk9AGJGfuw33CcXExuGxcFa4TN4FbuvIHfq/091p/rk26N+nipN7R1RnuznB5htsz9GbuzzQA0wJMEzBtwNRbWIFlBpYdWIZgWYJlCpbe1hhsa7DNwbYH2yBsi7BNwtaLGIVjFY5ZOHbhGIZjGY5pOLbh6OWswzUPl+8+DcS1ENdEXBtxjcS1kku+sJ0oQ1GWokxF2YoyFmUtylzG4HsbDt/n3NG5C+cunbty7tq5G7738/3WJLxlVAIAAA=="));$r(z,2);}

Ich weiß, dass dies ein SEHR schrecklicher Code ist und ich kann versuchen, die Liste zu spielen.

Aber hey, ich kann kein Muster dafür finden: /

Ismael Miguel
quelle
Ich kann sehen, dass Sie das Bild in der letzten Zeile komprimiert und die Größe des Lammlieds in den anderen Zeilen minimiert haben, aber ich kann nicht sehen, wo sich die ganzzahlige Sequenz befindet. Ich brauche eine Anleitung.
Logic Knight
@CarpetPython Mehr Komprimierung. Es ist der letzte Teil.
Ismael Miguel
Vielen Dank. Wenn Sie nach dem Muster in der Ganzzahlfolge suchen, geben Ihnen einige der anderen Antworten möglicherweise Hinweise. Beispiel: Die Ziffern der Zahlen haben eine interessante Eigenschaft.
Logic Knight
@CarpetPython Ich bin keine Nachahmerin. Aber ich habe mir die anderen Antworten angesehen, konnte das Muster aber immer noch nicht finden.
Ismael Miguel
1

Ruby, 691 + 612 + 225 = 1528 Bytes

Eine weitere selbstmodifizierende Antwort, diesmal in Rubin. Ich bin gestern gerade darauf gestoßen und die Komprimierung des Gedichts ist mir aufgefallen. Ich konnte nur 92 Bytes aus dem Rohtextgedanken sparen.

puts (0..1970).select{|i|eval(i.to_s.gsub /\B/,'+')%17<1}*' '
File.write $0,%@
m='lamb:little 0,:Mary :2had a 1:2went:laugh and play:It made the children 5:It followed her to 10: was : that :11 one day:school:everywhere:3
1 1
3
Its fleece8white as snow

And 1294,
4, 4,
1294
The 08sure to go

7
10, 10
7
Which8against the rules.

6,
5, 5,
6
To see a 0 at 11'
12.downto(0){|i|m.gsub! i.to_s,m.split(':')[i]}
puts m.split(':')[13].gsub /^./,&:upcase
File.write $0,%!a=[1]
s=[16,13]
File.write 'blue.ppm',(' P3
50 50 '+[460,a*43,[19,127]*6,13,a*39,[s,4,109]*4,s,4,a*33,10,s,[103,10,s]*12,25,a*30,s,25,[76,28,13,25]*7,a*36,13,[103,43]*11,a*35,190].flatten.map{|i|('255 '*i)+'0 0 '}*' ')[1..-6]!@

Bei jedem Programmlauf wird das Programm für den nächsten Lauf neu geschrieben. Ich habe die besondere Eigenschaft der Zahlen erst herausgefunden, als ich mir die anderen Antworten angesehen habe. Und nahm die gleiche Inspiration Martins Antwort, aber ich habe den Vorschlag von blutorange nicht verwendet, weil ich nicht herausfinden konnte, warum es funktionierte.

Es gibt wahrscheinlich noch ein paar Bytes, die aus dem Gedicht entfernt werden müssen, aber nicht viel. Es handelt sich im Grunde genommen nur um Subbing in gängigen Sequenzen und verwendet die Reihenfolge der Sequenz als zu ersetzendes Teil.

Für den letzten Teil habe ich alle 255 Bytes in ein Array codiert und sie mit den Nullen zusammengeklebt. Und dann habe ich die sich wiederholenden Sequenzen in diesem Array codiert.

David Horne
quelle
0

JavaScript + HTML, 3909 Bytes

Dies ist eine HTML / JavaScript-Anwendung, die das erneute Laden von Seiten verwendet, um Dateien erneut auszuführen. Ich habe es vermasselt, das PPM zu analysieren. Wenn Sie wissen, wie man PPM-Dateien liest, lassen Sie es mich bitte wissen. Stack Exchange erlaubt keinen lokalen Speicher. Sie müssen also die JSFiddle ausführen.

Wieder weiß ich, dass ich die ppm-Datei bombardiert habe.

Aber am Ende:

JavaScript : 1.232 Bytes * 3 = 3696

HTML : 71 Bytes * 3 = 213

Gesamt : 3909

JSFiddle

var mary = '</br>\
Mary had a little lamb,</br>\
Little lamb, little lamb,</br>\
Mary had a little lamb,</br>\
Its fleece was white as snow</br>\
</br>\
And everywhere that Mary went,</br>\
Mary went, Mary went,</br>\
Everywhere that Mary went</br>\
The lamb was sure to go</br>\
</br>\
It followed her to school one day</br>\
School one day, school one day</br>\
It followed her to school one day</br>\
Which was against the rules.</br>\
</br></br>\
It made the children laugh and play,</br>\
Laugh and play, laugh and play,</br>\
It made the children laugh and play</br>\
To see a lamb at school\
';
var img = '<img src="http://i.stack.imgur.com/sHCba.png"/>'

function run() {
  var step = localStorage.getItem("step");
  step++;
  localStorage.setItem("step", step);
  $('#step').text(step);
  var r = $('#results')
  switch (step) {
    case 1:
      for (var i = 0; i < 133; i++) {
        r.append(i + 1 + ' ');
      }
      break;
    case 2:
      r.html(mary);
      break;
    case 3:
      r.html(img);
      localStorage.setItem("step", 0);
      break;
    default:
      localStorage.setItem("step", 0);
      break;
  }
}
run();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Step: <span id='step'></span>
</label>
<div id='results'></div>

Neoaptt
quelle
Hallo @Neoaptt und willkommen bei PPCG. Möglicherweise müssen Sie die Frage sorgfältig lesen, um sicherzustellen, dass Ihre Antwort den Anforderungen entspricht. Ihre Ganzzahlsequenz stimmt nicht mit der erforderlichen Sequenz überein, und das Bild wird nicht in eine Datei im PPM-Format geschrieben. Der Punkt der Frage besteht darin, Sie herauszufordern, die drei Ausgaben komprimiert in Ihrem Programm zu speichern, indem Sie Muster ausnutzen. Auch nicht, dass das Herunterladen von Dateien aus dem Netzwerk eine der in der Frage verbotenen "Standardlücken" ist.
Logic Knight
Sie können diese Lücken unter meta.codegolf.stackexchange.com/questions/1061/… nachlesen .
Logic Knight