introduction
Récemment, je skypais avec un groupe d'amis et nous nous ennuyions et n'avions rien à faire, alors nous avons "inventé" un "jeu" (certaines personnes dans les commentaires ont souligné que ce jeu est jouable en ligne et très populaire, donc nous avons définitivement Je ne l'ai pas inventé, même si je ne l'avais jamais vu auparavant). La raison pour laquelle j'ai mis le mot "jeu" entre guillemets est parce que ce n'est pas un jeu informatique réel, mais qu'il est joué sur Wikipedia.
C'est vraiment facile à jouer: quelqu'un choisit un article Wikipedia comme objectif. Supposons Code Golf pour cet exemple. Tous les joueurs doivent ensuite partir d'un article aléatoire (en appuyant sur Article aléatoire dans la barre latérale ou accéder à cette URL) et atteindre le "but" aussi rapidement que possible en utilisant uniquement les articles liés de l'article où vous vous trouvez actuellement . Les règles comprennent:
- La fonction de recherche n'est pas autorisée (évidemment)
- Vous ne pouvez cliquer que sur des liens dans le texte principal de l'article (en particulier tout le texte à l'intérieur
<div id="bodyContent">) - Si votre page aléatoire ou toute autre page que vous rencontrez n'a pas de liens valides (liens morts, boucles, etc.) ou aucun lien du tout, vous pouvez recommencer.
Le défi
Voici où vous intervenez: malheureusement, je suis assez mauvais dans ce jeu, mais je suis aussi un tricheur sale. Je veux donc que vous implémentiez ce bot pour moi. Je suis aussi programmeur, donc naturellement mon disque dur est plein de trucs comme du code, des bibliothèques et autres et je n'ai que quelques octets de mémoire à revendre. Par conséquent, ce défi est Code Golf, la réponse avec le moins d' octets gagne.
Détails d'implémentation:
- Bien sûr, vous n'avez pas à implémenter un bot intelligent qui connaît les connexions entre les sujets et détecte automatiquement l'itinéraire optimal. Le forçage brutal est plus que suffisant pour ce défi
- Dans le jeu, le temps compte. Votre programme ne devrait pas prendre plus d'une heure pour trouver l'article (c'est pour éviter les failles comme les chercheurs aléatoires qui trouveront "éventuellement" l'objectif)
- Si aucun chemin vers l'objectif ne peut être trouvé (par exemple des liens morts ou une boucle), vous pouvez choisir quoi faire dans la liste ci-dessous:
- Quitter (le score reste le même)
- Obtenez un autre article au hasard et réessayez et ne faites rien sur les boucles (score - = 10)
- Obtenez un autre article aléatoire sur un lien mort ou une boucle (détection automatique des boucles) (score - = 50)
- (Par "score", je veux dire votre nombre d'octets ici)
- 20 autres octets supplémentaires seront soustraits si vous "tracez" l'itinéraire, vous imprimez donc le titre de chaque page individuelle que vous visitez.
- Des bibliothèques réseau standard peuvent être utilisées (pour éviter les failles comme "J'ai créé ma propre bibliothèque réseau qui explore les articles wikipedia")
- La seule chose liée à votre réseau que votre programme devrait faire est d'envoyer une requête HTTP pour télécharger une page wikipedia
- Si votre programme trouve la page, il devrait se fermer, mais signale d'une manière ou d'une autre qu'elle est terminée (l'impression du caractère "f" ou du titre de la page suffit)
- Les failles standard doivent être évitées
Amusez-vous au golf!
(Ceci est ma première question ici, alors veuillez signaler les lacunes et les mises en garde évidentes dans les commentaires avant de les exploiter - merci: D)