Ciao a tutti, sto lavorando alla versione visuale di un vecchio gioco che facevo in classe sul quaderno con il compagno di banco e mi sono bloccato a fronte delle mie lacune in matematica.
Ma andiamo con ordine, per prima cosa ecco i dati:
Due punti adiacenti sono separati da una sola unità di distanza (sarebbero le lineette grige) verso l' alto, il basso, a destra o a sinistra.
Un gruppo di punti è composto da punti adiacenti dello stesso colore.
Un gruppo di punti si definisce intrappolato quando non è più possibile posizionare adiacente ad esso un altro punto dello stesso colore.
A titolo di esempio allego l' immagine di alcuni gruppi di punti intrappolati.
http://i47.tinypic.com/vgkb9e.pn
Con queste premesse sto cercando di trovare un metodo generale per capire se un gruppo di punti è intrappolato, il programma infatti deve tracciare una linea attorno ai gruppi di punti intrappolati.
Io pensavo di usare un metodo ricorsivo che per ogni punto controlla i 4 punti adiacenti, saltando quelli che ha gia controllato, e conta i punti di colore diverso.
La ricorsione continua quando trovo un punto dello stesso colore e si blocca quando incontra una posizione vuota o la fine della griglia.
Adesso sto cercando di capire se è possibile dedurre l' intrappolamento di un gruppo dal numero di punti di colore diverso adiacenti al gruppo ma sono a un punto morto.
Se può essere utile ai fini del problema la griglia è rappresentata da una matrice di caratteri che contiene
v -> posizione vuota
r -> punto rosso che il metodo ricorsivo non ha ancora controllato
R -> punto rosso che il metodo ricorsivo ha gia controllato
n -> punto nero che il metodo ricorsivo non ha ancora controllato
N -> punto nero che il metodo ricorsivo ha gia controllato.
Detto questo spero di aver postato nella sezione giusta e mi scuso se il mio problema non è strettamente informatico, se avete qualche idea comunque mi fate un favore