diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..847ee83 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,17 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**", + "UnityTest/src" + ], + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "gnu17", + "cppStandard": "gnu++17", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/src/Umgebung b/src/Umgebung index 4de14da..7251b25 100755 Binary files a/src/Umgebung and b/src/Umgebung differ diff --git a/src/Umgebung.c b/src/Umgebung.c index 06665e1..b123648 100644 --- a/src/Umgebung.c +++ b/src/Umgebung.c @@ -141,21 +141,21 @@ void Apfel(int realU[N][N]){ } } //Die Funktion überprüft, ob das Feld bereits vom Schlangenkoerper besetzt ist. -int feldFrei(int realU1[N-1][N-1], int ii, int jj){ - if (realU1[ii][jj] == 0) +int feldFrei(int realU[N][N], int ii, int jj){ + if (realU[ii][jj] == 0) { return 1; } return 0; } -int lose(int realU[N][N], int realU1[N-1][N-1], char richtung){ +int lose(int realU[N][N], char richtung){ int groesste = 0; //Suche den Kopf der Schlange int ii, jj; for(int i = 0; i < N ; i++){ for(int j = 0; j < N; j++){ - if (realU1[i][j] > groesste){ - groesste = realU1[i][j]; + if (realU[i][j] > groesste && realU[i][j] != (N * N) + 1){ + groesste = realU[i][j]; ii = i; jj = j; } @@ -163,25 +163,25 @@ int lose(int realU[N][N], int realU1[N-1][N-1], char richtung){ } //Ueberpruefe ob eine Bewegung nach oben moeglich ist if(richtung == 'u'){ - if(realU[ii - 1][jj] != 0 || feldFrei(realU1, ii-1, jj) == 1){ + if(realU[ii - 1][jj] != (N* N) + 1 && feldFrei(realU[N][N], ii-1, jj) == 1){ return 1; } } //Ueberpruefe ob eine Bewegung nach unten moeglich ist if(richtung == 'd'){ - if(realU[ii + 1][jj] != N || feldFrei(realU1, ii+1, jj) == 1){ + if(realU[ii + 1][jj] != N || feldFrei(realU, ii+1, jj) == 1){ return 1; } } //Ueberpruefe ob eine Bewegung nach links moeglich ist if(richtung == 'l'){ - if(realU[ii][jj-1] != 0 || feldFrei(realU1, ii, jj-1) == 1){ + if(realU[ii][jj-1] != 0 || feldFrei(realU, ii, jj-1) == 1){ return 1; } } //Ueberpruefe ob eine Bewegung nach rechts moeglich ist if(richtung == 'r'){ - if(realU[ii][jj + 1] > N || feldFrei(realU1, ii, jj+1) == 1){ + if(realU[ii][jj + 1] > N || feldFrei(realU, ii, jj+1) == 1){ return 1; } }