Dato un insieme di tessere su una griglia, voglio determinare:
- Se le tessere formano una figura chiusa
- Se le tessere formano una figura chiusa quando contate i lati del tabellone come un bordo della figura
- Se una delle due precedenti affermazioni è vera, quali tessere aggiuntive rientrano nella figura racchiusa si formano le tessere iniziali.
Il giocatore inizierà premendo su una tessera, quindi trascinando il dito su altre tessere per creare una catena di tessere dello stesso colore. Controllerò mentre vado per vedere se la tessera successiva è valida. Ex. Se il giocatore comincia una tessera rossa, la loro unica mossa successiva valida è quella di una tessera rossa adiacente (diagonali fanno conteggio). Quando l'utente alza il dito, devo essere in grado di verificare i 3 elementi sopra.
Quindi il mio pensiero iniziale era che, dato che stavo controllando la validità della catena ogni volta che andavo, quando il giocatore ha alzato il dito ho potuto verificare se la prima e l'ultima tessera erano adiacenti. (So già che sono dello stesso colore.) Se fossero adiacenti avrei avuto la sensazione che avessi fatto una figura chiusa, e sarei venuto qui per provare a vedere se mi mancava qualcosa di grosso, e per ottenere una sorta di prova logica / matematica che il mio sospetto era corretto (o un esempio che lo dimostrava errato).
Ma fu allora che pensai all'articolo numero 2: devo anche tenere conto delle catene che usano un bordo della tavola come un lato della figura allegata. In tal caso, il primo e l'ultimo oggetto della catena non sarebbero adiacenti, ma avrei comunque una figura chiusa. Quindi ora sono tornato al punto di partenza, un po '.
Cosa posso fare con questa catena di coordinate della griglia per capire se formano una figura chiusa o no? E una volta che non so di avere una figura allegata, qual è il modo migliore per ottenere un ulteriore elenco di tutte le tessere che cadono dentro i suoi limiti?
Sopra ho disegnato le foto di ciò che mi aspetto possano essere i 4 possibili risultati di questo test.
La catena non fa una figura chiusa.
La catena fa una figura chiusa.
Se contate i lati della tavola come un bordo (o più di un bordo) della figura, la catena crea una figura chiusa.
La catena crea una figura chiusa, ma ci sono punti dati aggiuntivi (selezionati validamente dall'utente come parte della catena) che non fanno parte della figura creata.
Il caso 4 è il più complicato, perché dovresti estrarre le maglie "extra" per trovare la figura racchiusa e i pezzi che cadono al suo interno (ma non attorno all'area "non chiusa").
Quindi ... Qualcuno ha un'idea di un buon modo per risolvere questo, o solo un punto di partenza per me? Sto andando in tondo a questo punto e potrei usare un'altra serie di occhi.