Một trò chơi trẻ em nhất định, thường được gọi là "Huckle Buckle Beanstalk", được chơi với hai người chơi. Dưới đây là một mô tả ngắn gọn về cách chơi trò chơi:
- Một người chơi được chỉ định là "người lái" và người còn lại là "người tìm kiếm".
- Người tìm kiếm đi ra khỏi phòng trong khi người cưỡi giấu một vật nhỏ, được chọn sẵn, "kho báu".
- Người đi sau đó cố gắng tìm kiếm đối tượng trong khi người tìm kiếm cho họ những gợi ý hữu ích:
- Nếu người tìm kiếm đang tiếp cận kho báu, người cưỡi ngựa sẽ gọi "ấm hơn!"
- Nếu người tìm kiếm đang di chuyển ra khỏi kho báu, người cưỡi ngựa sẽ gọi "mát hơn!"
- Một khi người tìm kiếm tìm thấy kho báu, họ thông báo rằng họ đã tìm thấy nó.
Con bạn muốn bạn chơi trò chơi này với chúng, tuy nhiên, bạn rất bận rộn khi trả lời các câu hỏi trên codegolf.SE. Vì vậy, bạn quyết định viết một chương trình để chơi trò chơi với họ. Tuy nhiên, bạn muốn sử dụng ít thời gian nhất có thể để gõ, vì vậy bạn cố gắng làm cho chương trình càng ít ký tự càng tốt.
Chúng ta có thể định nghĩa căn phòng trong đó trò chơi được chơi dưới dạng một hình vuông hình xuyến hai chiều. Tọa độ 0,0
là góc dưới cùng bên trái và tọa độ 99,99
là góc trên cùng bên phải. Kho báu được đặt ở một số vị trí n,m
trong đó n
và m
cả hai số nguyên dương nằm trong khoảng từ 0 đến 99.
Chương trình của bạn sẽ có được thông tin từ người chơi sử dụng chức năng người dùng nhập vào sẵn có của nó (ví dụ prompt()
, raw_input()
vv) Nếu ngôn ngữ của bạn chọn không có chức năng đầu vào người sử dụng, lấy đầu vào từ STDIN để thay thế. Trò chơi sẽ hoạt động như sau:
- Chương trình "giấu" kho báu tại một vị trí
n,m
. - Chương trình nhắc người tìm kiếm nhập một vị trí tìm kiếm ban đầu. Đầu vào sẽ đến dưới hình thức
x y
nơix
vày
là nguyên dương. - Chương trình xuất ra "chính xác" nếu vị trí tìm kiếm ban đầu
x,y
bằng với vị trí của kho báun,m
và chấm dứt. Nếu không thì: - Chương trình sẽ nhắc người tìm di chuyển. Các đầu vào đến trong các hình thức
a b
nơia
vàb
là số nguyên mà có thể là tiêu cực . Điều này đại diện cho vectơ chỉ hướng mà người tìm kiếm đang di chuyển (a
là hướng x vàb
là hướng y). - Nếu vị trí kết quả của người tìm kiếm nằm ở kho báu, chương trình sẽ xuất ra "chính xác" và chấm dứt. Nếu không thì:
- Chương trình xuất ra "mát" hơn nếu người tìm kiếm đang di chuyển ra khỏi kho báu hoặc "nóng hơn" nếu họ đang tiến về phía kho báu.
- Chuyển đến bước 4.
Các từ "di chuyển xa" và "di chuyển về phía" có thể không rõ ràng. Đối với thử thách này, nếu vị trí kết quả của người tìm kiếm sau khi di chuyển gần với kho báu hơn vị trí của họ trước khi họ di chuyển, thì họ đang tiến về phía kho báu. Nếu không, họ đang di chuyển đi. (Có, điều này không có nghĩa là nếu vị trí kết quả và vị trí trước đó ở cùng một khoảng cách, chương trình sẽ xuất ra "bộ làm mát").
Đây là mã golf, vì vậy mã ngắn nhất sẽ thắng. Đặt câu hỏi nếu đặc điểm kỹ thuật không rõ ràng.