in meiner funktion geht das darum eine liste mit freien feldern (koordinaten) eines spielfeldes zu erstellen. Frei bedeutet Feldwert 99.
Nun verzweifele ich eine solche Liste zu realisieren. Hat hier jemand einen guten Tip, oder zumindest eine Erklärung für die Fehler die er meldet? Ich komme einfach nicht weiter.
struct FELD {
int x;
int y;
}
FELD kachel={99,99}
int liste[]=kachel;
int i=0;
for (int spalte=0;spalte<5;spalte++){
for (int zeile=0;zeile<5;zeile++){
if (pos[spalte][zeile]==99 ){
liste[i]=(FELD){spalte,zeile};
i++;
randomSeed(analogRead(0));
//pos[spalte][zeile]=random(0,1); // zufälligen buchstab in leerfeld ablegen
}
}
}
Serial.print("Anzahl leerfelder:");
Serial.print(i);
Serial.print("\n");
Serial.print("Anzahl Möglichkeiten in Liste:");
Serial.print( sizeof(liste) );
Serial.print("\n");
dazu meldet er:
MeikeV0.1.ino:311:8: error: expected initializer before 'kachel'
MeikeV0.1.ino:312:15: error: 'kachel' was not declared in this scope
MeikeV0.1.ino:319:25: error: cannot convert 'seedLetter()::FELD' to 'int' in assignment
Vielen Dank für die Rückmeldungen & Hinweise!
Ich habe es dank euch nun fehlerfrei umsetzen können, allerdings ist das Ergebnis Müll.
Ist schon seltsam das er beim Schleifendurchlauf auf 100 kommt, statt auf 25 (5*5).
Und in der Liste sollten nur die Werte der Koordinaten (0-4) zu finden sein (da 5 Spalten und 5 Zeilen).
Es wäre schön, wenn ihr nochmal einen Tip geben könntet.
Hier nochmal mein Code:
struct FELD {
int x;
int y;
};
typedef struct FELD Kachel;
Kachel kachel;
FELD liste[25];
int i=0;
for (int spalte=0;spalte<5;spalte++){
for (int zeile=0;zeile<5;zeile++){
if (pos[spalte][zeile]==99 ){
kachel.x = spalte;
kachel.y = zeile;
liste[i] = kachel;
i++;
}
}
}
Serial.print("Anzahl leerfelder:");
Serial.print(i);
Serial.print("\n");
Serial.print("Anzahl Möglichkeiten in Liste:");
Serial.print( sizeof(liste) );
Serial.print("\n");
Serial.print("Debug Dump-Liste:\n");
if (sizeof(liste)>0){
for (int u=0;u<sizeof(liste);u++ ){
Serial.print("u:");
Serial.print(u);
Serial.print(":");
kachel=liste[u];
Serial.print( kachel.x,kachel.y );
Serial.print("\n");
}
//randomSeed(analogRead(0));
//pos[spalte][zeile]=random(0,1); // zufälligen buchstaben in leerfeld ablegen
}