Forum de discussion
Forum « Programmation Javascript » (archives)
Re: jeux de carte
Envoyé: 5 décembre 2003, 9h52 par Oznog
Je trouve superflux de devoir passer les 52 cartes pour valider chaque carte sélectionnée.
J'ai donc utilisé un tableau x plusieurs dimension ou pluôt qui contient des objets.
Je construit le tableau (array) à l'aide de se constructeur d'objet :
function twGenCarte(_numero,_couleur,_enjeu) {
this.numero = _numero;
this.couleur = _couleur;
this.enjeu = _enjeu;
}
// Et
aCartes[x] = new twGenCarte(nNum,sCouleur,false);
Tu peux donc faire un boucle de 1 à 52 pour construire le jeu et deux boucle de 1 à 4 et 1 à 5 pour construires les 4 mains. Il suffit de mettre la boléenne ".enjeu" à true quand une carte sort. Et tester la boléenne ".enjeu" avant de la choisir.
Voilà le code complet que je vient de monter, laisse ma remarque s.t.p....
<script type="text/javascript" language="javascript">
<!--
// Laisser cette remarque s.v.p.
// Script gratuit des Trucsweb.com
// Génère une combinaison de 4 mains de 5 cartes.
function twGenCarte(_numero,_couleur,_enjeu) {
this.numero = _numero;
this.couleur = _couleur;
this.enjeu = _enjeu;
}
var aCartes = new Array(52);
var sCouleur = "Pique";
var nNum = 1;
for (c=0; c<aCartes.length; c++) {
switch (c) {
case 13 : sCouleur = "Coeur"; nNum=1; break;
case 26 : sCouleur = "Trèfle"; nNum=1; break;
case 39 : sCouleur = "Carreau"; nNum=1; break;
}
aCartes[c] = new twGenCarte(nNum,sCouleur,false);
nNum+=1;
}
document.write('<h2>Génère une combinaison de 4 mains de 5 cartes.</h2>');
document.write('<h3>Résultat</h3>');
for(nCarte=0; nCarte<=4; nCarte++) {
document.write('<p><b>Carte '+(nCarte+1)+'</b><br >');
for(nMain=0; nMain<=3; nMain++) {
val = Math.floor(1+(Math.random()*52))-1;
while (aCartes[val].enjeu) {
val = Math.floor(1+(Math.random()*52))-1;
}
aCartes[val].enjeu = true;
document.write('Joueur '+(nMain+1)+' = "<b>'+aCartes[val].numero+' de '+aCartes[val].couleur+'</b>" | ');
}
document.write('</p>');
}
Ciao
Oznog
document.write('<h3>En jeu</h3><p>');
for (c=0; c<aCartes.length; c++) {
if (aCartes[c].enjeu) document.write(aCartes[c].numero+' de '+aCartes[c].couleur+'<br >');
}
document.write('</p><h3>PAS EN JEU</h3><p>');
for (c=0; c<aCartes.length; c++) {
if (!aCartes[c].enjeu) document.write(aCartes[c].numero+' de '+aCartes[c].couleur+'<br >');
}
document.write('</p>');
// -->
</script>
Ciao
Oznog
Réponses
|