Mục tiêu của bạn là viết một chương trình sẽ giải bất kỳ câu đố Mastermind nào trong 6 lần di chuyển trở xuống.
Lý lịch
Mastermind là một trò chơi hội đồng quản trị. Mục tiêu của trò chơi là đoán chính xác sự kết hợp (màu sắc và thứ tự) của 4 chốt màu được ẩn bởi người chơi khác. Khi đoán được thực hiện, người chơi khác trả lời từ 0 đến 4 chốt trắng và đỏ. Một chốt màu đỏ là nơi màu sắc và vị trí chính xác. Một chốt màu trắng là nơi màu được thể hiện trong các phần còn lại, nhưng ở vị trí không chính xác. Nếu có các màu trùng lặp trong dự đoán, sẽ chỉ có một chốt được trao cho mỗi màu tương ứng trong bí mật. (Vì vậy - nếu bí mật chứa 1 Blue và đoán có 2 màu xanh với một vị trí chính xác, sẽ có một chốt màu đỏ được đưa ra). Có 6 màu khác nhau và có thể sử dụng các bản sao.
Vì vậy, ví dụ, một trò chơi có thể diễn ra như sau: (Giả sử giải pháp là Red Green Green Blue)
1: Blue Purple Black Green - 2 white pegs
2: Green Red Black Blue - 2 white pegs, 1 red peg
3: Green Green Green Blue - 3 red pegs
4: Red Green Green Blue - 4 red pegs
Các quy tắc được mở rộng trên Wikipedia
Yêu cầu
- Chương trình phải đọc từ stdin và viết vào stdout
- Tôi sẽ sử dụng số cho đơn giản thay vì màu sắc. Sự kết hợp để đoán sẽ là 4 số từ 1 đến 6
Họ phải đưa ra dự đoán của mình dưới dạng một chuỗi gồm 4 số cách nhau từ 1 đến 6 kết thúc bằng một dòng mới. Ví dụ:
1 5 2 2 \ n
Chương trình sau đó sẽ nhận làm đầu vào sau khi đoán 2 số nguyên nằm trong khoảng từ 0 đến 4 cách nhau bởi một khoảng trắng và kết thúc bằng một dòng mới. Đầu tiên sẽ là số lượng chốt màu trắng, thứ hai là số lượng chốt màu đỏ.
- Trên đầu vào "0 4" (4 chốt màu đỏ), chương trình phải chấm dứt
- Chương trình phải có khả năng giải bất kỳ câu đố nào sau ít hơn 6 lượt (chương trình của bạn cho đầu ra, tiếp theo là đầu vào phản hồi là 1 lượt). Không có tiền thưởng (do sự phức tạp của bằng chứng) cho việc có thể giải quyết nó ít hơn.
- Các giải pháp phải hoàn toàn nội bộ và bao gồm trong nguồn. Thư viện tiêu chuẩn chỉ được phép. Do đó, giải pháp có thể không dựa vào bất kỳ tệp nào khác (như từ điển) hoặc internet.
Ví dụ đầu vào / đầu ra
> is your programs output
< is the responding input
Solution is 1 5 6 6
> 1 2 3 4
< 0 1
> 4 1 6 6
< 1 2
> 1 6 5 6
< 2 2
> 1 5 6 6
< 0 4
Chấm điểm
- Đây là Code Golf đơn giản và đơn giản . Giải pháp ngắn nhất trong byte thắng.
Đây là câu hỏi Code Golf đầu tiên của tôi. Tôi xin lỗi nếu tôi đã làm điều gì đó sai, nhưng tôi đã cố gắng hết sức có thể để đảm bảo rằng hoàn toàn không có sự mơ hồ, và ngăn chặn càng nhiều quy tắc lập pháp càng tốt. Nếu tôi đã mơ hồ hoặc không rõ ràng, xin vui lòng đặt câu hỏi.
1 2 3 4trả về0 1?