voilà, pour ceux que ca interesse, je suis oqp à faire ca... je sais pas si c´est des bonnes idées, c´est mon premier projet d´envergure...
- include < time.h>
using namespace std;
const char cLettreVide = ´_´; / /caractère \95 afin d´éviter les bugs avec \0
const char cBlanc = ´{´; / /caractère qui suit le ´z´ dans les code ASCII
struct Element_List_Int
{
int i;
struct Element_List_Int* p;
};
typedef Element_List_Int ListInt;
struct coordonnee_de_placement / /détermine les charactéristiques d´un pion
{
int lig; / /ligne de la lettre sur le plateau
int col; / /colonne de la lettre sur le plateau
char lettre; / /lettre en question;
};
typedef struct coordonnee_de_placement coord;
struct placement
{
coord pl[7]; / /tableau des pions placés
int nbr; / /nbr de pions placés
};
typedef struct placement place;
struct historique
{
char chevalet[7]; / /chevalet au début du tour
place pl; / /tour joué par le joueur
int points; / /points rapportés par ce tour
struct historique* p; / /vers le tour précédent
};
typedef struct historique hist;
struct un_joueur
{
char nom[15]; / /nom du joueur
historique* h; / /historique des coup de ce joueur en liste ( dernier au 1er)
int TotPts; / /total des points du joueur
char Chevalet[7]; / /chevalet en cours de partie
};
typedef struct un_joueur joueur;
class nouvelle_partie
{
public:
nouvelle_partie(const int n = 4,
char nom1[15] = " Sans Nom 1",
char nom2[15] = " Sans Nom 2",
char nom3[15] = " Sans Nom 3",
char nom4[15] = " Sans Nom 4",
int d) / /Constructeur
{
/ /Initialisation du nombre de joueurs et de ceux-ci pour cette partie
nNbrJrs = n;
for(int i=0;i<15;i++)
{
Jrs[0].nom[i] = nom1[i];
Jrs[1].nom[i] = nom2[i];
Jrs[2].nom[i] = nom3[i];
Jrs[3].nom[i] = nom4[i];
}
for(int i=0;i<4;i++)
{
Jrs[i].h = NULL;
Jrs[i].TotPts = 0;
for(int j=0;j<7;j++)
Jrs[i].Chevalet[j] = cLettreVide;
}
/ /Initialisation du niveau de difficulté
nDifficult = d;
/ /Initialisation des tableaux iMotCompte[15,15] et iLettreCompte[15,15]
for ( int i=0;i<8;i++)
for ( int j=0;j<8;j++)
nMotCompte[i,j] = nLettreCompte[i,j] = 1;
nMotCompte[0,0] = 3;
nMotCompte[0,7] = 3;
nMotCompte[1,1] = 2;
nMotCompte[2,2] = 2;
nMotCompte[3,3] = 2;
nMotCompte[4,4] = 2;
nMotCompte[7,0] = 3;
nMotCompte[7,7] = 2;
nLettreCompte[0,3] = 2;
nLettreCompte[1,5] = 3;
nLettreCompte[2,6] = 2;
nLettreCompte[3,0] = 2;
nLettreCompte[3,7] = 2;
nLettreCompte[5,1] = 3;
nLettreCompte[5,5] = 3;
nLettreCompte[6,2] = 2;
nLettreCompte[6,6] = 2;
nLettreCompte[7,3] = 2;
for ( int i=0;i<8;i++)
for ( int j=0;j<8;j++)
{
nMotCompte[14-i,j] = nMotCompte[i,14-j]
= nMotCompte[14-i,14-j] = nMotCompte[i,j];
nLettreCompte[14-i,j] = nLettreCompte[i,14-j]
= nLettreCompte[14-i,14-j] = nLettreCompte[i,j];
}
/ /Initialisation du tableau cPioche[102]
char cInitPioche[102];
for ( char a=´a´;a<=cBlanc;a++)
for ( int i=0;i<nFreqLettre[a-97];i++)
cInitPioche[i+a-97] = a;
for(int i=0;i<102;i++)
{
int r = rand()%(102-i);
cPioche[i] = cInitPioche[r];
for(int j=r;j<101-i;j++)
cInitPioche[j] = cInitPioche[j+1];
}
nNbrRstPioche = 102;
/ /Initialisation du tableau cPlateau[15,15]
for(int i=0;i<15;i++)
for(int j=0;j<15;j++)
cPlateau[i,j] = cLettreVide;
/ /Initialisation des chevalets
for(int i=0;i<nNbrJrs;i++)
ReAppChevalet(Jrs[i].Chevalet,7);
/ /Initialisation de l´ordre des joueurs et du premier à jouer
int nInitOrdre[4] = {0,1,2,3};
ListInt* p = new(ListInt);
JrActif = p;
for(int i=0;i<nNbrJrs;i++)
{
int r = rand()%(nNbrJrs-i);
p->i = nInitOrdre[r];
for(int j=r;j<nNbrJrs-i-1;j++)
nInitOrdre[j] = nInitOrdre[j+1];
p->p = new(ListInt);
p = p->p;
}
delete(p);
p = JrActif;
/ / / /Chargement du dico
/ /
/ /
/ /
/ /
/ /
/ /
/ /
/ /
} / /Fin du constructeur
~nouvelle_partie() / /Destructeur
{
}
int nNbrJrs; / /nombre de joueurs pour cette partie ( 1 à 4)
joueur Jrs[4]; / /Tableau contenant les joueurs
ListInt* JrActif; / /pointe vers le joueur actif
int nDifficult; / /Difficulté ( 0 à 3 ~~ facile à pro)
char cPlateau[15,15]; / /plateau de placement des lettres
int nMotCompte[15,15]; / /plateau des mots x2 et x3
int nLettreCompte[15,15]; / /plateau des lettres x2 et x3
int nPosBlancs[2,2]; / /position des deux pions blancs
protected:
char cPioche[102];
int nNbrRestPioche;
int
nFreq[27]={9,2,2,3,15,2,2,2,8,1,1,5,3,6,6,2,1,6,6,
6,6,2,1,1,1,1,2};
int
nPoint[27]={1,3,3,2,1,4,2,4,1,8,10,1,2,1,1,3,8,1,1
,1,1,4,10,10,10,10,0};
};
int main()
{
srand(time(NULL));
}
Si il y a des trucs qui courent à la catastrophe
dites le moi tout de suite !