|
@ -11,7 +11,7 @@ |
|
|
int wallX = 0; |
|
|
int wallX = 0; |
|
|
//Horizontale Startposition der Wand im Array |
|
|
//Horizontale Startposition der Wand im Array |
|
|
int wallY = 0; |
|
|
int wallY = 0; |
|
|
//Wandlaenge, um Waende von der Startposition aus in das Array für das Spielfeld eintragen zu koennen |
|
|
|
|
|
|
|
|
//Wandlänge, um Wände von der Startposition aus in das Array für das Spielfeld eintragen zu können |
|
|
int wallLength = 0; |
|
|
int wallLength = 0; |
|
|
int binX; |
|
|
int binX; |
|
|
int binY = 10; |
|
|
int binY = 10; |
|
@ -41,7 +41,7 @@ int checkBallPosition(); |
|
|
|
|
|
|
|
|
#pragma endregion |
|
|
#pragma endregion |
|
|
|
|
|
|
|
|
//Ein struct für den Spieler erstellt um |
|
|
|
|
|
|
|
|
//Ein struct für den Spieler erstellt, um |
|
|
//jedem Spieler seinen Score zuweisen zu können |
|
|
//jedem Spieler seinen Score zuweisen zu können |
|
|
struct Player |
|
|
struct Player |
|
|
{ |
|
|
{ |
|
@ -49,7 +49,7 @@ struct Player |
|
|
int points; |
|
|
int points; |
|
|
} playerList[11]; |
|
|
} playerList[11]; |
|
|
|
|
|
|
|
|
//Methode die den Eimer erstellt |
|
|
|
|
|
|
|
|
//Methode, die den Eimer erstellt |
|
|
void buildBin(int width, int heigth) |
|
|
void buildBin(int width, int heigth) |
|
|
{ |
|
|
{ |
|
|
field[width][heigth] = 'V'; |
|
|
field[width][heigth] = 'V'; |
|
@ -71,13 +71,13 @@ void loadLevel(int lvlnum) |
|
|
|
|
|
|
|
|
switch (lvlnum) |
|
|
switch (lvlnum) |
|
|
{ |
|
|
{ |
|
|
//Level 1 nur der Korb wird Erstellt |
|
|
|
|
|
|
|
|
//Level 1: Nur der Korb wird erstellt |
|
|
case (1): |
|
|
case (1): |
|
|
binX = 12; |
|
|
binX = 12; |
|
|
binY = 10; |
|
|
binY = 10; |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
//Level 2-6 Zufällige Positionen für den Korb hinzugefügt |
|
|
|
|
|
|
|
|
//Level 2-6: Zufällige Positionen für den Korb hinzugefügt |
|
|
case (2): |
|
|
case (2): |
|
|
case (3): |
|
|
case (3): |
|
|
case (4): |
|
|
case (4): |
|
@ -97,7 +97,7 @@ void loadLevel(int lvlnum) |
|
|
binY = tmpY; |
|
|
binY = tmpY; |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
//Wind wird dem Level hinzugefügt |
|
|
|
|
|
|
|
|
//Wind wird dem Level 7 & 8 hinzugefügt |
|
|
case (7): |
|
|
case (7): |
|
|
binX = 2; |
|
|
binX = 2; |
|
|
binY = 7; |
|
|
binY = 7; |
|
@ -112,7 +112,7 @@ void loadLevel(int lvlnum) |
|
|
windForce = 1; |
|
|
windForce = 1; |
|
|
break; |
|
|
break; |
|
|
|
|
|
|
|
|
//Wände erscheinen jetzt in den Leveln |
|
|
|
|
|
|
|
|
//Wände erscheinen jetzt in den Leveln 9 & 10 |
|
|
case (9): |
|
|
case (9): |
|
|
windForce = -1; |
|
|
windForce = -1; |
|
|
binX = 8; |
|
|
binX = 8; |
|
@ -233,8 +233,8 @@ void generateField() |
|
|
if (scorePoints < 0) |
|
|
if (scorePoints < 0) |
|
|
scorePoints = 0; |
|
|
scorePoints = 0; |
|
|
|
|
|
|
|
|
//Hier wird Stück für Stück die Zahl aufgeteilt um alle |
|
|
|
|
|
//einzelenen Stellen in das Feld einzutragen |
|
|
|
|
|
|
|
|
//Hier wird Stück für Stück die Zahl aufgeteilt, um alle |
|
|
|
|
|
//einzelnen Stellen in das Feld einzutragen |
|
|
int tmp = scorePoints; |
|
|
int tmp = scorePoints; |
|
|
field[12][1] = '0' + tmp % 10; |
|
|
field[12][1] = '0' + tmp % 10; |
|
|
|
|
|
|
|
@ -285,7 +285,7 @@ void generateField() |
|
|
|
|
|
|
|
|
void addScoreboard() |
|
|
void addScoreboard() |
|
|
{ |
|
|
{ |
|
|
//Die txt wird geöffnet |
|
|
|
|
|
|
|
|
//Die .txt wird geöffnet |
|
|
FILE *fp = fopen("ScoreBoard.txt", "a+"); |
|
|
FILE *fp = fopen("ScoreBoard.txt", "a+"); |
|
|
char name[255]; |
|
|
char name[255]; |
|
|
|
|
|
|
|
@ -300,12 +300,12 @@ void addScoreboard() |
|
|
//Checkt Position vom Ball |
|
|
//Checkt Position vom Ball |
|
|
int checkBallPosition() |
|
|
int checkBallPosition() |
|
|
{ |
|
|
{ |
|
|
//Bei eineme Tor gibt es eine 1 zurück |
|
|
|
|
|
|
|
|
//Bei einem Tor gibt es eine 1 zurück |
|
|
if (binY + 2 == ballY && (ballX == binX || ballX == binX + 1 || ballX == binX - 1)) |
|
|
if (binY + 2 == ballY && (ballX == binX || ballX == binX + 1 || ballX == binX - 1)) |
|
|
{ |
|
|
{ |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
//Wenn der Ball daneben fliegt gibt es eine 2 zurück |
|
|
|
|
|
|
|
|
//Wenn der Ball daneben fliegt, gibt es eine 2 zurück |
|
|
else if (binY + 1 >= ballY || field[ballX][ballY - 1] == '_' || ballX >= fieldWidth || ballX <= 0) |
|
|
else if (binY + 1 >= ballY || field[ballX][ballY - 1] == '_' || ballX >= fieldWidth || ballX <= 0) |
|
|
{ |
|
|
{ |
|
|
return 2; |
|
|
return 2; |
|
@ -315,7 +315,7 @@ int checkBallPosition() |
|
|
|
|
|
|
|
|
void sortScoreboard() |
|
|
void sortScoreboard() |
|
|
{ |
|
|
{ |
|
|
//Öffnet die Textdatei oder erstellt sie wenn keine existiert |
|
|
|
|
|
|
|
|
//Öffnet die Textdatei oder erstellt sie, wenn keine existiert |
|
|
FILE *fp; |
|
|
FILE *fp; |
|
|
fp = fopen("ScoreBoard.txt", "a+"); |
|
|
fp = fopen("ScoreBoard.txt", "a+"); |
|
|
//Gibt eine Fehlermeldung, falls die Textdatei nicht existiert |
|
|
//Gibt eine Fehlermeldung, falls die Textdatei nicht existiert |
|
@ -326,7 +326,7 @@ void sortScoreboard() |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
system("clear"); |
|
|
system("clear"); |
|
|
//öffnet die Textdatei |
|
|
|
|
|
|
|
|
//Öffnet die Textdatei |
|
|
FILE *file = fopen("ScoreBoard.txt", "r"); |
|
|
FILE *file = fopen("ScoreBoard.txt", "r"); |
|
|
char line[1000]; |
|
|
char line[1000]; |
|
|
int numberOfLines = 0; |
|
|
int numberOfLines = 0; |
|
@ -345,7 +345,7 @@ void sortScoreboard() |
|
|
sleep(0.1); |
|
|
sleep(0.1); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//Spielerliste mithilfe einer Hilfsveriable sortieren, um sie danach direkt ausgeben zu koennen |
|
|
|
|
|
|
|
|
//Spielerliste mithilfe einer Hilfsveriable sortieren, um sie danach direkt ausgeben zu können |
|
|
struct Player tmp; |
|
|
struct Player tmp; |
|
|
for (int i = 0; i < numberOfLines; i++) |
|
|
for (int i = 0; i < numberOfLines; i++) |
|
|
{ |
|
|
{ |
|
|