|
|
#include <stdio.h>
#include <stdlib.h>
int wallX = 0; int wallY = 0; int wallLength = 0; int BinX; int BinY = 12;
char field[23][29]; int windForce = 0;
int Ballx = -1; int Bally = 27;
int fieldWidth = 25; int fieldHeigth = 30;
struct Player { char Name[50]; int Points; }playerlist[11];
void buildBin(int width, int heigth){ field[width][heigth] = 'V'; field[width+1][heigth+1] = '\\'; field[width+2][heigth+2] = '\\'; field[width-1][heigth+1] = '/'; field[width-2][heigth+2] = '/'; field[width][heigth+1] = ' '; }
void loadLevel() { int lvlnum; clearField(); Ballx = -1; Bally = 30;
int tmpX,tmpY;
switch (lvlnum) { case(1): BinX = 12; BinY = 10; break; case(2): case(3): case(4): case(5): case(6): tmpX = rand() % 17; tmpY = rand() % 10; while (3 >tmpX) { tmpX = rand()%17; } while (3 > tmpY) { tmpY = rand() % 10; } BinX = tmpX; BinY = tmpY;
break; case(7): BinX = 2; BinY = 7; windForce = -2; printf("Ein Sturm zieht auf!"); sleep(5);
break; case(8): BinX = 17; BinY = 10; windForce = 2; break; case(9): windForce = -1; BinX = 8; BinY = 9; wallX = 4; wallLength = 4; wallY = 20; break; case(10): windForce = 3; BinX = 18; BinY = 15; wallX = 12; wallLength = 5; wallY = 20;
break; case(11): system("clear"); Generatefield(); addScoreboard(); sortScoreboard(); exit(0);
break; default: exit(0); } getStartPosition();
}
int main() { int ballX = 7; int BallY = 23;
while (1) { system("clear");
for (int i = 0; i < 23; i++) { for (int j = 0; j < 29; j++) { field[i][j] = ' '; } }
field[ballX][BallY -= 1] = 'O';
buildBin(10,10);
for (int i = 0; i < 29; i++) { printf("|"); for (int j = 0; j < 23; j++) { if (i == 0 || i == 29 - 1 || i == 2) printf("="); else printf("%c", field[j][i]); } printf("|"); printf("\n"); } getStartPosition();
sleep(1); }
return 0; } void getStartPosition() {
while (Ballx == -1) { for (int i = 2, j = 0; i <= 20; i += 2, j++) { field[i][Bally] = j + '0'; } Generatefield(); //printf("W\x84\hle die position des Balls (0-9):\n");
printf("W\x84\hle die position des Balls (0-9):\n");
scanf("%d", &Ballx);
if (Ballx < 0 || 9 < Ballx) { Ballx = -1; continue; } Ballx = (Ballx + 1); }
}
void clearField() { for (int i = 0; i <= fieldWidth; i++) { for (int j = 0; j <= fieldHeigth; j++) { field[i][j] = ' '; } } }
void Generatefield() {
}
void addScoreboard() { int ScorePoints; //Die txt wird geöffnet
FILE* fp = fopen("ScoreBoard.txt", "a+"); char name[255];
printf("Bitte gib deinen Namen ein:\n"); scanf("%s", name);
fprintf(fp, "%s %d\n", name, ScorePoints); fclose(fp); }
int checkBallPosition() { if (BinY + 24 == Bally && (Ballx == BinX || Ballx == BinX + 2 || Ballx == BinX - 2)) { return 1; } else if (BinY > Bally || field[Ballx][Bally - 1] == '_' || Ballx > fieldWidth || Ballx < 0) { return 2; } }
void sortScoreboard() { //Öffnet die Textdatei oder erstellt sie wenn keine existiert
FILE* fp; fp = fopen("ScoreBoard.txt", "a+"); if (fp == NULL) { printf("Datei konnte nicht geoeffnet werden.\n"); } else { system("clear"); FILE *file = fopen("ScoreBoard.txt", "r"); char line[1000]; int numberOfLines = 0; //Die Textdatei wird Zeile für Zeile eingelesen und in die Strukturliste eingefügt
for (int j = 0; fgets(line, sizeof line, file) != NULL && j <= 10; j++) { char* playertmp = strtok(line, " "); strcpy(playerlist[j].Name, playertmp);
playertmp = strtok(NULL, " "); int playerPoints = atoi(playertmp);
playerlist[j].Points = playerPoints;
numberOfLines = j; sleep(100); } struct Player temp; for (int i = 0; i <= numberOfLines; i++) { for (int j = 0; j < (numberOfLines - i); j++) { if (playerlist[i].Points < playerlist[i + 1].Points) { temp = playerlist[i]; playerlist[i] = playerlist[i + 1]; playerlist[i + 1] = temp; } } } fclose(fp);
printf(" Scoreboard:\n\n"); for (int j = 0; j < numberOfLines; j++) { printf("%d. %s %s %d\n", j + 1, (j < 9) ? " " : " ", playerlist[j].Name, playerlist[j].Points); sleep(500); }
FILE* fp = fopen("ScoreBoard.txt", "w"); for (int i = 0; i < numberOfLines; i++) { fprintf(fp, "%s %d\n", playerlist[i].Name, playerlist[i].Points); }
fclose(fp); } }
|