#include #include int BinX; int BinY = 12; char field[23][29]; 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; break; } } 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); } }