C'est le jeu du 421 sur ordinateur.
Source / Exemple :
#include <iostream>
#include <vector>
using namespace std;
vector <int> lancer_des() {
vector <int> des;
for(int i(0);i!=3;++i) {
int de((rand()%6)+1);
des.push_back(de);
}
/*Le programme tri les des par ordre croissant*/
sort(des.begin(),des.end());
return des;
}
int points(vector <int> des) {
int pts(0);
/*
Combinaisons rapportant des points + nombre de points :
- Speciales :
- 111 : 9
- 222 : 2
- 333 : 3
- 444 : 4
- 555 : 5
- 666 : 6
- 112 : 2
- 113 : 3
- 114 : 4
- 115 : 5
- 116 : 6
- 122 : 4
- 421 : 10
- Tierces :
- 123 : 2
- 234 : 2
- 345 : 2
- 456 : 2
if((des[0]==des[1])&&(des[1]==des[2])) {
if(des[0]==1) pts=9;
else pts=des[0];
} else {
if((des[0]==des[1])&&(des[0]==1)) pts=des[2];
if((des[0]+1==des[1])&&(des[1]+1==des[2])) pts=2;
if((des[0]==1)&&(des[1]==2)&&(des[2]==4)) pts=10;
if((des[0]==1)&&(des[1]==2)&&(des[2]==2)) pts=4;
}
return pts;
}
void jouer421() {
/*
Le 421, ce joue en 2 etapes :
- la charge (le jeu suivant), but :
- essayer de ne pas obtenir de pions
- la decharge, but :
- se debarrasser de tous ces pions
GAGNANT : Le premier qui n'a plus de pions.
/*Pions du joueur1*/
int nbpions1(0);
/*Pions du joueur2*/
int nbpions2(0);
/*Pions restants*/
int nbpionsrestants(21);
for(int fin(0);fin!=1;) {
cout <<"\n\n\nAppuyer sur Entree pour lancer les des";
cin.get();
vector <int> des_jo1(lancer_des());
vector <int> des_jo2(lancer_des());
int pts_jo1(points(des_jo1));
int pts_jo2(points(des_jo2));
if((pts_jo1==pts_jo2)&&(pts_jo2==0)) {
/*Au 421 le joueur qui,*/
/*une fois les resultats tries par ordre decroissant et si personne n'a fait de combinaisons gagnantes,*/
/*obtient le plus grand score en un lance gagne un point.*/
int pts_jo1temp(des_jo1[2]*100+des_jo1[1]*10+des_jo1[0]);
int pts_jo2temp(des_jo2[2]*100+des_jo2[1]*10+des_jo2[0]);
if(pts_jo1temp>pts_jo2temp) pts_jo1=1;
if(pts_jo1temp<pts_jo2temp) pts_jo2=1;
}
/*Le perdant prend des pions*/
int pionsaj1(0);
int pionsaj2(0);
if(pts_jo1>pts_jo2) {
if(nbpionsrestants<pts_jo1-pts_jo2) {
pionsaj2=nbpionsrestants;
nbpions2+=nbpionsrestants;
nbpionsrestants-=nbpionsrestants;
} else {
pionsaj2=pts_jo1-pts_jo2;
nbpions2+=pts_jo1-pts_jo2;
nbpionsrestants-=pts_jo1-pts_jo2;
}
}
if(pts_jo1<pts_jo2) {
if(nbpionsrestants<pts_jo2-pts_jo1) {
pionsaj1=nbpionsrestants;
nbpions1+=nbpionsrestants;
nbpionsrestants-=nbpionsrestants;
} else {
pionsaj1=pts_jo2-pts_jo1;
nbpions1+=pts_jo2-pts_jo1;
nbpionsrestants-=pts_jo2-pts_jo1;
}
}
cout <<"\n\n\nJoueur 1 :";
cout <<"\nDes : ";
for(int i(des_jo1.size()-1);i!=-1;--i) {
cout <<des_jo1[i];
if(i!=0) cout <<", ";
}
cout <<"\nPions : "<<nbpions1<<"\n( + "<<pionsaj1<<")\n";
cout <<"\n\nJoueur 2 :";
cout <<"\nDes : ";
for(int j(des_jo2.size()-1);j!=-1;--j) {
cout <<des_jo2[j];
if(j!=0) cout <<", ";
}
cout <<"\nPions : "<<nbpions2<<"\n( + "<<pionsaj2<<")\n";
cout <<"\n\nPions restants : "<<nbpionsrestants;
if(nbpionsrestants==0) {
fin=1;
if(nbpions1>nbpions2) cout <<"\n\n\nJoueur 2 a gagne !";
else cout <<"\n\n\n\n\nJoueur 1 a gagne !";
cin.get();
}
}
}
int main() {
srand((unsigned) time(NULL));
cout <<"421";
jouer421();
cout <<"\n\n\nCree par Nicolas DUBIEN - 2006";
cin.get();
}
Conclusion :
Merci, de me signaler tous disfonctionnements du jeu et de m'envoyer vos commentaires.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.