Lý lịch
Đây là một thử thách liên quan đến Halloween.
Như bạn có thể thấy từ thử thách cuối cùng của tôi, tôi khá thích cái mà tôi gọi là hoạt hình nghệ thuật ascii, đó không chỉ là vẽ một mô hình mà còn vẽ một mô hình tiến triển. Ý tưởng này đã đến với tôi sau khi tôi được yêu cầu một vài năm trước để làm sống động một bài thuyết trình (khá buồn tẻ) bằng cách làm cho những con dơi ascii ngẫu nhiên bay trên màn hình vào ngày Halloween. Không cần phải nói tôi thực sự bắt buộc (tôi đã được trả tiền cho nó) nhưng nó khiến tôi nghĩ rằng có nhiều thứ cho cuộc sống hơn những con dơi ngẫu nhiên. Lấy cảm hứng từ điều này tôi muốn đề xuất thử thách này.
Thử thách
Làm một con dơi bay xung quanh mặt trăng.
Đây là một con dơi:
^o^
Đây là mặt trăng:
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Bạn phải hiển thị mọi giai đoạn của chuyến bay dơi (xem đầu ra).
Đầu vào
không ai
Đầu ra
^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
mmm^o^
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
mmm
mmmmmmm^o^
mmmmmmmmm
mmmmmmm
mmm
mmm
mmmmmmm
mmmmmmmmm^o^
mmmmmmm
mmm
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm^o^
mmm
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
^o^mmm
mmm
mmmmmmm
mmmmmmmmm
^o^mmmmmmm
mmm
mmm
mmmmmmm
^o^mmmmmmmmm
mmmmmmm
mmm
mmm
^o^mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
^o^mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
^o^
mmm
mmmmmmm
mmmmmmmmm
mmmmmmm
mmm
Quy tắc
- Không đọc từ các tập tin hoặc trang web bên ngoài
- Bạn có thể gửi một chương trình đầy đủ hoặc một chức năng
- Không gian thêm và / hoặc dòng mới là tốt đối với tôi
- Sơ hở tiêu chuẩn bị cấm như bình thường
- Con dơi phải hoàn thành trở lại trên đỉnh của mặt trăng
- Xin vui lòng xóa màn hình giữa các khung nếu bạn muốn tuy nhiên đây không phải là một yêu cầu. Đầu ra như hình trên là ổn
- Vì đây là mã golf, người chiến thắng sẽ là câu trả lời với số byte thấp nhất mặc dù mọi câu trả lời đều được chào đón
Mẫu vật
Tham chiếu thực hiện trong Python 2 hoàn toàn vô văn hóa (620 byte nhưng chỉ để chứng minh rằng nó có thể được thực hiện. Có thể chơi golf sau).
b='^o^'
m=[' ',
' mmm ',
' mmmmmmm ',
' mmmmmmmmm ',
' mmmmmmm ',
' mmm ',
' ']
p=[(9,12),(12,15),(14,17),(15,18),(14,17),(12,15),(9,12),(6,9),(4,7),(3,6),(4,7),(6,9),(9,12)]
d=0
for z in range(7):
x=map(str,m[z])
c="".join(x[:p[z][0]]) + b + "".join(x[p[z][1]:])+"\n"
print "\n".join(m[:z]) + "\n" + c+"\n".join(m[z+1:])
for z in range(6)[::-1]:
x=map(str,m[z])
c="".join(x[:p[z+6][0]]) + b + "".join(x[p[z+6][1]:])+"\n"
print "\n".join(m[:z]) + "\n" + c+"\n".join(m[z+1:])
Kết quả
Mặc dù @Jonathan rõ ràng giành chiến thắng về số byte với Jelly, tôi sẽ đánh dấu câu trả lời Brainfuck từ @Oyarsa là câu trả lời được chấp nhận hoàn toàn bởi vì tôi nghĩ rằng bất kỳ ai thực sự có thể làm điều gì đó như thế này bằng ngôn ngữ điên rồ đó đều xứng đáng +15 đại diện phải mất bao nhiêu byte. Đây không phải là vì tôi có bất kỳ vấn đề với ngôn ngữ golf. Xem câu trả lời của tôi cho một câu hỏi liên quan đến vấn đề này trên meta nếu bạn có bất kỳ nghi ngờ nào. Rất cám ơn và tôn trọng tất cả những người đã đóng góp bằng bất cứ ngôn ngữ nào.