Python + Piet one-liners: 417 ký tự + 7391 7107 mã hóa thực thi
Kịch bản Python này tạo ra hình ảnh 7393 x 2; khối 2x2 ngoài cùng bên phải là "sentinel" kết thúc chương trình; vì vậy tôi không tính những thứ đó; và hàng thứ hai có màu trắng. Tôi có thể đánh golf mã piet xuống hơn nữa bằng cách sử dụng các chuỗi cộng / trừ / nhân thay vì thuật toán nhị phân ngây thơ ... nhưng tôi không muốn đưa ra một giải pháp cho câu đố trong tương lai.
Tôi sẽ không đăng hình ảnh ở đây, vì kích thước lố bịch của nó. Nếu bạn muốn xem nó, hãy chạy mã python và chuyển đầu ra thành tệp .ppm. Sau đó, chuyển đổi .ppm thành .gif và chạy đầu ra tại Rapapaing . (cách khác, sử dụng một trình thông dịch Piet không phải web mà mò mẫm .ppm)
A='P=lambda A:reduce(lambda(D,H,B),P:(D[P/3:]+D[:P/3],H[P%3*2:]+H[:P%3*2],B+"".join("%i "%H[(D[0]/P)%2]for P in[1,2,4])),map(" A ! @ B".find,A),([1,3,2,6,4,5],[0,192,192,255,0,255],"P3 %i 2 255 "%(len(A)+2)))[2]+"255 "*4+"0 0 "+"255 "*len(A)*3+"255 0 0 "*2;B=lambda D:["@!%s","@@!%s!"][D%2]%B(D/2)if 1<D else"";print P("".join("A%sB"%B(ord(D))for D in"A=%s;exec A[:-13]"%`A`)+" ");exec A[:-13]';exec A[:-13]
chỉnh sửa: đánh golf piet một chút bằng cách giảm trọng lượng Hamming của tên biến.
ít golfed trước Quine :
Đây là phiên bản trước, trước khi tôi nhận ra tôi có thể biến nó thành một lớp lót. Nó dễ hiểu hơn một chút. Hàm P dịch một tập lệnh đặc biệt thành Piet; và hàm p lấy một số nguyên và tạo một chuỗi các hướng dẫn để tạo số nguyên đó trên ngăn xếp. Tôi chỉ sử dụng các hướng dẫn =,+,:,|
, vì vậy điều này có thể có thể được thực hiện hiệu quả hơn ... nhưng tôi giống như có một trình biên dịch hoàn chỉnh (trong các loại) trong nguồn.
s="""def P(s):
l=len(s)+1;R="P3 %i 2 255 "%(l+2);C=[1,3,2,6,4,5];V=[0,192,192,255,0,255]
for x in map("=|^+-*/%~>.,:@$?#!".find,"="+s):
C=C[x//3:]+C[:x//3];V=V[x%3*2:]+V[:x%3*2]
for i in [1,2,4]:R+="%i "%V[(C[0]//i)%2]
return R+"255 "*4+"0 0 "+"255 "*l*3+"255 0 0 "*2
p=lambda x:[":+%s","::+%s+"][x%2]%p(x/2)if x/2 else""
print P("".join("|%s!"%k(ord(c))for c in "s="+`s`+";exec s[:-13]"))
exec s[:-13]"""
exec s[:-13]
1
là một quine trong một số ngôn ngữ. Vì vậy, bạn có thể nói đó là chương trình J in chương trình Golfscript in ...... và cứ thế.