Viết mã cho ba nhiệm vụ


8

Khi bạn chạy chương trình của mình trước, nó sẽ in một chuỗi số nguyên. Lần chạy thứ hai nên in bài hát "Mary có một chú cừu nhỏ". Lần chạy thứ ba sẽ tạo ra một tệp hình ảnh ASCII.

Chấm điểm

Điểm của bạn sẽ là tổng số byte mã của bạn và bất kỳ nội dung tệp nào khi bắt đầu mỗi 3 lần chạy. Điểm số thấp nhất chiến thắng.

Ví dụ, myproglà 1500 byte và không thay đổi kích thước của nó, nhưng ghi một tệp 4 byte mỗi lần chạy để nó biết phải làm gì trong lần chạy tiếp theo. Điểm sẽ là 1500 + (1500 + 4) + (1500 + 4) = 4508.

Đầu ra

Đầu ra đầu tiên là dãy gồm 133 số nguyên, được phân tách bằng các khoảng trắng đơn:

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

Đầu ra thứ hai là văn bản này chính xác (bao gồm chữ hoa, dấu chấm câu và khoảng trắng - dấu chấm không nhất quán là có chủ ý):

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

Đầu ra thứ ba là hình ảnh này ở định dạng PPM ASCII (P3) còn lại trong một tệp có tên blue.ppm. Đây là hình ảnh ở định dạng PNG:

hình ảnh mục tiêu

Tệp PPM sẽ trông giống như thế này:

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

Có một bản sao của tập tin PPM đầy đủ ở đây .

Chạy ví dụ (trên 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 ...

Quy tắc

  • Mã của bạn có thể tự sửa đổi.
  • Chạy chương trình lần thứ tư là hành vi không xác định.
  • Bạn có thể ghi vào một tệp trong thư mục hiện tại, nhưng kích thước của tệp này sẽ thêm vào điểm của bạn khi bắt đầu mỗi lần chạy. Tệp PPM cuối cùng được loại trừ khỏi đây.
  • Hai đầu ra đầu tiên là stdout (hoặc tương tự). Đầu ra cuối cùng được ghi vào một tệp, không có gì được gửi đến thiết bị xuất chuẩn.
  • Hai đầu ra đầu tiên có thể tùy chọn có một ký tự khoảng trắng ở đuôi (ví dụ: khoảng trắng hoặc nguồn cấp dữ liệu).
  • Bạn không thể sử dụng thư viện nén hoặc hình ảnh. Bạn có thể sử dụng chức năng nén hoặc hình ảnh của riêng mình nhưng mã này phải được đưa vào chương trình của bạn.
  • Các sơ hở tiêu chuẩn đều bị cấm.

1
Vấn đề lớn! Đã học được khá nhiều điều mới trong khi giải quyết nó.
Anmol Singh Jaggi

Tập tin PPM cần phải có 256 bước màu hay chỉ có thể tạo cùng một hình ảnh?
Oberon

Tập tin đầu ra hình ảnh có phải chính xác như tập tin được đề cập trong câu hỏi hoặc có thể có sự khác biệt về khoảng trắng không? Điều này rất quan trọng đối với câu trả lời của tôi vì tôi đã đặc biệt quan tâm rằng các dòng mới được chèn vào đúng chỗ mỗi lần.
Anmol Singh Jaggi

@Oberon và Anmol Singh Jaggi, PPM phải ở định dạng P3 và hiển thị hình ảnh chính xác giống như PNG khi xem. Độ sâu bit, khoảng trắng bên trong tùy thuộc vào bạn, nhưng nó phải là một tệp hợp lệ.
Logic Knight

Câu trả lời:


9

Con trăn (897 + 814 + 386 = 2097)

Câu trả lời tự sửa đổi đơn giản. Tôi sẽ phải tinh chỉnh lần chạy thứ hai sau.

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)

Ngoài ra, nếu chạy lần thứ tư, nó sẽ xuống NOP một cách an toàn:

'.join(x.read().split('#')[1:]);x.seek(0);x.truncate();x.write(y)

Điều đó sẽ khó bị đánh bại. Tôi đã tự hỏi khi một số mã tự sửa đổi lén lút sẽ xuất hiện ;-)
Logic Knight

11

Ruby, 1356 1268 * 3 = 3804 byte

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

Để theo dõi lời mời, tôi đang tạo một tệp trống atrong lần chạy đầu tiên và một tệp trống bở lần chạy thứ hai.

  • Chương trình đầu tiên sử dụng một thuộc tính nhất định của các số.
  • Chương trình thứ hai sử dụng một loạt các phần có thể tái sử dụng của các câu thơ, nhưng hiện tại chỉ tiết kiệm được 100 byte so với việc in một cách ngây thơ toàn bộ.
  • Chương trình thứ ba hiện chỉ sử dụng mã hóa độ dài chạy đơn giản. Tôi sẽ xem xét thực sự mã hóa đường dẫn của dòng sau.

1
Giải pháp tốt đẹp, đặc biệt là các con số (đó là một vấn đề toán học nhiều hơn). Bạn có thể lưu một vài byte nếu bạn thay thế i.to_s.chars.map(&:to_i).reduce(:+)bằng(j=i.to_s).sum-48*j.size
blutorange

@blutorange Ồ, thật gọn gàng. :) Tôi vẫn muốn xem lại thế hệ hình ảnh. Tôi sẽ làm việc đề xuất của bạn vào nó khi tôi làm.
Martin Ender

Bạn chỉ cần giữ một phần của tệp nguồn của mình cho lần chạy thứ 2 và thứ 3 nhưng có lẽ nó không thu được nhiều vì phần lớn nhất là phần 3 hiện tại. Với mã hóa chiều dài chạy, các hàng được mã hóa theo chiều dài chạy, bạn có thể cải thiện phần 3 rất nhiều.
Randomra

2

Trăn 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))

Sử dụng OEIS A166370 cho các số, một số nén bằng tay cho các byte Mary và LambII của Mary để lưu trữ số lượng số trong PPM.

(Ab) sử dụng tính năng của Python để chỉ đánh giá giá trị thứ hai cho các toán tử logic nếu chưa biết kết quả (ngắn mạch): 1 or code0 and codekhông đánh giá code. Sau đó, sử dụng một số thay thế để thay đổi 0 orthực thi mã cho phép để một 0 andvà tiếp theo 1 orđến 0 or.

Việc thực hiện thứ 3 giết chết người thay thế thứ hai, vì không còn nữa 1 or. Việc thực thi thứ 4 giết chết thay thế đầu tiên, sau đó mã về cơ bản không có gì.


2

C ++, 1204 * 3 = 3612 byte

Trình biên dịch được sử dụng - GCC 4.9.2 với -std=c++14cờ

#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++;}}}

Giải trình -:

#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++;
        }
    }
}

1

PHP (1552 * 3) +2 = 4658

Có rất nhiều golf có thể được thực hiện.

Mã này ghi 1 byte vào một tệp khác được gọi z, để kiểm tra trạng thái.

Đây là mã:

<?$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);}

Tôi biết rằng đây là một mã RẤT khủng khiếp và tôi có thể thử đánh gôn vào danh sách.

Nhưng này, tôi không thể tìm thấy một mô hình trên đó: /


Tôi có thể thấy rằng bạn đã nén hình ảnh ở dòng cuối cùng và giảm thiểu kích thước của bài hát lamb trên các dòng khác, nhưng tôi không thể thấy chuỗi số nguyên nằm ở đâu. Tôi cần một số hướng dẫn.
Hiệp sĩ logic

@CarpetPython Nén thêm. Đây là phần cuối cùng.
Ismael Miguel

Cảm ơn. Nếu bạn đang tìm kiếm mẫu trong chuỗi số nguyên, một số câu trả lời khác có thể cung cấp cho bạn một số manh mối. ví dụ: các chữ số của các số có một thuộc tính thú vị.
Logic Knight

@CarpetPython Tôi không phải là một con mèo sao chép. Nhưng tôi đã xem qua các câu trả lời khác, nhưng vẫn không thể tìm thấy mô hình.
Ismael Miguel

1

Ruby, 691 + 612 + 225 = 1528 byte

Một câu trả lời tự sửa đổi, lần này là trong ruby. Tôi vừa va vào chuyện này ngày hôm qua và việc nén bài thơ đã lọt vào mắt tôi. Tôi chỉ có thể lưu 92 byte khỏi suy nghĩ văn bản thô.

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]!@

Mỗi lần chạy chương trình viết lại chương trình cho lần chạy tiếp theo. Tôi đã không tìm ra tài sản đặc biệt của các con số cho đến khi xem qua các câu trả lời khác. Và đã lấy cảm hứng tương tự câu trả lời của Martin nhưng tôi đã không sử dụng gợi ý từ blutorange vì tôi không thể hiểu tại sao nó lại hiệu quả.

Có lẽ có thêm một vài byte để nhặt rác từ bài thơ nhưng không nhiều. Về cơ bản, nó chỉ là thay thế trong các trình tự phổ biến và đang sử dụng thứ tự của trình tự làm phần để thay thế.

Đối với phần cuối cùng, tôi đã mã hóa tất cả 255 byte thành một mảng và dán chúng cùng với các số không. Và sau đó tôi mã hóa các chuỗi lặp lại trong mảng đó.


0

JavaScript + HTML, 3909 byte

Đây là một ứng dụng HTML / JavaScript sử dụng tải lại trang để chạy lại các tệp. Tôi đã ủng hộ phân tích PPM. Nếu bạn biết cách đọc các tệp PPM, xin vui lòng cho tôi biết. Stack Exchange không cho phép lưu trữ cục bộ. Vì vậy, bạn sẽ phải chạy JSFiddle.

Một lần nữa, tôi biết tôi đã đánh bom tập tin ppm.

Nhưng cuối cùng:

JavaScript : 1,232 byte * 3 = 3696

HTML : 71 byte * 3 = 213

Tổng cộng : 3909

Câu đố

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>


Xin chào @Neoaptt và chào mừng bạn đến với PPCG. Bạn có thể cần phải đọc kỹ câu hỏi để đảm bảo câu trả lời của bạn đáp ứng yêu cầu. Chuỗi số nguyên của bạn không khớp với chuỗi yêu cầu và hình ảnh không được ghi vào một tệp ở định dạng PPM. Điểm của câu hỏi là thách thức bạn lưu trữ ba đầu ra theo cách nén bên trong chương trình của bạn, bằng cách khai thác các mẫu. Ngoài ra, không phải việc tải xuống các tệp từ mạng là một trong những 'lỗ hổng tiêu chuẩn' bị cấm trong câu hỏi.
Hiệp sĩ logic

Bạn có thể đọc những sơ hở này tại meta.codegolf.stackexchange.com/questions/1061/ .
Logic Knight
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.