17 votes

Comment puis-je automatiser le mini-jeu de piratage ?

Fallout 3 et Fallout New Vegas ont un mini-jeu de piratage qui est en fait Mastermind. Vous disposez d'une série de mots de passe et de quatre essais. Lorsque vous obtenez le mauvais mot de passe, vous obtenez le nombre de lettres qui ont été correctement placées. Et c'est tout.

enter image description here

Comment puis-je jouer efficacement à ce mini-jeu sans avoir recours à un stylo, à du papier et à des devinettes ? ou avec les mots de passe corrects connus ?

5 votes

D'ailleurs, cette question n'est pas spécifique à F:NV. Le même mini-jeu, avec exactement les mêmes solutions, existe dans Fallout 3.

0 votes

@sanmai Comme l'a fait valoir l'utilisateur galacticninja, cette question porte spécifiquement sur l'automatisation, et non sur l'optimisation ou le jeu effectif.

27voto

Benny Points 253

Utilisez l'astuce du crochet pour éliminer les fausses entrées et pour rafraîchir vos tentatives de devinette.

http://www.gamershell.com/faqs/fallout3hackingguide/1.0/

[II.7] Le truc des crochets

Caché dans le bloc de code vous pouvez trouver ce que j'aime appeler comme un "Bracket Trick". Un Bracket Trick est une collection de ces signes de ponctuation aléatoires qui apparaissent entre les mots qui sont entre les mots qui sont enfermés dans une parenthèse de n'importe quelle sorte. Dans le bloc de code ci-dessus, il y a caché là-dedans.

La deuxième colonne du bloc de code et la troisième ligne contiennent ceci ligne :

0xFA10 %'%{.@@}#?|+

L'astuce du Bracket dans cette ligne est :

{.@@}

Chaque terminal a une chance de produire des tours de crochets, mais pas tous les tous les terminaux n'en auront pas. Certains peuvent même avoir plusieurs astuces. Pour savoir si vous avez trouvé une astuce de crochet, il vous suffit de placer le curseur sur la parenthèse ouvrante. Si le tout s'allume, félicitations, vous l'avez trouvé !

Il peut s'agir de plusieurs types de brackets différents :

<___> [____] {____} (____)

Chacun de ces éléments peut avoir n'importe quelle taille possible dans le cadre du bloc de code. et ils peuvent s'étendre sur plusieurs lignes.

Un Bracket Trick ne contiendra jamais un mot de passe possible.

J'ai découvert que la meilleure façon de rechercher des astuces dans un bloc de code est de déplacer le curseur sur tous les caractères et si quelque chose qui n'est pas pas un mot s'allume, vous en avez trouvé un.

Maintenant que vous savez à quoi ils ressemblent et comment les trouver facilement vous vous voulez probablement savoir pourquoi vous les voulez.

Ces derniers ont une chance aléatoire, lorsqu'ils sont cliqués, de vous donner une autre tentative ou de supprimer une possibilité du code. une autre tentative ou de supprimer une possibilité du bloc de code.

Le meilleur moment pour en utiliser un est lorsqu'il vous reste 3 tentatives, de sorte que vous pour ne pas essayer d'utiliser le mot qu'il retire du bloc avant qu'il ne le fasse.

Je dois mentionner que le guide lié/cité est pour Fallout 3, mais l'astuce est toujours disponible dans Fallout : New Vegas.

5 votes

Plus de 200 heures et je ne l'ai même pas remarqué !

0 votes

Donc, dans cette capture d'écran, "GROUPED" et "GAINING" ne peuvent être que cela, n'est-ce pas ?

0 votes

@badp Je pense que tous les mots sont des suppositions valables, mais s'il y a des parenthèses qui correspondent de chaque côté du mot, il ne sera pas enregistré comme une parenthèse appariée. Cependant, je n'ai jamais su/utilisé/avoir besoin de cette nuance de l'astuce en jouant le jeu.

23voto

Dietrich Epp Points 426

Je l'ai déjà automatisé pour vous. Mon solveur est disponible à l'adresse suivante : http://moria.us/fallout3/terminal.html

Remarque : il s'agit d'une application d'une seule page, vous pouvez donc enregistrer le solveur sur votre disque dur sous forme de fichier HTML et l'exécuter à partir de là.

Tutoriel

Supposons que vous trouviez les mots RAMBO, DUMBO, MAMBA, BRICK, TANKS. Allez-y et entrez-les dans le solveur.

\[del\] RAMBO -0- -1- -2- -3- -4- 3 moves
\[del\] DUMBO -0- -1- -2- -3- -4- 3 moves
\[del\] MAMBA -0- -1- -2- -3- -4- 2 moves
\[del\] BRICK -0- -1- -2- -3- -4- 3 moves
\[del\] TANKS -0- -1- -2- -3- -4- 3 moves

Vous pouvez voir dans la colonne de droite que certains des mots sont marqués comme "2 coups" et que d'autres sont marqués comme "3 coups". Cette colonne est un peu délicate à expliquer, mais elle montre l'évolution de la situation. maximum le nombre de coups nécessaires pour résoudre le puzzle dans les conditions suivantes :

  1. Vous sélectionnez le mot suivant, et

  2. Vous jouez parfaitement après.

Vous pouvez donc voir que si vous sélectionnez MAMBA, vous devrez deviner au maximum deux mots afin de trouver le mot correct.

Supposons que vous sélectionnez MAMBA, et que vous avez 2 positions correctes. Cliquez sur le bouton -2- à côté de MAMBA :

\[del\] ~~RAMBO~~ -0- -1- -2- -3- -4-
\[del\] DUMBO -0- -1- -2- -3- -4- 1 moves
\[del\] ~~MAMBA~~ -0- -1- \[2\] -3- -4-
\[del\] ~~BRICK~~ -0- -1- -2- -3- -4-
\[del\] ~~TANKS~~ -0- -1- -2- -3- -4-

Le mot doit être DUMBO (qui est le deuxième mouvement).

Lors d'une partie de Fallout 3, j'ai remarqué qu'un grand nombre de terminaux comportaient principalement des mots "5 mouvements" et peut-être un ou deux mots "4 mouvements". Cela signifie qu'en utilisant l'outil, vous pouvez jouer parfaitement et battre ces bornes à chaque fois... mais sans l'outil, j'abandonnais après trois tentatives infructueuses.

Il vous suffit de cliquer sur un mot dont le nombre de coups est faible.

Plus d'informations

Vous pouvez voir pourquoi MAMBA est le meilleur en cliquant sur tous les chiffres à côté de MAMBA. Peu importe ce que vous cliquez, il ne restera qu'un seul autre mot (ou zéro).

Si vous choisissez un autre mot, comme RAMBO, il se peut qu'il vous reste deux choix par la suite. Par exemple, si vous choisissez RAMBO mais qu'il vous reste 3 positions, vous obtenez :

\[del\] ~~RAMBO~~ -0- -1- -2- \[3\] -4-
\[del\] DUMBO -0- -1- -2- -3- -4- 2 moves
\[del\] MAMBA -0- -1- -2- -3- -4- 2 moves
\[del\] ~~BRICK~~ -0- -1- -2- -3- -4-
\[del\] ~~TANKS~~ -0- -1- -2- -3- -4-

Comment cela fonctionne

"View Source" fonctionne bien, c'est tout du JavaScript. Si je me souviens bien, il calcule récursivement le nombre maximum de coups nécessaires en examinant des situations comme "et si vous choisissez DUMBO et que vous avez 3 bons coups". Le site maxmoves() La fonction est là où elle se trouve.

21voto

Jax Points 1877

Si vous disposez d'une copie de Python 3, vous pouvez le faire en un clin d'œil.

Tout d'abord, transcrivez les mots de passe dans un tableau comme ceci. (Ne tapez pas les >>> personnages.)

>>> passwords = ["hideout", "flowing", "blanket", "dealing", "banning", "leaving",
                 "studies", "fencing", "battles", "chamber", "parties", "carrier",
                 "blazing", "various", "working", "beating", "mention", "wanting"]

Nous pouvons effectuer un contrôle d'intégrité et nous assurer que tous les mots de passe ont la même longueur :

>>> list(map(len, passwords))
[7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]

Maintenant, nous devons voir combien de lettres sont les mêmes entre deux mots de passe. C'est un jeu d'enfant :

>>> def distance(a,b):
      return sum(1 for al, bl in zip(a,b) if al == bl) if a != b else -1

Si les mots de passe sont identiques, nous retournons -1 au lieu de 7, ce qui nous permet d'ignorer ces cas.

Maintenant, nous avons besoin du code pour ne choisir que les mots de passe qui ont autant de caractères correspondants que le jeu nous indique. C'est un autre exemple. Vous lui donnez la liste des mots de passe, ce que vous avez essayé et qui n'a pas fonctionné et combien de caractères étaient corrects.

>>> def refine(candidates, wrong_pw, matches):
      result = list(x for x in candidates if distance(x, wrong_pw) == matches)
      return result

Disons que vous avez créé le mot de passe "coulant" et que vous avez obtenu un caractère correct. Aïe. Vous utilisez alors ce que nous avons défini comme ceci :

>>> passwords = refine(passwords, "flowing", 1); passwords
['blanket', 'studies', 'parties', 'carrier', 'mention']

Ok, que diriez-vous de "études"... non, 3 lettres correctes.

>>> passwords = refine(passwords, "studies", 3); passwords
['parties']

Oh regarde, ça doit être le mot de passe !


Alors, comment automatiser le choix des mots de passe à partir d'un pool ? Ce que nous pouvons faire, c'est regarder chaque option et voir, dans l'onglet le pire dans ce cas, combien de mots de passe cela nous laisse. Nous pouvons alors choisir celui qui présente le plus petit nombre d'options restantes dans le pire des cas. Ce mot de passe est celui qui a la meilleure garantie de réduire le champ.

Ce code vérifie chaque mot de passe contre chaque autre mot de passe contre chaque autre mot de passe pour trouver le meilleur candidat.

def get_next_guess(passwords):
  scores = {}
  for candidate in passwords:
    results = []
    remainder = (x for x in passwords if x != candidate)
    for correct_pw in remainder:
      no_alternatives = len(refine(remainder, candidate,
                                   distance(candidate, correct_pw)))
      results.append(no_alternatives)
    scores[candidate] = max(results)
  return min(scores, key = lambda x: scores[x])

Sur mon ordinateur, il devine immédiatement "parties", ce qui est une chance, car "battre" aurait été une autre bonne supposition. Regardons plutôt celui de la capture d'écran, où le mot de passe correct était 'WAITING'.

>>> passwords = ["cleanse", "grouped", "gaining", "wasting", "dusters", "letting", "endings", "fertile", "seeking", "certain", "bandits", "stating", "wanting", "parties", "waiting", "station", "maltase", "monster"]
>>> get_next_guess(passwords)
'wanting'
>>> #incorrect, 6/7 correct
>>> passwords = refine(passwords, "wanting", 6); passwords
['wasting', 'waiting']

Avec deux mots de passe restants, get_next_guess devient essentiellement un jet de dé. Il suffit d'essayer le premier, puis le second, et vous avez terminé en trois essais, sans recommencer.

(Aparté amusant. Vous savez le lien que Colin D a partagé avec la liste des mots de passe à 12 caractères ? L'auteur a choisi APPRECIATION . C'est en fait la meilleure hypothèse ! Dans ce cas, il ne vous reste pas plus que deux alternatives, quel que soit le mot de passe correct).

0 votes

Vous laissez donc Python faire le travail d'écriture à votre place ?

0 votes

Le forçage brutal est plus rapide.

5 votes

... Pourquoi, oui, c'est certainement un beaucoup une solution plus simple. tousse tousse

3voto

Nolonar Points 41610

J'utilise un algorithme assez simple, mais étonnamment efficace, qui peut être réalisé sans prendre de notes et qui peut conduire à la réponse relativement rapidement :

Je vais expliquer mon algorithme étape par étape et en utilisant votre capture d'écran comme exemple. Pour notre exemple, nous allons supposer que le résultat est WAITING . Pour ne pas avoir à faire défiler l'écran en permanence, j'incorpore la capture d'écran dans cette réponse. Screenshot


Étape 1 :

Sélectionnez le premier mot : CLEANSE le résultat est 0

Étape 2 :

Allez-y pour les parenthèses ( voir la réponse de @ColinD ) jusqu'à ce que vous ayez récupéré votre tentative perdue ou qu'il n'y ait plus de bracket à utiliser (supposons que j'ai récupéré ma tentative perdue sur la première paire de bracket). La raison pour laquelle nous faisons cela à l'étape 2, et non à l'étape 1, est que vous commencez à pirater avec le plus grand nombre de tentatives possible. Dans ce cas, vous ne pouvez pas avoir plus de 4 tentatives.

Étape 3 :

Passez au mot suivant GROUPED et comparez-le avec les mots précédents que vous avez essayés. Ils ont tous deux un E en commun, mais ceux-ci ne sont pas à la même position, donc la similarité entre les deux est 0, ce qui correspond à notre solution potentielle ; le résultat est 0 ici aussi...

Étape 4 :

En supposant que vous n'ayez pas utilisé toutes les parenthèses, ce serait le moment idéal pour chercher une autre tentative supplémentaire.

Étape 5 :

Rincez et répétez. GAINING a une similarité de 1 par rapport à GROUPED donc ce n'est pas notre parole. WASTING a une similarité de 0 par rapport à l'un ou l'autre CLEANSE o GROUPED (nous ne pas comparer WASTING a GAINING puisque nous avons sauté cette étape) ; le résultat est 6 cette fois-ci, Yeehaa !!

Étape 6 :

A partir de maintenant, ça va être rapide : Nous cherchons un mot qui diffère de WASTING par une seule lettre. DUSTERS , LETTING , ENDINGS , FERTILE , SEEKING , CERTAIN , BANDITS , STATING , Non, non et non ! WANTING , Oui ! le résultat ici est 6 encore une fois.

Étape 7 :

A partir de là, nous savons que notre solution est WA*TING . Avant de poursuivre, nous regardons combien de tentatives nous avons, et combien de WA*TING mots restent. Si nous n'avons plus qu'une seule tentative et plus d'une solution possible, nous essayons de trouver une tentative supplémentaire en utilisant les parenthèses. Dans notre cas, il ne reste qu'un seul mot, WAITING qui est notre solution.


Dans notre exemple, nous avons utilisé 4 tentatives (mais nous en avons récupéré une), donc il s'en est fallu de peu.
Normalement, vous trouverez la solution beaucoup plus rapidement, car il y a beaucoup de paires de crochets utiles (dans notre exemple, il n'y avait qu'une seule paire).

Vous n'avez pas besoin d'un stylo ou d'un papier pour utiliser cet algorithme, puisque l'interface graphique vous montre déjà les mots que vous avez essayés (pas tous, mais la plupart d'entre eux sont suffisants), de sorte que vous n'avez pas besoin de vous en souvenir, lorsque vous comparez votre mot actuel avec les mots précédents.

Gardez toujours un œil sur le nombre de tentatives qu'il vous reste ! S'il ne vous reste qu'une seule tentative, qu'il n'y a plus de parenthèses à utiliser et qu'il y a plus d'une solution potentielle, alors arrêtez de pirater et essayez à nouveau.

Ceci étant dit, je vous souhaite la meilleure des chances.
Oh, et n'essayez pas de pirater mon PC, parce que je serais vraiment triste si vous le faisiez.

'-(

0 votes

"par une seule lettre." "WANTING" fait 7, pas 6 lettres :P

0 votes

@badp J'étais un peu confus par votre commentaire précédent, mais j'ai trouvé la faille dans ma réponse grâce à lui finalement. Après avoir essayé WANTING o WASTING J'ai dit que le résultat serait 5, mais en fait c'est 6. Je peux être vraiment stupide parfois, lol...

0 votes

Attendez d'avoir choisi 3 pour passer aux crochets. Soit on enlèvera suffisamment d'objets pour que vous puissiez choisir le bon, soit votre allocation sera reconstituée, ce qui vous donnera 7 tentatives pour obtenir le bon mot de passe

1voto

Maksee Points 1115

Vous pouvez essentiellement automatiser le piratage avec ce mod sur Nexus .

Avec ce mod, le piratage des terminaux est vraiment plus facile ! Vous pouvez choisir UN de ces esp :

Piratage_facile_5_8 : Les terminaux afficheront 5-8 mots possibles au lieu de 5-20 dans le jeu original. Lucky_hacking_5 : seulement 5 mots Action_Boy_hacking : seulement 1 mot possible, je ne veux pas perdre mon temps avec ça ! perdre mon temps avec ça ! ( plus proche des anciens fallouts )

Au fait, les terminaux ont toujours besoin de compétences scientifiques pour s'ouvrir.

Sélectionnez le Action_Boy_hacking option. Désactivez ou supprimez les autres fichiers ESP.


Vous pouvez peut-être réduire davantage le délai avec Les ajustements de lStewieAl :

Transition plus rapide du piratage - diminue le délai après avoir réussi à de 3 secondes à 0,5 seconde après un piratage réussi.

note :

Tous les tweaks sont désactivés par défaut et doivent être activés dans l'ini fourni.

0 votes

Je viens de remarquer que cette question concerne à la fois Fallout 3 et New Vegas. Je mettrai bientôt à jour ; au moins ce dernier mod a une version NV .

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X