Tôi muốn chơi Dungeon và Dragons, nhưng tôi không có xúc xắc! Thử thách của bạn là tung một vài viên xí ngầu D & D.
Đặc tả định dạng đầu vào ở dạng Backus-Naur là:
<valid-input> ::= <opt-integer> "d" <integer> <opt-modifier>
<opt-integer> ::= | <integer>
<opt-modifier> ::= | "+" <integer>
<integer> ::= "0" | "1" | "2" | "3" | "4" | "5" |
"6" | "7" | "8" | "9" | <integer> <integer>
Số nguyên tùy chọn trước dsố là xúc xắc để cuộn; ít nhất nó phải được 1mặc định và mặc định 1nếu không được cung cấp.
Số nguyên cần thiết ngay sau số dlà mỗi cạnh của mỗi khuôn; nó phải có ít nhất 1. Các cạnh của mỗi khuôn là các số nguyên dương liên tiếp khác nhau bắt đầu từ 1.
Công cụ sửa đổi tùy chọn có thể +0và mặc định +0nếu không được chỉ định.
Ví dụ: đối với đầu vào 2d10+5, bạn tạo hai số ngẫu nhiên từ 1 đến 10, bao gồm chúng và cộng 5. Sau đó, bạn sẽ xuất kết quả.
Nếu bạn nhận đầu vào không hợp lệ, chẳng hạn như 2d, d20+, 0d4, 2d5+1+2, 2+2, hoặc bất cứ điều gì khác mà không phù hợp với định dạng này, bạn phải đầu ra " Invalid input". Mặt khác, bạn phải chỉ xuất một số nguyên ngẫu nhiên duy nhất, có trọng số theo đầu vào. Ví dụ, 3d6nên tạo ra nhiều 10s hơn 4s .
Các trường hợp thử nghiệm
Input Minimum possible output Maximum possible output
d1 1 1
d6 1 6
d1+3 4 4
d20+3 4 23
2d1 2 2
2d6+2 4 14
d01 1 1
d01+0 1 1
01d01+01 2 2
3d20+10 13 70
d Invalid input
d0 Invalid input
d+0 Invalid input
d0+0 Invalid input
0d1 Invalid input
0d1+1 Invalid input
d1+ Invalid input
1d Invalid input
1d1+ Invalid input
1d+1 Invalid input
2d+2d Invalid input
d2+d2 Invalid input
d2+2+2 Invalid input
d2-1 Invalid input
-d2 Invalid input
-2d2 Invalid input
4*3 Invalid input
4*d2 Invalid input
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ giành chiến thắng!
nvà plà tùy chọn, nhưng đầu vào chọn không bao gồm chúng ( d20+) là không hợp lệ.
+chỉ nên thêm dấu hiệu nếu công cụ sửa đổi pđược cung cấp.
1d4+1d6đối với một Rogue lén tấn công bằng dao găm) hoặc có một tiêu cực p(ví dụ, 1d20-1để kiểm tra kỹ năng không có cấp bậc / huấn luyện và sửa đổi khả năng tiêu cực).
2d8 + 1d6 + 4? Bạn sẽ có một thời gian tồi tệ
02d05+073một đầu vào hợp lệ?