Algoritmo per capire la posizione della bandiera nemica in Stratego

0

Attualmente sto programmando un gioco Stratego in JavaScript , semplicemente perché volevo imparare a usare JavaScript mentre spendevo del tempo per mantenere le mie capacità di programmazione alla pari. (I miei attuali incarichi di lavoro non comportano alcuna programmazione.) Questa informazione non è del tutto pertinente. : -)

Il fatto è che adesso la mia IA funziona già abbastanza bene. L'IA ricorda i ranghi di pezzi che sono già stati rivelati e catturerà o fuggirà a seconda di ciò. Anche i pezzi che non sono stati ancora rivelati vengono presi in considerazione. Ad esempio, un maresciallo non catturerà un pezzo se c'è un pezzo nascosto in esso, poiché quest'ultimo potrebbe essere una spia. Se la spia non è più in vita, il maresciallo avrà paura solo dei pezzi non in movimento, poiché quelli potrebbero essere bombe. Se un pezzo sconosciuto sale al Generale, quest'ultimo fuggirà, poiché il pezzo sconosciuto potrebbe essere un Maresciallo. Ecc, ecc.

Il mio problema è che l'AI è attualmente estremamente difensivo . Salterà sulle opportunità per catturare i pezzi, ma non "progetta" mai di spostarsi da nessuna parte, e mai prende la bandiera, dal momento che pensa che la Bandiera potrebbe anche essere una bomba.

La domanda è: ci sono dei pattern che possono essere usati come base per un algoritmo per capire dove potrebbe essere la bandiera del nemico? Quando i giocatori umani giocano l'uno contro l'altro, quali sono le loro tattiche per scoprire la posizione della bandiera?

(Nota: nella versione attuale, i pezzi vengono posizionati casualmente sul tabellone per entrambi i giocatori, ma in futuro consentirò al giocatore di piazzare i suoi pezzi come vuole, comunque.)

    
posta Lee White 06.10.2014 - 09:55
fonte

2 risposte

3

Indica alcuni dei pezzi di intelligenza artificiale come offensivi dovresti assegnare a certi pezzi un ruolo offensivo. Dovresti quindi decidere se una mossa offensiva o difensiva dovrebbe essere presa in un turno particolare. Prova a usare pezzi di numero basso, 2,4,5 per lo scouting e la determinazione dei ranghi dei pezzi (puoi anche inavvertitamente imbatterti nella bandiera in questo modo) quindi invia tre per distruggere le bombe. Una volta che il tabellone si è chiarito, invia i pezzi più alti. Potrebbe essere utile tenere un elenco di pezzi che hai designato come attaccanti, in modo che tu possa designarne di nuovi quando i vecchi muoiono. Questi sono solo alcuni pensieri, per iniziare. Dovresti provare un po 'di idee e vedere cosa funziona meglio. Prova a inviare ondate di attacchi, o magari aspettare di scatenare un attacco massiccio ... Ci sono tutti i tipi di strategie che l'IA può emulare. Forse anche una sola strategia non è ottimale. Prova ed errore è il tuo migliore amico qui. In bocca al lupo; Adoro quel gioco!

    
risposta data 06.10.2014 - 10:54
fonte
1

Non ricordo come giocare a Stratego, ma in generale se vuoi incoraggiare un certo tipo di comportamento nella tua IA (cioè essere offensivo) devi assegnare un certo valore a quel tipo di comportamento.

Pensa a valutare ogni potenziale mossa sul suo impatto sulla forza complessiva di una posizione. Chiedi: "Quali sono le possibilità che la mia posizione sia migliore o peggiore se faccio questa mossa?"

Concentrando l'attenzione sulla probabilità di un risultato positivo, la tua IA a volte effettua mosse offensive, ma che sono rischi calcolati .

    
risposta data 06.10.2014 - 14:24
fonte

Leggi altre domande sui tag