Lễ Tạ Ơn


27

Ngày mai, 23/11, là ngày Lễ Tạ ơn ở Hoa Kỳ. Để chuẩn bị, bạn cần nấu một số gà tây ASCII. Tuy nhiên, vì bạn chậm trễ trong kế hoạch, bạn cần một chương trình (hoặc chức năng) để giúp bạn có bao nhiêu con chim bạn cần chuẩn bị.

      .---.   _
    .'     './ )
   /   _   _/ /\
 =(_____) (__/_/==
===================

Những con gà tây bạn tìm thấy khá nhỏ, vì vậy bạn đã tìm ra các tỷ lệ sau - một con gà tây sẽ nuôi:

  • Bốn người chỉ thích thịt trắng và ba người chỉ thích thịt đen
  • hoặc bảy người không quan tâm
  • hoặc kết hợp chúng.

Có nghĩa là, có tổng cộng 4 phần thịt trắng và 3 phần thịt sẫm màu trong bất kỳ con gà tây nào. Hơn nữa, bạn không thể mua và nấu một phần gà tây.

Ví dụ: đối với 3 người chỉ thích thịt trắng, 6 người chỉ thích thịt sẫm màu và 3 người không quan tâm, bạn sẽ cần hai con gà tây. Điều đó mang lại 8 phần trắng và 6 phần tối, đủ để làm hài lòng tất cả mọi người và có một ít thịt trắng còn sót lại:

      .---.   _         .---.   _
    .'     './ )      .'     './ )
   /   _   _/ /\     /   _   _/ /\
 =(_____) (__/_/== =(_____) (__/_/==
=====================================

Đối với 20 người không quan tâm, bạn sẽ cần ba con gà tây và có một chút màu trắng hoặc tối còn sót lại:

      .---.   _         .---.   _         .---.   _
    .'     './ )      .'     './ )      .'     './ )
   /   _   _/ /\     /   _   _/ /\     /   _   _/ /\
 =(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================

Và như vậy.

Quy tắc

  • Ba đầu vào có thể theo bất kỳ thứ tự nào bạn chọn và ở bất kỳ định dạng thuận tiện nào . Vui lòng cho biết trong câu trả lời của bạn làm thế nào đầu vào được thực hiện.
  • Sẽ không bao giờ có yêu cầu cho hơn 25 con gà tây (vì vậy tối đa 175 người để nuôi).
  • Dòng mới hàng đầu / dấu hoặc khoảng trắng khác là tùy chọn, miễn là các ký tự xếp hàng một cách thích hợp.
  • Một chương trình đầy đủ hoặc một chức năng được chấp nhận. Nếu một chức năng, bạn có thể trả lại đầu ra thay vì in nó.
  • Đầu ra có thể là bàn điều khiển, được trả về dưới dạng danh sách các chuỗi, được trả về dưới dạng một chuỗi, v.v.
  • Sơ hở tiêu chuẩn bị cấm.
  • Đây là vì vậy tất cả các quy tắc chơi gôn thông thường đều được áp dụng và mã ngắn nhất (tính bằng byte) sẽ thắng.

tỷ lệ của bạn không hoàn toàn có ý nghĩa với tôi - bạn dường như ngụ ý rằng 7 người không quan tâm chỉ nhận thức ăn thừa, nhưng dường như viết rằng một con gà tây có thể nuôi 3 + 4 + 7 = 14 người (hoặc một người gà tây chỉ có thể đủ để nuôi 3 người ăn thịt sẫm màu).
dzaima

@dzaima Từ các ví dụ, có vẻ như một con gà tây có 4 phần thịt trắng và 3 phần tối. Vì vậy, nó phục vụ (4 người chỉ thích thịt trắng VÀ 3 người chỉ thích thịt đen) HOẶC 7 người không có sở thích.
KSmarts

@KSmarts đó cũng là những gì tôi đang nói trong bình luận của mình, nhưng văn bản không nói rõ điều đó
dzaima

1
Nên đặt gà tây cạnh nhau như thế nào? Dường như không có câu trả lời hiện tại nào có sự trùng lặp mà các ví dụ thực hiện
dzaima

4
Chúng ta có nhận được tiền thưởng cho một giải pháp trong Gà không?
Uriel

Câu trả lời:


21

Befunge-93, 231 224 byte

p&:10p3+4/:&:20p2+3/\-:v
v<0-1:+*`0:-\/7+++&g02<0
>"   _   .---.      "vg`
>"  ) /.'     '.    "v0*
>"  \/ /_   _   /   "v1+
>"==/_/__( )_____(= "v6:
v^0-1 _$"v"000g1+:>v v^<
:#,_$:^1,+55:p+1p00< >>>
_$$99+*"=":>,#:\:#->#1_@

Hãy thử trực tuyến!

Ba giá trị được đọc từ stdin theo thứ tự: thịt trắng, thịt sẫm màu, không quan tâm.


17
Tôi biết tôi không nên đưa ra một thử thách golf mã cho mã được đặt ra một cách nghệ thuật nhưng ... Điều này chỉ xảy ra giống như một con gà tây freakin trong lò nướng, vì vậy +1!
Cấp sông St

1
Tôi nhìn vào câu hỏi và nghĩ rằng "Không có cách nào mã golf có thể làm điều này một cách dễ dàng", và sau đó tôi thấy một con gà tây friggin trong lò đang nấu chín và giải quyết vấn đề.
MechMK1

6

APL (Dyalog) , 120 118 104 byte

14 byte được lưu nhờ vào @ Adám

{,/(⌈⌈/4 3 7÷⍨⍵,⍺++/⍵)/'='⍪⍨' .-_''/)\=('[4 1910 10⊤¯35+⎕UCS'###(##-:77-&(#F*####+,&0N&&)#,N0Z&d++#']}

Hãy thử trực tuyến!

Cái kén chọn màu trắng và tối ở bên phải, không kén chọn bên trái.

Quá tệ, hầu hết số byte được lấy bởi chuỗi hiện tại.

Làm sao?

⍵,⍺++/⍵ - tạo ra mảng của lòng trắng, bóng tối và tổng của tất cả chúng cộng với không kén chọn

4 3 7÷⍨ - chia cho bao nhiêu người trong số họ có được mong muốn từ một con gà

⌈/ - hãy ước tính cao nhất trong ba người - vì vậy nếu chúng ta có lượng người tìm kiếm thịt đen cực kỳ cao, họ sẽ không bị bỏ qua một bên

- trần, trong trường hợp chỉ có một nửa con gà là nhu cầu

Sau đó, chúng tôi tạo ra một chuỗi, kèm theo nó , sau đó lặp lại ma trận bị che khuất số lần gà tính toán với /, và cuối cùng nối tất cả các con gà với ,/.


4
+1 để gọi gà tây gà. Bởi vì đó là những gì họ đang có, gà vinh quang. Vẫn ngon mặc dù.
J. Sallé


'='⍪⍨' .-_''/)\=('[4 19⍴10 10⊤¯35+⎕UCS'###(##-:77-&(#F*####+,&0N&&)#,N0Z&d++#']với ⎕IO←0.
Adám

4

Python 2 , 142 byte

lambda w,d,n:[min(e)+-min(-w/3,-d/4,-(w+d+n)/7)*e.center(18)for e in"  .---.   _"," .'     './ )","/   _   _/ /\\","=(_____) (__/_/==","="*18]

Hãy thử trực tuyến!

-16 byte nhờ Lynn
-4 byte nhờ Mr. Xcoder

và trở lại một lambda xD




2

Than , 76 byte

”{‴∨➙×95;{;C.ÞgF⁷J*←λ|⁸KK][§X⎚¦»Z◧↘gⅉ✳⟧F⎇≧h”×=¹⁹NθNηF⊖⌈⌈⟦∕θ³∕η⁴∕⁺⁺θηN⁷⟧C¹⁸¦⁰

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Giải trình:

”{‴∨➙×95;{;C.ÞgF⁷J*←λ|⁸KK][§X⎚¦»Z◧↘gⅉ✳⟧F⎇≧h”

In một con gà tây thụt lề 1 không gian.

×=¹⁹

In bảng.

NθNη

Nhập số lượng người ăn thịt tối và trắng.

F⊖⌈⌈⟦∕θ³∕η⁴∕⁺⁺θηN⁷⟧

Lặp lại một ít hơn mức trần tối đa của a) một phần ba số người ăn thịt đen b) một phần tư số người ăn thịt trắng c) một phần bảy số lượng thực khách.

C¹⁸¦⁰

Tạo một bản sao của gà tây.


2

VBA Excel, 222 219 211 198 byte

Hàm cửa sổ ngay lập tức VBE ẩn danh lấy đầu vào từ phạm vi [A1:C1]theo thứ tự thịt trắng, thịt sẫm màu và không quan tâm theo thứ tự đó và xuất ra phạm vi [D1].

[D1]=[Int(Max((A1+3)/4,(B1+2)/5,Sum(1:1,6)/7))]:For Each s In Split("      .---.   _   1    .'     './ )  1   /   _   _/ /\  1 =(_____) (__/_/==1",1):[E1]=s:?[Rept(E1,D1)]:Next:?[Rept("=",18*D1+1)]

Ban đầu giải pháp tìm đúng số gà tây và sau đó nó lặp lại mô hình gà tây nhiều lần. Lý tưởng nhất là sau đó sẽ được xuất trực tiếp lên cửa sổ ngay lập tức VBE như được hiển thị bởi chức năng bên dưới

[D1]=[Int(Max((A1+3)/4,(B1+2)/5,Sum(1:1,6)/7))]:For Each s In Split("      .---.   _   1    .'     './ )  1   /   _   _/ /\  1 =(_____) (__/_/==1",1):[E1]=s:?[Rept(E1,D1)]:Next:?[Rept("=",18*D1+1)]

Phiên bản này ban đầu tạo ra phản hồi chính xác, tuy nhiên, nó ngay lập tức được trình biên dịch tự động định dạng, như _là ký tự liên tục dòng, và do đó được di chuyển để chỉ có một ký tự (dấu cách) ở bên trái, phá vỡ mẫu.

Ví dụ hiển thị dưới đây cho rõ ràng

[A1:C1]=Array(0,0,20):[D1].Clear
[D1]=[Int(Max((A1+3)/4,(B1+2)/5,Sum(1:1,6)/7))]:For Each s In Split("      .---.   _   1    .'     './ )  1   /   _   _/ /\  1 =(_____) (__/_/==1",1):[E1]=s:?[Rept(E1,D1)]:Next:?[Rept("=",18*D1+1)]

'' Note that the `_` to the right has moved     V
      .---.   _         .---.   _         .---. _
    .'     './ )      .'     './ )      .'     './ )  
   /   _   _/ /\     /   _   _/ /\     /   _   _/ /\  
 =(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================

Để sửa lỗi này, ký tự khoảng trắng cuối cùng ( , char 32) trước _dòng đầu ra, một trong những đầu ra được thay thế bằng khoảng trắng không phá vỡ (  , char 160, Alt + 255)

      .---.   _         .---.   _         .---.   _   
    .'     './ )      .'     './ )      .'     './ )  
   /   _   _/ /\     /   _   _/ /\     /   _   _/ /\  
 =(_____) (__/_/== =(_____) (__/_/== =(_____) (__/_/==
=======================================================

-3 byte để sử dụng 1câu lệnh phân tách giới hạn

-8 byte để sử dụng di chuyển =vào phần tách và sử dụng phép cộng chuỗi trên nối

-13 byte để sử dụng một không gian không phá vỡ để ngăn tự động định dạng đầu ra


2

Kotlin , 207 198 byte

cảm ơn Taylor Scott cho -7 byte

{a,b,c->val n=maxOf((a+3)/4,(b+2)/3,(6+c+a+b)/7);arrayOf("      .---.   _   ","    .'     './ )  ","   /   _   _/ /\\  "," =(_____) (__/_/==").map{println(it.repeat(n))};println("=".repeat(n*18+1))}

Điều này chưa hoạt động trên TIO , vì nó yêu cầu Kotlin 1.1

Hãy thử trực tuyến!


1

JavaScript (ES6), 180 179 byte

Xuất ra một chuỗi các chuỗi.

(a,b,c)=>[...`      .---.   _   
    .'     './ )  
   /   _   _/ /\\  
 =(_____) (__/_/==`.split`
`.map(l=>l.repeat(n=Math.max((6+c+a+b)/7,a+3>>4,(b+2)/3)|0)),'='.repeat(18*n+1)]


JavaScript (ES6), 182 181 byte

Xuất ra một chuỗi đơn.

(a,b,c)=>`      .---.   _   
    .'     './ )  
   /   _   _/ /\\  
 =(_____) (__/_/==
${'='.repeat(18)}`.split`
`.map(l=>l.repeat(Math.max((6+c+a+b)/7,a+3>>4,(b+2)/3))).join`
`+'='

-1 byte (Arnauld): a+3>>4thay vì(a+3)/4)

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.