De afgelopen dagen heb ik voor school aan een simpele uitvoering van tictactoe (boter, kaas en eieren) gewerkt. Het spel bestaat uit een aantal klasse waarvan de onderstaande er een is. (nl Board)
Het spel werkt echter is er een probleem, ipv 9 integers op een rij te zetten, moet de code worden omgebouwt naar een systeem met rows en columns (3x3). De informatie moet dus in cellen worden geplaatst. Hiervoor mag ik een nieuwe klasse Cell aan het spel toevoegen.
Vraag:
Mijn vraag is nu, welke gedeelte behoord thuis in de (nieuwe) klasse Cell en welk behoord in Board te blijven. Ik snap het nut van die splitsing niet zo.. Ik neem zelf aan dat de tokens (X, O etc) dan naar Cell verhuizen, zodat deze 'eenvoudiger' aangepast kunnen worden ofzo??
De 'oude' code:
Het spel werkt echter is er een probleem, ipv 9 integers op een rij te zetten, moet de code worden omgebouwt naar een systeem met rows en columns (3x3). De informatie moet dus in cellen worden geplaatst. Hiervoor mag ik een nieuwe klasse Cell aan het spel toevoegen.
Vraag:
Mijn vraag is nu, welke gedeelte behoord thuis in de (nieuwe) klasse Cell en welk behoord in Board te blijven. Ik snap het nut van die splitsing niet zo.. Ik neem zelf aan dat de tokens (X, O etc) dan naar Cell verhuizen, zodat deze 'eenvoudiger' aangepast kunnen worden ofzo??
De 'oude' code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| public class Board
{
private static int aboard[] = new int[9]; // Maak een array aan.
private static String[] todraw = new String[9];
public static void tekenBoard() // Methode om het board te tekenen.
{
int[] fromBoard = Board.getArray(); // Vraag de array van klasse Board.
fromBoard = Board.getArray();
for (int i=0; i < 9; i++) // Loopje om alle 9 vakjes langs te gaan.
{
switch (fromBoard[i]) // Kijken welke waarde elk element heeft.
{
case 1: // Waarde 1 is een X
todraw[i] = "X";
break;
case 2: // Waarde 2 is een O
todraw[i] = "O";
break;
default: // Als het niet 1 of 2 is, is er niets, dus een .
todraw[i] = ".";
}
}
for (int i=2; i < 9; i=i+3) // Hier gaan we weer alle vakjes langs, maar in stappen van 3
{ // Hier wordt het board werkelijk getekend.
int j = (i - 2); // j wordt het eerste vakje.
int k = (i - 1); // k wordt het 2e vakje.
// i wordt het 3e vakje.
System.out.print("\t\t|\t\t|\t\t\n"); // De \t is een TAB. de \n is een nextline
System.out.print("\t" + todraw[j] + "\t|\t" + todraw[k] + "\t|\t" + todraw[i] + "\t\t" + j + "\t" + k + "\t" + i + "\n");
System.out.print("\t\t|\t\t|\t\t\n");
System.out.print("------------------------------------------------\n");
}
}
public void Board()
{
for (int i = 0; i < 10; i++)
aboard[i]=0; // Alles is standaard 0. 0 = leeg
}
public static int[] getArray() // Methode om de board array terug te geven.
{
return aboard;
}
public static void setArray(int pos, int token) // Methode om de array in te stellen.
{ // De waarde kan dus een 1 of 2 worden (X of O)
aboard[pos] = token;
}
} |
[ Voor 4% gewijzigd door Verwijderd op 31-03-2004 18:05 . Reden: spelfoutjuh ]