Trong trò chơi Pickomino , có một vài viên gạch nằm ở giữa bàn, mỗi viên có một số nguyên dương khác nhau trên chúng. Mỗi lượt, người chơi tung xúc xắc theo một cách nhất định và nhận được điểm, đó là một số nguyên không âm.
Bây giờ người chơi lấy ô có số cao nhất vẫn thấp hơn hoặc bằng số điểm của họ, loại bỏ ô từ giữa và thêm nó vào ngăn xếp của họ. Nếu điều này là không thể bởi vì tất cả các số ở giữa cao hơn điểm của người chơi, thì người chơi sẽ mất ô trên cùng từ ngăn xếp của họ (được thêm mới nhất), được trả về giữa. Nếu người chơi không còn gạch, không có gì xảy ra.
Các thách thức
Mô phỏng một người chơi chơi trò chơi với chính họ. Bạn nhận được một danh sách các ô ở giữa và một danh sách các điểm số mà người chơi đạt được. Trả về một danh sách các ô của người chơi sau khi tất cả các lượt đã được đánh giá.
Quy tắc thử thách
- Bạn có thể giả sử rằng danh sách với các ô được sắp xếp và không chứa bất kỳ số nguyên nào hai lần.
- Bạn có thể lấy cả hai danh sách đầu vào theo bất kỳ thứ tự nào bạn muốn
- Đầu ra phải giữ thứ tự các ô trên ngăn xếp, nhưng bạn có thể quyết định danh sách được sắp xếp từ trên xuống dưới hoặc từ dưới lên trên.
Quy tắc chung
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Quy tắc chuẩn áp dụng cho câu trả lời của bạn với quy tắc I / O mặc định , vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, chương trình đầy đủ.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn (ví dụ TIO ).
- Thêm một lời giải thích cho bạn câu trả lời được khuyến khích.
Thí dụ
(lấy từ mẫu thử thứ 6)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Điểm số đầu tiên là 22, vì vậy hãy lấy ô cao nhất ở giữa <= 22, chính là 22.
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [22, 22, 23, 21, 24, 0, 22]
Điểm tiếp theo là 22, vì vậy hãy lấy ô cao nhất ở giữa <= 22. Vì đã lấy 22, người chơi phải lấy 21.
Middle: [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 21]
Remaining scores: [22, 23, 21, 24, 0, 22]
Điểm tiếp theo là 22, nhưng tất cả các số <= 22 đã được sử dụng. Do đó, người chơi mất ô trên cùng trên ngăn xếp (21), được trả lại vào giữa.
Middle: [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22]
Remaining scores: [23, 21, 24, 0, 22]
Điểm tiếp theo là 23, 21 và 24, vì vậy người chơi sẽ lấy những ô này từ giữa.
Middle: [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21, 24]
Remaining scores: [0, 22]
Người chơi bán thân và điểm số không. Do đó, ô có số 24 (trên cùng trên ngăn xếp) được trả lại vào giữa.
Middle: [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Stack: [22, 23, 21]
Remaining scores: [22]
Điểm cuối cùng là 22, nhưng tất cả các ô <= 22 đã được lấy, do đó người chơi sẽ mất ô trên cùng trên ngăn xếp (21).
Middle: [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Final Stack and Output: [22, 23]
Các trường hợp thử nghiệm
(với ô trên cùng cuối cùng trong danh sách đầu ra)
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [26, 30, 21]
Output: [26, 30, 21]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [35, 35, 36, 36]
Output: [35, 34, 36, 33]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23]
Output: [23]
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: []
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 17, 23, 19, 23, 0]
Output: []
Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]
Scores: [22, 22, 22, 23, 21, 24, 0, 22]
Output: [22, 23]
Tiles: [1, 5, 9, 13, 17, 21, 26]
Scores: [6, 10, 23, 23, 23, 1, 0, 15]
Output: [5, 9, 21, 17, 13, 1]
Tiles: []
Scores: [4, 6, 1, 6]
Output: []