Giriş
Son zamanlarda bir sürü arkadaşımla birlikte uçtum ve sıkıldık ve yapacak bir şeyimiz olmadı, bu yüzden "bir" oyun "icat ettik (yorumlarda bazı insanlar bu oyunun çevrimiçi olarak oynanabilir ve çok popüler olduğunu belirtti, bu yüzden kesinlikle daha önce görmemiş olmama rağmen icat etmedi). "Oyun" kelimesini tırnak içine almamın nedeni gerçek bir bilgisayar oyunu olmaması, ancak Wikipedia'da oynanması.
Oynamak çok kolay: Birileri bazı Wikipedia makalelerini hedef olarak seçti. Bu örnek için Code Golf varsayalım . Daha sonra tüm oyuncuların rastgele bir yazıdan başlaması ( kenar çubuğundaki Rastgele Makale'ye basarak veya bu URL’ye giderek ) ve yalnızca şu anda bulunduğunuz makalenin bağlantılı makalelerini kullanarak mümkün olan en kısa sürede "hedefe" ulaşması gerekir . Kurallar şunları içerir:
- Arama işlevine izin verilmiyor (belli ki)
- Yalnızca makalenin ana metnindeki bağlantıları tıklayabilirsiniz (özellikle içindeki tüm metinler
<div id="bodyContent">
) - Rastgele sayfanızda ya da karşılaştığınız başka bir sayfanın geçerli bağlantıları (ölü bağlantılar, döngüler, vb.) Yoksa ya da hiç bağlantınız yoksa tekrar rulo atabilirsiniz.
Meydan okuma
İşte girdiğiniz yer: maalesef bu oyunda oldukça kötüyüm ama aynı zamanda kirli bir dolandırıcıyım. Bu yüzden benim için bu botu uygulamanı istiyorum. Ben aynı zamanda bir programcıyım, bu yüzden doğal olarak sabit diskim kod, kitaplık ve benzeri şeyler ile doludur ve yalnızca birkaç byte'lık boş hafızam var. Bu nedenle bu zorluk Code Golf'dur, en az bayt olan cevap kazanır.
Uygulama ayrıntıları:
- Elbette, konular arasındaki bağlantıları bilen ve optimum rotayı otomatik olarak algılayan akıllı bir bot uygulamak zorunda değilsiniz. Brute zorlama bu zorluğun amacı için fazlasıyla yeterli
- Gerçek oyunda, zaman sayar. Makalenizin programınızın bulunması 1 saatten uzun sürmemelidir (bu, hedefi "sonunda bulabilecek" gibi rasgele aramalar gibi boşluklardan kaçınmaktır)
- Hedefe giden bir yol bulunamazsa (ör. Ölü linkler veya bir döngü) aşağıdaki listeden ne yapılacağını seçebilirsiniz:
- Çık (puan aynı kalır)
- Başka bir rastgele makale alın ve tekrar deneyin ve döngüler üzerinde hiçbir şey yapmayın (puan - = 10)
- Ölü bir link veya döngü üzerine rastgele bir makale daha al (döngüleri otomatik olarak algıla) (skor - = 50)
- ("Puan" derken, burada bayt sayınızı kastediyorum)
- Rotayı "izlerseniz" başka 20 bonus baytı çıkarılır, böylece ziyaret ettiğiniz her sayfanın başlığını yazarsınız.
- Standart ağ kütüphaneleri kullanılabilir ("wikipedia makalelerini tarayan kendi ağ kütüphanemi hazırladım" gibi boşluklardan kaçınmak için)
- Programın ağ ile ilgili yapması gereken tek şey, bir wikipedia sayfasını indirmek için bir HTTP isteği göndermek.
- Programınız sayfayı bulursa, çıkmalı, ancak bir şekilde bitmiş olduğunu işaret etmelidir ("f" karakterini basmak veya sayfanın başlığını yazmak yeterlidir)
- Standart boşluklardan kaçınılmalıdır
Golf eğlenin!
(Buradaki ilk sorum bu, lütfen onları sömürmeden önce yorumlardaki açık boşlukları ve uyarıları belirtin - teşekkürler: D)