diff --git a/Pontu/entryPoints/main.c b/Pontu/entryPoints/main.c index fe2dfdf..39d6a33 100644 --- a/Pontu/entryPoints/main.c +++ b/Pontu/entryPoints/main.c @@ -57,19 +57,21 @@ int main(int argc, char *argv[]) { SDL_GetWindowSize(window, &windowW, &windowH); size_t nbPlayers = 2; - Player* players = (Player*)malloc(sizeof(Player)*2); - /*players[0] = newPlayer("Bépo", PlayerViolet); - players[1] = newPlayer("Azeryty", PlayerYellow);*/ - //players[2] = newPlayer("Adcsg", PlayerRed); + Player players[] = { + newPlayer("Bépo", PlayerViolet), + newPlayer("Azeryty", PlayerYellow), + //newPlayer("Adcsg", PlayerRed) + }; + //players[2] = ; - bool crashed = gameCreationMenu(renderer, &generalState, &fontHandler, windowW, windowH, &players, &nbPlayers); + //bool crashed = gameCreationMenu(renderer, &generalState, &fontHandler, windowW, windowH, &players, &nbPlayers); - if (crashed) { + /*if (crashed) { fprintf(stderr,"sorry"); exit(-1); - } - + }*/ generalState = GS_Game; + gameView(&generalState, window, renderer, players, nbPlayers); endGameMenu(&generalState, window, renderer, &fontHandler, players, nbPlayers); diff --git a/Pontu/include/model/Player.h b/Pontu/include/model/Player.h index c818567..2dc3b4f 100644 --- a/Pontu/include/model/Player.h +++ b/Pontu/include/model/Player.h @@ -21,7 +21,7 @@ typedef struct { char pseudo[PSEUDO_LENMAX]; //< The player's pseudo PlayersColors color; //< The player's Piece' color - int rank; //< The player's rank (0 if the player isn't out yet) + int rank; //< The player's rank (1 if the player isn't out yet) int eliminationTurn; //< When the player has been eliminated (0 if the player isn't out yet) } Player; diff --git a/Pontu/src/model/Game.c b/Pontu/src/model/Game.c index e1168b4..396d5d3 100644 --- a/Pontu/src/model/Game.c +++ b/Pontu/src/model/Game.c @@ -38,7 +38,7 @@ Game newGame(const size_t nbPlayers, const Player player[]) .phase = PLACEMENT, .board = newBoard(nbPlayers), .nbPlayers = nbPlayers, - .lastRank = 0 + .lastRank = nbPlayers+1 }; for (size_t player_i = 0; player_i < nbPlayers; player_i++) @@ -59,9 +59,8 @@ Game newGame(const size_t nbPlayers, const Player player[]) void eliminatePlayer(Game* game, const size_t playerId) { game->arrPlayers[playerId].eliminationTurn = game->nb_rounds; - ++game->lastRank; - game->arrPlayers[playerId].rank = game->lastRank; - fprintf(stderr, "Rank : %d\n", game->lastRank); + game->arrPlayers[playerId].rank = --game->lastRank; + fprintf(stderr, "Rank : %d, %d\n", game->lastRank, game->arrPlayers[playerId].rank); } void endGame(Game* game) { @@ -90,7 +89,7 @@ void changePhaseOrPlayerTurn(Game* game) const size_t lastPlayerId = game->currentPlayerID; if (areAllPlayerPiecesStucked(lastPlayerId, game->board.arrPieces, game->board.nbPieces)) { eliminatePlayer(game, lastPlayerId); - if (game->nbPlayers-1 == game->lastRank) { + if (game->lastRank == 2) { endGame(game); return; } @@ -108,15 +107,15 @@ void changePhaseOrPlayerTurn(Game* game) return; }*/ - if (game->arrPlayers[game->currentPlayerID].rank != 0 && areAllPlayerPiecesStucked(game->currentPlayerID, game->board.arrPieces, game->board.nbPieces)) { + if (game->arrPlayers[game->currentPlayerID].eliminationTurn != 0 && areAllPlayerPiecesStucked(game->currentPlayerID, game->board.arrPieces, game->board.nbPieces)) { eliminatePlayer(game, game->currentPlayerID); - if (game->nbPlayers-1 == game->lastRank) { + if (game->lastRank == 2) { endGame(game); return; } } - } while (game->arrPlayers[game->currentPlayerID].rank != 0); + } while (game->arrPlayers[game->currentPlayerID].eliminationTurn != 0); fflush(stderr); @@ -124,6 +123,7 @@ void changePhaseOrPlayerTurn(Game* game) if (anyOfPlayersPiecesCanMove(game->currentPlayerID, &game->board)) { game->phase = MOVE_PIECE; + game->nb_rounds++; } break; } @@ -286,13 +286,8 @@ void updatePieceIsolated(Game* game, const Island* island) { Piece* piecePotentialyIsolated = getPieceFromIsland(game->board.arrPieces, game->board.nbPieces, *island); if (piecePotentialyIsolated != NULL && isPieceIsolated(piecePotentialyIsolated, &game->board)) - { // Check is a piece is isolated and then if the player is eliminated + { // Check is a piece is isolated //and then if the player is eliminated piecePotentialyIsolated->stuck = true; - if (areAllPlayerPiecesStucked(piecePotentialyIsolated->idJ, game->board.arrPieces, - game->board.nbPieces)) - { - game->arrPlayers[piecePotentialyIsolated->idJ].rank = game->nb_rounds; // TODO : See what we put in rank - } } } diff --git a/Pontu/src/model/Player.c b/Pontu/src/model/Player.c index c1055e3..33b62ff 100644 --- a/Pontu/src/model/Player.c +++ b/Pontu/src/model/Player.c @@ -4,7 +4,7 @@ Player newPlayer(const char pseudo[PSEUDO_LENMAX], const PlayersColors color) { Player player; strcpy(player.pseudo, pseudo); player.color = color; - player.rank = 0; + player.rank = 1; player.eliminationTurn = 0; return player; diff --git a/Pontu/src/view/GameMain.c b/Pontu/src/view/GameMain.c index c1f20b3..18e7505 100644 --- a/Pontu/src/view/GameMain.c +++ b/Pontu/src/view/GameMain.c @@ -137,9 +137,12 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend SDL_Delay(5); } + for (size_t i = 0; ifonts[FONT_retro])); array_PositionSpecifier_AddElement(&labels.positionSpecifiers, getTitleRect100(&array_TextLabel_Last(&labels.textLabels)->textZone)); + + return labels; } @@ -200,6 +202,12 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r }; drawEndGameMenu(renderer, players, nbPlayers, &rectMenuEndGame, fontHandler); + struct endGameMenuTextLabel labels = createLabels(renderer, players, nbPlayers, fontHandler); + for (size_t i=0; irect = adaptPosToRect(&base100, &rectM, POSX_CENTER, POSY_BOTTOM, ASPECT_KEEP_W); fprintf(stderr, "Resize\n"); fflush(stderr); }