Schiebepuzzle in C?

Implementieren Sie ein 15er Schiebepuzzle unter Verwendung eines zweidimensionalen Feldes. Legen Sie sinnvolle Funktionen an, um das Programm in mehrere Teilaufgaben zu zerlegen. Für die Ausgabe können Sie, um das Layout ansprechender zu gestalten, die Header-Datei conioex.h einbinden.

Mein Code:

#define ROWS 4
#define COLS 4

void zufaelligBefuellen(int feld[][COLS]);
void feldAusgeben(int feld[][COLS]);
int spielzug(int feld[][COLS]);
int spielgeloest(int feld[][COLS]);

int main() {
  int spielfeld[ROWS][COLS] = { 0 };
  int nochNichtGeloest = 1;
  int stein = 0;

  srand(time(NULL));

  zufaelligBefuellen(spielfeld);

  while (nochNichtGeloest) {
    feldAusgeben(spielfeld);
    spielzug(spielfeld);
    nochNichtGeloest = spielgeloest(spielfeld);
  }

  feldAusgeben(spielfeld);
  return EXIT_SUCCESS;
}

/*
  Name: zufaelligBefuellen
  Parameter: feld[][COLS]
  Description: Befüllt das Feld mit zufälligen Zahlen bis 16.
*/
void zufaelligBefuellen(int feld[][COLS]) {
  int i = 0, zeile = 0, spalte = 0;

  // 16 ist das freie Feld
  for (i = 1; i <= ROWSCOLS; i++) {
    zeile = rand() % 4;
    spalte = rand() % 4;
  
    if (feld[zeile][spalte] == 0) {
      feld[zeile][spalte] = i;
    }
    else {
      i--;
    }
  }
}

/*
  Name: feldAusgeben
  Parameter: feld[][COLS]
  Description: Gibt das befüllte Feld aus.
*/
void feldAusgeben(int feld[][COLS]) {
  int zeile = 0, spalte = 0;
  
  for (zeile = 0; zeile <= ROWS - 1; zeile++) {
    for (spalte = 0; spalte < COLS; spalte++) {
      printf("%d\t", feld[zeile][spalte]);
    }

    printf("\n");
  }
}
                      
/*
  Name: spielzug
  Parameter: feld[][COLS]
  Description: Bewegt den Stein mit der eingegebenen Nummer an die leere Stelle.
*/
int spielzug(int feld[][COLS]) {
  int zeile = 0, spalte = 0;
  int stein = 0;

  printf("\nWelchen Stein wollen Sie bewegen? ");
  scanf("%d", &stein);

  if (stein == 16) {
    printf("_");
  }

  // Überprüfen, ob Zug möglich. Wenn ja,vertauschen.
  //4 if Anweisungen
}

/*
  Name: spielgeloest
  Parameter: feld[][COSLS]
  Description: Überprüft, ob die Zahlen in der richrigen Reigenfolge stehen von 1 - 15 und zum Schluss der letzte Wert mit 16 (leeres Feld).
*/
int spielgeloest(int feld[][COLS]) {

Ich komme nicht weiter und bitte daher um Hilfe.

...zum Beitrag

hello bitte um Hilfe

...zur Antwort

vielleicht 2002 glaub ich zwar nicht aber außer die dei schnon erwähnt wurden kenne ich keins

...zur Antwort