====== Kryds & Bolle med Multidim-array som model ====== {{ :images:tictactoe.png?200 |}} === Mål === * Bruge multidimensionelle arrays som model for spillet. * Øvelse i at anvende objekter, multidimensionelle arrays, input og logik for spil. === Beskrivelse === Lav et spil kryds og bolle, hvor brættet er et 3x3 multidimensionelt array, der indeholder objekter af typen Brik. En brik kan være et kryds eller en bolle. ( i kan skrive en text 'X' / 'O', eller kan indsætte et billede) \\ Spilleren kan klikke på en tom celle for at placere sin brik. Programmet skal kunne tjekke, om en spiller har vundet efter hvert træk. Klassen Brik: class Brik { String type; // "X", "O" Brik(String t) { type = t; } void display(int x, int y, int size) { fill(0); textAlign(CENTER, CENTER); textSize(32); text(type, x + size/2, y + size/2); } } Hints til implementering: * Tegn board udfra definerede variable **cellSize**, og **boardX**, samt **boardY** * Brug nested loops til at tegne hver Brik med brik.display(x, y, size). * Placer brikker ved klik * Brug mousePressed() til at finde hvilken celle, der blev klikket på. * Hint: brug variabel **cellSize**, og **boardX**, samt **boardY** - sammen med mouseX og mouseY til at beregne hvilket felt der et klikket på. * Skift aktiv spiller efter hver placering af Brik. * Tjek for vinder * Lav en funktion checkWinner() som tjekker rækker, kolonner og diagonaler. * Hvis tre ens brikker er i en linje, har den aktive spiller vundet. === Bonus === * Istedet for at bruge String til at angive typen, anvend nu istedet ENUM. * Skift spiller efter hvert træk.