Giới thiệu
Gần đây, tôi đang cùng với một nhóm bạn và chúng tôi thấy chán và không có gì để làm, vì vậy chúng tôi đã "phát minh" ra một "trò chơi" (một số người trong các ý kiến chỉ ra rằng trò chơi này có thể chơi trực tuyến và rất phổ biến, vì vậy chúng tôi chắc chắn đã không phát minh ra nó, mặc dù tôi đã không nhìn thấy nó trước đó). Lý do tôi đặt từ "trò chơi" trong dấu ngoặc kép là vì đây không phải là một trò chơi máy tính thực sự, nhưng nó được chơi trên Wikipedia.
Nó thực sự dễ chơi: Ai đó chọn một số bài viết trên Wikipedia làm mục tiêu. Hãy giả sử Code Golf cho ví dụ này. Tất cả người chơi sau đó phải bắt đầu từ một bài viết ngẫu nhiên (bằng cách nhấn Bài viết ngẫu nhiên trong thanh bên hoặc truy cập URL này ) và phải đến "mục tiêu" càng nhanh càng tốt bằng cách chỉ sử dụng các bài viết được liên kết của bài viết bạn hiện đang xem . Quy tắc bao gồm:
- Chức năng tìm kiếm không được phép (rõ ràng)
- Bạn chỉ có thể nhấp vào liên kết trong văn bản chính của bài viết (cụ thể là tất cả văn bản bên trong
<div id="bodyContent">) - Nếu trang ngẫu nhiên của bạn hoặc bất kỳ trang nào khác bạn gặp không có liên kết hợp lệ (liên kết chết, vòng lặp, v.v.) hoặc không có liên kết nào bạn có thể cuộn lại.
Các thách thức
Đây là nơi bạn đến: thật không may, tôi khá tệ trong trò chơi này, nhưng tôi cũng là một kẻ lừa đảo bẩn thỉu. Vì vậy, tôi muốn bạn thực hiện bot này cho tôi. Tôi cũng là một lập trình viên, vì vậy, tự nhiên đĩa cứng của tôi chứa đầy những thứ như mã, thư viện và như vậy và tôi chỉ có một vài byte bộ nhớ dự phòng. Do đó, thách thức này là Code Golf, câu trả lời có ít byte nhất sẽ thắng.
Chi tiết thực hiện:
- Tất nhiên, bạn không phải thực hiện một bot thông minh biết kết nối giữa các chủ đề và tự động phát hiện tuyến đường tối ưu. Buộc vũ phu là quá đủ cho mục đích của thử thách này
- Trong trò chơi thực tế, thời gian được tính. Chương trình của bạn không nên mất hơn 1 giờ để tìm bài viết (điều này là để tránh những sơ hở như những người tìm kiếm ngẫu nhiên sẽ "cuối cùng" tìm thấy mục tiêu)
- Nếu không tìm thấy đường dẫn đến mục tiêu (ví dụ: liên kết chết hoặc vòng lặp), bạn có thể chọn những việc cần làm từ danh sách bên dưới:
- Thoát (điểm vẫn giữ nguyên)
- Nhận một bài viết ngẫu nhiên khác và thử lại và không làm gì trên các vòng lặp (điểm - = 10)
- Nhận một bài viết ngẫu nhiên khác về một liên kết chết hoặc một vòng lặp (tự động phát hiện các vòng lặp) (điểm - = 50)
- (Theo "điểm" Tôi có nghĩa là số byte của bạn ở đây)
- 20 byte thưởng khác sẽ bị trừ nếu bạn "theo dõi" tuyến đường, do đó bạn in tiêu đề của mỗi trang cá nhân bạn truy cập.
- Thư viện mạng tiêu chuẩn có thể được sử dụng (để tránh các sơ hở như "Tôi đã tạo thư viện mạng của riêng mình để thu thập các bài viết trên wikipedia")
- Điều duy nhất liên quan đến mạng mà chương trình của bạn nên làm là gửi yêu cầu HTTP để tải xuống trang wikipedia
- Nếu chương trình của bạn tìm thấy trang, nó sẽ thoát, nhưng bằng cách nào đó báo hiệu rằng nó đã hoàn thành (in ký tự "f" hoặc tiêu đề của trang là đủ)
- Cần tránh những sơ hở tiêu chuẩn
Chúc bạn chơi golf vui vẻ!
(Đây là câu hỏi đầu tiên của tôi ở đây, vì vậy vui lòng chỉ ra những sơ hở và cảnh báo rõ ràng trong các bình luận trước khi khai thác chúng - cảm ơn: D)