introduzione
Di recente, stavo saltando con un gruppo di amici e ci siamo annoiati e non avevamo nulla da fare, quindi abbiamo "inventato" un "gioco" (alcune persone nei commenti hanno sottolineato che questo gioco è giocabile online e molto popolare, quindi sicuramente non l'ho inventato, sebbene non lo avessi mai visto prima). Il motivo per cui ho messo la parola "gioco" tra virgolette è perché non è un vero gioco per computer, ma è giocato su Wikipedia.
È davvero facile da giocare: qualcuno sceglie un articolo di Wikipedia come obiettivo. Assumiamo Code Golf per questo esempio. Tutti i giocatori devono quindi iniziare da un articolo casuale (premendo l' articolo casuale nella barra laterale o andando su questo URL) e devono raggiungere "l'obiettivo" il più rapidamente possibile utilizzando solo gli articoli collegati dell'articolo in cui ci si trova attualmente . Le regole includono:
- La funzione di ricerca non è consentita (ovviamente)
- Puoi solo fare clic sui collegamenti nel testo principale dell'articolo (in particolare tutto il testo all'interno
<div id="bodyContent">) - Se la tua pagina casuale o qualsiasi altra pagina che incontri non ha link validi (link non funzionanti, loop, ecc.) O nessun link puoi rotolare di nuovo.
La sfida
Ecco dove entri: sfortunatamente sono piuttosto cattivo in questo gioco, ma sono anche un imbroglione sporco. Quindi voglio che tu implementi questo bot per me. Sono anche un programmatore, quindi naturalmente il mio disco rigido è pieno di cose come codice, librerie e simili e ho solo pochi byte di memoria da risparmiare. Pertanto questa sfida è Code Golf, la risposta con il minor numero di byte vince.
Dettagli di implementazione:
- Ovviamente non è necessario implementare un bot intelligente che conosca le connessioni tra gli argomenti e rilevi automaticamente il percorso ottimale. La forza bruta è più che sufficiente ai fini di questa sfida
- Nel gioco reale, il tempo conta. Il tuo programma non dovrebbe richiedere più di 1 ora per trovare l'articolo (questo per evitare scappatoie come i ricercatori casuali che "alla fine" troveranno l'obiettivo)
- Se non è possibile trovare un percorso verso l'obiettivo (ad esempio collegamenti morti o un loop), puoi scegliere cosa fare dall'elenco seguente:
- Esci (il punteggio rimane lo stesso)
- Ottieni un altro articolo casuale e riprova e non fare nulla sui loop (punteggio - = 10)
- Ottieni un altro articolo casuale su un collegamento morto o un loop (rileva automaticamente i loop) (punteggio - = 50)
- (Per "punteggio" intendo il conteggio dei byte qui)
- Altri 20 byte bonus verranno sottratti se si "traccia" il percorso, quindi si stampa il titolo di ogni singola pagina visitata.
- È possibile utilizzare librerie di rete standard (per evitare scappatoie come "Ho creato la mia libreria di rete che esegue la scansione degli articoli di Wikipedia")
- L'unica cosa che dovrebbe fare il tuo programma in rete è inviare una richiesta HTTP per scaricare una pagina di Wikipedia
- Se il tuo programma trova la pagina, dovrebbe uscire, ma in qualche modo segnala che è finita (è sufficiente stampare il carattere "f" o il titolo della pagina)
- Le scappatoie standard devono essere evitate
Divertiti a giocare a golf!
(Questa è la mia prima domanda qui, quindi per favore fai notare ovvie lacune e avvertenze nei commenti prima di sfruttarle - grazie: D)