int AH=4; // Anzahl der Memorykarten in der Höhe
int AB=6; // Anzahl der Memorykarten in der Breite
float rh; // Abstand zwischen dem Bildschirmrand und den Memorykarten in der Höhe
float rb; // Abstand zwischen dem Bildschirmrand und den Memorykarten in der Breite
float h; // Abstand zwischen rh 1 und rh 2
float b; // Abstand zwischen rb 1 und rb 2
float m; // Länge & Breite der Memorykarten
float a; // Abstand zwischen den Memorykarten
int value = 0; // ???
PImage[] img; // Bilderarray
int imnr = 0; // Bildnummer
int[ ] karten; // Kartenarray
int[] kartenstatus; /* 0: schwarze Seite der Karte wird gezeichnet, 1: Bild wird gezeichnet(= Karte aufgedeckt), 2: Kartenpaar wurde richtig aufgedeckt,
wird nicht mehr gezeichnet
*/
// aufgedeckt;
void setup() {
fullScreen();
rh=height/10;
rb=width/10;
h=height - 2*rh;
b=width - 2*rb;
m=(b/(1.1*AB-0.1))*0.95;
a=m/10;
kartenstatus = new int[AH*AB];
for (int i=0; i<kartenstatus.length; i++) {
kartenstatus[i]=0;
draw();
}
kartenstatus[5] = 2;
}// Kartenstatus wird festgelegt
// To Do:
void draw () {
background (255);
zeichneSchrift();
imnr=0;
zeichneMemorykarten();
imageMode(CORNER) // Bilder werden geladen
img = new PImage[18];
for (int i=0; i<img.length; i++) {
img[i]= loadImage ("Bilder/image"+i+".jpg");
}
karten = new int[AH*AB]; // Kartenpärchen werden zugeordnet
for (int i = 0; i< karten.length; i++) {
karten[i] = i/2;
}
for (int i=0; i<karten.length; i++) { // Karten werden mithilfe eines Zufallswertes durchmischt, bis jede Karte mindestens einmal getauscht wurde
int x = int(random(AH*AB));
int dummy = karten[i];
karten[i] = karten[ ];
karten[ ] = dummy;
}
for (int i=0; i<karten.length; i++) { // momentan noch zur Kontrolle, ob Durchmischungsprozess funktioniert
print(" "+karten[i]);
}
}
void zeichneSchrift () { // Schrift wird gezeichnet
textSize(20);
fill(0);
text ("Spieler A", 30, 30);
text ("gewonnene Paare:", 30, 60);
text ("Spieler B", 956, 30);
text ("gewonnene Paare:", 956, 60);
}
void zeichneMemorykarten () {
for (int i=0; i<AB; i++) {
for (int j=0; j<AH; j++) {
if (kartenstatus[j*AB+i]==0) { // wenn der Kartenstatus 0 ist, wird die schwarze Seite der Karten gezeichnet
stroke(255);
fill(0);
rect (rb+i*(m+a), rh+j*(m+a), m, m);
} else if (kartenstatus[j*AB+i]==1) {// wenn der Kartenstatus 1 ist, wird das Bild gezeichnet; To Do: darf pro zug nur 2-mal durchlaufen!!!
image (img[karten[j*AH+i]], rb+i*(m+a), rh+j*(m+a), m, m );
imnr++;
if (imnr>=18) imnr=0;
}
}
}
}
void karteAnklicken(int x, int y) { // Kartenstatus einer Karte wird abgefragt
if (kartenstatus[x*y]=0) kartenstatus[x*y] = 1;
else kartenstatus[x*y]= 1;
}
mouseReleased();
{
int x=-1;
int y = -1;
x= ((int)mouseX- (int)rb)/((int)m+(int)a);
println(mouseX);
y= ((int)mouseY- (int)rh)/((int)m+(int)a);
println (mouseY);
karteAnklicken(x, y);
}
}
/that’s what’s written on the console:
“expecting SEMI, found ‘img’
Syntax error, maybe a missing semicolon?”/