Il programma proposto svolge solo alcune operazioni di base:
disegna la griglia di gioco e disegna una pedina all’interno di una casella.
Si vuole introdurre la funzione che, a partire dal basso, colloca le pedine una sopra l’altra, non nel punto in cui si fa clic.
Di seguito verranno fornite le indicazioni per ottenere l'effetto desiderato:
Dopo aver calcolato le coordinate di riga e di colonna (
x=xPos/20, y=yPos/20), all’interno della funzione Pedina,
e prima di decidere il colore della pedina da disegnare, si deve individuare all’interno della colonna la prima casella vuota, a partire dal basso.
Per fare questa operazione, quindi, occorre gestire una matrice in memoria che riproduce lo stato del gioco.
ad esempio una cella contenente 0 indica che la casella corrispondente è vuota, mentre una cella contenente 1 indica che la cella corrispondente
è occupata dalla pedina rossa e una cella contenente 2 indica che la cella è occupata dalla pedina verde.
- Tra le proprietà della classe Griglia bisogna includere la dichiarazione di una matrice delle stesse dimensioni della griglia disegnata sull’area canvas;
- La classe non possiede il costruttore, ma per assegnare il valore 0 a tutte le celle della matrice è necessario dichiarare un costruttore che svolga questa operazione;
- Per scandire le celle di una colonna occorre dichiarare una variabile intera locale alla funzione Pedina;
- Nel punto indicato (dopo il calcolo di y=yPos/20) bisogna inserire le seguenti operazioni:
- Se la colonna è piena si esce dalla funzione,
- a iniziare dalla cella più in basso nella colonna cercare, verso l’alto, una cella contenente un valore≠0,
- La coordinata così trovata deve essere usata per disegnare la pedina,
- Nella corrispondente cella della matrice inserire il valore 1 o il valore 2 a seconda del turno di gioco.
- a questo punto, dopo aver cambiato il turno del giocatore, si può usare una zona laterale alla griglia per indicare il turno
del giocatore con pedina rossa o il giocatore con pedina nera.