Merge branch 'master' of https://gitlab.iut-clermont.uca.fr/maribemont/projet-tut
commit
d6db39d042
@ -0,0 +1,32 @@
|
|||||||
|
/**
|
||||||
|
* \file Board.h
|
||||||
|
* \brief Board management
|
||||||
|
* \author Théotime Maillarbaux
|
||||||
|
* \date 29/11/221
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BOARD_H
|
||||||
|
#define BOARD_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "model/Piece.h"
|
||||||
|
#include <SDL2/SDL_pixels.h> // SDL_Color
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \struct Board
|
||||||
|
* \brief Represents a board for a Game.
|
||||||
|
*
|
||||||
|
* The bridges are represented by 2D-arrays of SDL_Bools.
|
||||||
|
* For a given set of coordinates, the value is TRUE if the bridge is there,
|
||||||
|
* else false.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
// y x
|
||||||
|
bool vBridges[4][5]; ///< 2D-array of vertical bridges.
|
||||||
|
bool hBridges[5][4]; ///< 2D-array of horizontal bridges.
|
||||||
|
Piece arrPieces[9]; ///< Array of pieces on the Board.
|
||||||
|
} Board;
|
||||||
|
|
||||||
|
Board newBoard(int nbPlayers);
|
||||||
|
|
||||||
|
#endif // BOARD_H
|
@ -0,0 +1,26 @@
|
|||||||
|
#include "model/Board.h"
|
||||||
|
|
||||||
|
Board newBoard(int nbPlayers) {
|
||||||
|
Board board;
|
||||||
|
int nbPiecesPerPlayer = (nbPlayer == 4) ? 2 : 3;
|
||||||
|
int pieceIndex = 0;
|
||||||
|
|
||||||
|
// Init pieces
|
||||||
|
for (int player_i = 0; i < nbPlayers; player_i++) {
|
||||||
|
for (int piece_i = 0; i < nbPiecesPerPlayer; piece_i++) {
|
||||||
|
board.arrPieces[pieceIndex] = newPiece(player_i);
|
||||||
|
pieceIndex++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init bridges
|
||||||
|
// max of vy (vertical y) is equal to max of hx (horizontal x),
|
||||||
|
// so vy will be used as hx as well.
|
||||||
|
for (int vy = 0; vy < 4; vy++) {
|
||||||
|
for (int vx = 0; vx < 5; vx++) {
|
||||||
|
board.vBridges[vy][vx] = true;
|
||||||
|
board.hBridges[vx][vy] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return board;
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
#include "model/Piece.h"
|
||||||
|
|
||||||
|
Piece newPiece(int idJ) {
|
||||||
|
Piece piece;
|
||||||
|
piece.idJ = idJ;
|
||||||
|
piece.stuck = false;
|
||||||
|
return piece;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,50 @@
|
|||||||
|
enum etat: PLACEMENT, JEU, CONFIGURATION
|
||||||
|
|
||||||
|
Plateau:
|
||||||
|
Pions: collection Pion
|
||||||
|
Pont:
|
||||||
|
verti: bool[4][5]
|
||||||
|
horiz: bool[5][4]
|
||||||
|
|
||||||
|
Partie:
|
||||||
|
tabJoueurs: joueur
|
||||||
|
nbJoueurs: int
|
||||||
|
plateau: Plateau
|
||||||
|
joueurActuel: joueurs //index
|
||||||
|
nbTours: int
|
||||||
|
durée: int
|
||||||
|
etat: Etat //enumeration
|
||||||
|
|
||||||
|
Ile:
|
||||||
|
x:int
|
||||||
|
y:int
|
||||||
|
|
||||||
|
Pion:
|
||||||
|
indexJoueurs: int //index du joueurs dans le tableau
|
||||||
|
coordonnées: ile
|
||||||
|
isBloque: bool
|
||||||
|
|
||||||
|
Joueur:
|
||||||
|
numJoueur (1,2,3,4) {unique par partie}
|
||||||
|
couleur: enum couleur
|
||||||
|
classement: int
|
||||||
|
|
||||||
|
Moteur:
|
||||||
|
bouton extends rectangle:
|
||||||
|
|
||||||
|
|
||||||
|
fenêtre option: new SDL_Windows modal
|
||||||
|
sélection au click
|
||||||
|
ile = coordonnées
|
||||||
|
personnage: elfe, chapeau change de couleur
|
||||||
|
|
||||||
|
getIlesAccessible:Pion, plateau -> tab iles //retourne les iles accessibles depuis un
|
||||||
|
deplacerPion: pion*, ilesDestination -> boolErreur (juste pour la prog)
|
||||||
|
retirerPont: pont -> bool (possible ou non, selon si déjà retirer)
|
||||||
|
au click: soit conversion de coordonnées pour vérifié si pont cliqué
|
||||||
|
soit rectangle invisible qui sert de hit box
|
||||||
|
getPionByIsle: plateau,Ile -> pions //regarde si un pions est présent à des coordonnées
|
||||||
|
hitbox sur ile adjacente et pas toutes les iles
|
||||||
|
|
||||||
|
au bout de 30s si pas de connection:
|
||||||
|
annulation partie
|
Loading…
Reference in new issue