Browse Source

Refactoring lose&feldFrei

main
Jannis 2 years ago
parent
commit
755948f0b4
  1. 17
      .vscode/c_cpp_properties.json
  2. BIN
      src/Umgebung
  3. 18
      src/Umgebung.c

17
.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
}

BIN
src/Umgebung

18
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;
}
}

Loading…
Cancel
Save