In generale, i problemi a cui finirai per correre dipenderanno da te e dai tuoi approcci. L'amico tende a dire che il complesso è semplice da una prospettiva diversa.
La scelta della libreria grafica dipende dal tipo di gioco che si intende scrivere? OpenGL è una scelta comune in questo tipo di progetti, ma potresti anche usare qualche libreria della GUI o semplicemente usare solo le librerie di Windows o di xorg. Se hai intenzione di fare fantasia, basta usare OpenGL.
domande si dovrebbe chiedersi:
è C++ scelta sensata per questo progetto? Considera anche C e/o python.La mia risposta a questo sarebbe che se vuoi solo scrivere reversi, vai python. Ma se vuoi imparare un linguaggio di basso livello, prima fai C. Il C++ è un'estensione da a C, quindi c'è altro da imparare lì che non c'è in C. E per il mio giudice, più che devi imparare su C++ non vale la pena.
Come si utilizza la libreria grafica? Se hai intenzione di fare effetti fantasiosi, vai al grafico della scena. Invece puoi semplicemente rendere la griglia di reversi con i pulsanti su di essa.
Come si dovrebbe implementare l'interfaccia utente, si dovrebbero utilizzare i concetti dell'interfaccia utente comuni? I concetti usuali dell'interfaccia utente (finestre, cornici, pulsanti, barre dei menu, finestre di dialogo) non sono così buoni come le persone pensano di essere, c'è molto lavoro per implementarli correttamente. Applica il grafico della scena per interpretare l'input e provare diversi modi intelligenti per controllare il gioco. Evita i menu introduttivi (sono lavori stupidi e inutili), usa gli argomenti della riga di comando per la maggior parte della configurazione.
ho ancora darvi alcune idee per iniziare:
tavolo Othello è 8x8, 64 celle in generale. È possibile assegnare un byte per ogni cella, che lo rende 64 byte per ogni stato della scheda. Sono 8 lunghe intere, non proprio per niente! È possibile memorizzare l'intero avanzamento del gioco e il giocatore non può nemmeno notarlo. Pertanto si consiglia di implementare la scheda othello come una struttura immutabile che si copia sempre quando si modifica uno stato. Ti aiuterà anche in seguito con la tua intelligenza artificiale e implementando una funzionalità di 'annullamento'.
Poiché un byte può memorizzare più informazioni di appena tre stati (VUOTO, NERO, BIANCO), suggerisco che fornirai anche due stati aggiuntivi (BLACK_ALLOWED, WHITE_ALLOWED, BOTH_ALLOWED). È possibile calcolare questi valori mentre si copia il nuovo stato.
Algoritmo per verificare dove è possibile inserire un blocco, potrebbe passare la scheda uno alla volta, quindi tracciare da celle vuote in ogni direzione per i regex-pattern: B + W => W ^, W + B => B^In questo modo puoi incapsulare le regole del gioco all'interno di una semplice interfaccia che si prende cura di tutto.
Stai parlando di implementare una strategia per i reversi o semplicemente lasciare giocare due giocatori sul computer? – Barth
una strategia. buona domanda. – EvilTeach