Quali schemi di progettazione possono essere utilizzati per creare un sistema di regole / convalida per un gioco come gli scacchi (questo è solo un semplice esempio, il gioco reale richiede serie di regole più difficili)
Ho letto diverse domande su questo sito e non ho trovato una risposta definitiva né una risposta che mi indichi nella giusta direzione.
Questo sistema richiederebbe quanto segue:
- Ogni oggetto a cui sono applicate regole deve implementare un'interfaccia specifica con un metodo che è il punto di partenza per la convalida
- La regola deve essere applicata in 2 passaggi: in primo luogo, deve essere convalidata (può eseguire il pedone A per passare al quadrato D4), se vero quindi eseguire il metodo A se falso quindi eseguire il metodo B
- Ogni oggetto può avere più regole che devono essere applicate in una sequenza specifica. Al termine della regola 1, la regola 2 dovrebbe quindi iniziare a convalidare ecc
- Ogni regola separata (ad esempio: può muovere solo di 1 quadrato, può muoversi solo in diagonale ecc.) Deve essere nella sua classe e deve essere riutilizzabile e applicabile agli oggetti che necessitano di regole.
- Nota che questo verrà usato in una partita multiplayer nel backend
- Nota che ogni regola ha bisogno di più oggetti per verificarne la validità, ad esempio, normalmente una pedina può muovere di 1 quadrato, ora il riquadro successivo sul tabellone è riempito da un pedone del tuo avversario. Risultato: la tua pedina non può muoversi. Il pedone dovrebbe includere le altre posizioni dei pedoni o il tabellone nella sua validazione.
Un'altra parola per queste regole sarebbe limiti comportamentali.