Thiếu tiền mặt, bạn đã đăng ký xây dựng bánh rán cho The Donut Shop ™, công ty bánh rán kỹ thuật số lớn nhất thế giới, chủ yếu là vì họ bán mọi kích cỡ của bánh rán có thể tưởng tượng được.
Bây giờ, do các tiêu chuẩn giao dịch ngày nay rất khó khăn, bạn cần viết một đoạn mã càng ngắn càng tốt để tạo ra các bánh rán này để mã nguồn tạo ra chúng có thể được đặt bên ngoài gói.
Thử thách
Cho 4 đầu vào, bán kính của vòng ngoài, bán kính của vòng trong, khả năng rắc và khả năng tế bào có rắc, tạo ra một chiếc bánh rán được bao phủ trong những rắc có bán kính bên trong và bên ngoài chính xác.
- Đầu vào có thể được thực hiện theo cách bạn muốn (đối số cho hàm, stdin, đối số chương trình) và theo bất kỳ thứ tự nào.
- Các rắc sẽ được đưa ra dưới dạng 1 ký tự cho mỗi loại rắc
^+*-
như rắc đầu vào sẽ là một danh sách của 4 sprinkles,^
,+
,*
,-
- Cơ hội rắc sẽ được nhập dưới dạng giá trị dấu phẩy động giữa 0 và 1. ví dụ :
0.1
,0.23
- Bạn phải in đầu ra ra thiết bị xuất chuẩn hoặc tương đương.
- Sprinkles không thể ở trên các cạnh của bánh rán.
- Mỗi loại rắc phải có cơ hội như nhau trên mỗi tế bào.
- Bán kính được tính theo đơn vị 1 ô.
- Nếu bán kính bên trong bằng 0 HOẶC bán kính bên ngoài, thì chiếc bánh rán được cho là không có vòng.
- Cả hai bán kính sẽ là số nguyên không âm.
- Các cạnh bên trong và bên ngoài của bánh rán phải được thể hiện bằng cách sử dụng băm (
#
) Một thử nghiệm để xem liệu một điểm có nằm trong một vòng tròn hay không, cho một bán kính và tâm của vòng tròn là:
(x-center)**2+(y-center)**2 < radius**2
Ví dụ đầu vào với đầu ra
(bán kính ngoài, bán kính trong, rắc, cơ hội rắc)
10, 4, "^ + * -", 0,1
######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # # #- # # # # * # # # #+ # # # # # #^ +# # # # # # # # * ##### # # + - # # ^ # ## ^ + ## # ^ # #########
5, 2, ": ^ + *", 0,9
##### #^^+ ^# #**### # #:# #^# #^# #*# #:# #*# #:+###* # # *:^:# #####
Đây là mã golf, câu trả lời ngắn nhất trong byte thắng
10, 4
và 5, 2
khá khác nhau. Tôi sẽ để lại một bình luận về câu trả lời, nhưng tôi nhận ra rằng tôi không thực sự hiểu đầu ra sẽ như thế nào đối với bất kỳ kích thước nào ngoại trừ các kích thước trong các ví dụ. Nếu bạn muốn thay đổi ý tưởng ban đầu của mình phù hợp với đầu ra từ câu trả lời, điều đó tùy thuộc vào bạn, nhưng thách thức nên xác định rõ cách vẽ đường viền theo cách nào.