Sto cercando di fare il risolutore dragamine. Come sai ci sono 2 modi per determinare quali campi nel campo minato sono sicuri da aprire, o per determinare quali campi sono estratti e devi segnalarlo. In primo modo per determinare è banale e noi abbiamo qualcosa di simile:Soluzione algoritmica per Dragamine
if (numero di mine attorno X - attuale numero di miniere di scoperte intorno X) = numero di campi aperti intorno X poi Tutti i campi aperti intorno a X sono minate
se (numero di miniere di tutto X == attuale numero di miniere di scoperte intorno X) quindi Tutti i campi aperti intorno a X non sono estratti
Ma la mia domanda è: che dire di situazione in cui non siamo in grado di trovare qualsiasi estratto o campo sicuro e abbiamo bisogno di guardare più di 1 campo?
http://img541.imageshack.us/img541/4339/10299095.png
Per esempio questa situazione. Non possiamo determinare nulla usando il metodo precedente. Quindi ho bisogno di un aiuto con l'algoritmo per questi casi.
Devo usare l'algoritmo A * per farlo. Ecco perché ho bisogno di tutti gli stati sicuri possibili per il prossimo passo nell'algoritmo. Quando trovo tutti i possibili stati sicuri li aggiungerò al percorso corrente più breve e, in base alla funzione euristica, ordinerò l'elenco dei percorsi e sceglierò il prossimo campo che deve essere aperto.
Si potrebbe evitare di scrivere l'algoritmo e lasciare che il computer impari da solo, ma non posso dirti altro ...:/ – BlackBear
Non capisco l'immagine di esempio che fornisci. Il "2" più a sinistra indica che entrambi i campi nella seconda riga a sinistra sono estratti, ma il secondo "2" ne suggerisce solo uno. In che contesto di gioco si presenterebbe? Stai immaginando che le informazioni del gioco potrebbero essere contraddittorie? – pjmorse
Ma tu puoi trovare un campo sicuro in quell'immagine, usando il tuo algoritmo. Prendi il 2 circondato dai due; il numero di mine intorno ai due è uguale al numero attuale di mine scoperte intorno ai due. Quindi potresti scoprire il campo vuoto sopra di esso. Oppure, intendi, se avessi quel campo senza bandiere ancora segnato, come sapresti segnare quelle due bandiere? – Kevin