-
irwingatoLikes 0Problem Description
I need to save the five high scores and show them to the users in the menu, in trying to save and show up the high scores but i couldn’t do this here is my code
/* Jogo interativo Tetris implementado em linguagem C para uso no console (terminal de comandos) Para executar: > start programa.exe Autor: Irwing Seiji Ato Data: 28/08/2019 */ #include "car_race.h" #include "display.h" #include <stdlib.h> #include <time.h> #include <locale.h> #define DEBUG 1 /* Parte principal do programa, responsável por iniciar e chamar as funções auxiliares. */ int Novojogo(){ char matrix[ROWS][COLUMNS]; //posição inicial do carro principal Carro principal; principal.i = ROWS-4; principal.j = COLUMNS/2; principal.height = 4; principal.width = 5; //posição inicial do carro inimigo Carro inimigo; inimigo.i = 0; inimigo.j = COLUMNS-3; inimigo.height = 4; inimigo.width = 5; Carro inimigo2; inimigo2.j = COLUMNS-3; inimigo2.height = 4; inimigo2.width = 5; Carro inimigo3; inimigo3.j = COLUMNS-3; inimigo3.height = 4; inimigo3.width = 5; int keypressed=0; int cont = 0; int velocidade = 3; int faixa1 = 0; int random = 0; int score = 0; char nome[100]; int jogadorscore = 0; FILE *fp; //inicializando matriz init(matrix); //apagar o cursor da tela ShowConsoleCursor(0); system("cls"); //animação do jogo while(keypressed != ESC){ gotoxy(0,0); ShowConsoleCursor(0); #if DEBUG == 1 printf("posicao = (%d, %d)\n", inimigo.i, inimigo.j); printf("dimensao = (%d, %d)\n", inimigo.width, inimigo.height); #endif //printo o carros na tela drawCarro(matrix, &principal, PIXEL); drawCarro(matrix, &inimigo, PIXEL); drawCarro(matrix, &inimigo2, PIXEL); drawCarro(matrix, &inimigo3, PIXEL); //mostro a matriz na tela printf("SCORE: %d \n", score); if(score< 40000){ printf("Fase: 1"); } else{ printf("Fase: 2"); } printMatrix(matrix,cont,faixa1); int i; if(score >= 40000){ if(velocidade == 3){ velocidade = 1; } } if(!collisionCar (matrix, principal)){ drawCarro(matrix, &principal, EMPTY); drawCarro(matrix, &inimigo, EMPTY); drawCarro(matrix, &inimigo2, EMPTY); drawCarro(matrix, &inimigo3, EMPTY); if((cont%velocidade)==0){ //alternar animação estrada if(faixa1 == 0) faixa1 = 1; else faixa1 = 0; inimigo2.i++; inimigo3.i++; if(inimigo2.i == 25)score += 50; else if(inimigo3.i == 25)score += 50; if(inimigo.i < (ROWS)){ inimigo.i++; if(inimigo.i == 25)score += 50; } srand(time(NULL)); random = (rand()%8)+1; if(random == 1){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = 4; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = 4; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = 4; } } else if(random == 2){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = 4; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = COLUMNS-3; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = 4; } } else if(random == 3){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = 4; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = 4; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = COLUMNS-3; } } else if(random == 4){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = 4; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = COLUMNS-3; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = COLUMNS-3; } } else if(random == 5){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = COLUMNS-3; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = 4; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = 4; } } else if(random == 6){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = COLUMNS-3; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = COLUMNS-3; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = 4; } } else if(random == 7){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = COLUMNS-3; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = 4; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = COLUMNS-3; } } else if(random == 8){ if(inimigo3.i == ROWS -3){ initCar(&inimigo); inimigo.j = COLUMNS-3; } if(inimigo.i == 8){ initCar(&inimigo2); inimigo2.j = COLUMNS-3; } if(inimigo2.i == 8){ initCar(&inimigo3); inimigo3.j = COLUMNS-3; } } } cont++; }else{ struct Pontuacao novapontuacao; printf("Fim de jogo\n"); system("cls"); fp = fopen("highscores.bin","ab"); printf("Digite o seu nome:"); fflush(stdin); gets(nome); jogadorscore = score; fwrite(&novapontuacao,sizeof(struct Pontuacao), 1, fp); break; } //lendo teclas keypressed = 0; if(kbhit()) keypressed = getch(); if(keypressed == ARROWS) keypressed = getch(); switch(keypressed){ case TECLA_a: case TECLA_A: case LEFT: if(principal.j - (principal.width/2) > 2) principal.j--; //vai para esquerda break; case TECLA_d: case TECLA_D: case RIGHT: if(principal.j + (principal.width/2) < (COLUMNS-1)) principal.j++; //vai para a direita break; case TECLA_ESPACO: if(velocidade == 3){ velocidade = 1; }else{ velocidade = 3; } break; } } return 0; } void Menu(){ system("color 0E"); system("cls"); printf("--------------------------------------------------\n\n"); printf("\t\tCar Racing \n"); printf("__________________________________________________\n "); printf("1-Novo jogo\n "); printf("2-High Scores\n "); printf("3-Sair\n "); printf("---------------------------------------------------\n\n"); } void Highscores(){ struct Pontuacao novapontuacao; int i fp = fopen("highscores.bin", "rb"); while(fread(&novapontuacao, sizeof(struct Pontuacao), 1 fp)){ for(i = 0; i<5; i++){ for (j = 0; j<5-i-1; j++){ if(a[j]> a [j+1]){ aux = a[j]; a[j] = a[j+1]; a[j+1] = aux; } } } } } int main(){ int opcao; while(opcao != 3){ Menu(); printf("\nEntre com a opcao desejada:"); scanf("%d",&opcao); switch(opcao){ case 1: Novojogo();break; case 2: Highscores();break; case 3: exit(0); } } }
-
Sonar Systems adminLikes 0
What happens?
Login to reply