Come programmatore principiante, non so come pensare concettualmente al bruto-forzante. La mia mente non può davvero capire come scrivere codice che proverà ogni possibilità.
Ho un problema che voglio risolvere. Ecco uno snippet di codice (ci sono altre funzioni, ma non c'è motivo di includerle qui, fanno solo un lavoro in background):
main():
step_segment = [] # contains current segment
STATS = [250,0,0,0,13,0] # contains 1 step (current step stats)
# STATS = [step_id, danger, danger_limit, rnd, b_loop, enc]
# Temporary Interface
choice = None
while choice != "0":
print \
"\n1 - Benchmark Run"
choice = raw_input("Choice: ")
if choice == "0":
print "\nGoodbye."
elif choice == "1":
while (len(step_segment)) < 128:
step_segment, STATS = take_step(step_segment, STATS)
if STATS[5] == "B":
"Dont know what to do here. Try every possibility!?"
L'obiettivo: voglio produrre un elenco di ogni "percorso" possibile attraverso un segmento, insieme al tempo necessario.
Descrizione:
-
Farò un passo nel percorso (C'è solo una direzione: avanti). Ogni volta che faccio un passo, le mie statistiche sono aggiornate. Questo fa un passo e aggiorna le statistiche:
step_segment, STATS = take_step(step_segment, STATS)
-
Viene tenuto un elenco di passaggi presi, insieme alle statistiche %codice%. Questo è così che posso 'annullare' una quantità arbitraria di passi, se voglio Per annullare un passo chiama la funzione:
step_segment
-
Riesco a vedere quanto tempo ha impiegato il mio percorso corrente:
step_segment, STATS = undo_step(step_segment, STATS)
. -
Ad un certo punto, entrerò in una battaglia. Vado in una battaglia quando
time = frames(step_segment)
-
Quando c'è una battaglia, ho semplicemente due scelte: i. Combatti battaglia, o ii. scappa.
-
Se voglio combattere, faccio:
STATS[5] == "B"
. Questo riporta anche che ho scelto di combattere, insieme con le statistiche, instep_segment = do_fight(step_segment, STATS)
. (Quindi posso annullare, se voglio). -
Se voglio eseguire Away, faccio:
step_segment
.
Qualcuno mi può consigliare, come posso codificare un forcer bruto per questo problema?
Specificamente , vorrei sapere come posso dire al computer di provare ogni possibilità; Semplicemente non riesco a pensare a come ... >. < '
Voglio vedere ogni possibile combinazione di Run & Combatti (le uniche due scelte, quando raggiungo una battaglia).
Ci sono solo circa 200 possibilità. Ho solo bisogno di fare 128 passi, quindi ci sono un numero finito di possibilità, quindi: step_segment = run_away(step_segment,STATS)
.
Non so come realizzare una cosa del genere in Python. La mia intera ragione per imparare a programmare è risolvere questo problema ..
Penso di poter spiegare la soluzione in inglese, come ho fatto sopra, ma non so come codificarla. Sarei molto riconoscente se qualcuno potesse consigliarmi su questo !!
Grazie.