Le jeu de la bataille

Description

C'est un jeu de bataille ,un classique si on a du temps a perdre. Peut-être utile si on veut développer des jeux de cartes.

Source / Exemple :


<HTML>
<HEAD>
<TITLE>..:: La Bataille ::.. </TITLE>
<SCRIPT language="javascript" type="text/javascript">
/*
Règlement :
A tour de rôle chaque joueur tourne la carte sur le dessus de son paquet.
Celui qui a tourné la carte la plus élevé ramasse la carte de l'autre.
Si les deux carte ont une valeur égale (4 de coeur et 4 de carreau) il y a alors une bataille.
La bataille se termine quand un des deux joueurs à une carte de même valeur que celle qui a commencé la bataille (4 de trèfle ou 4 de pique).
Celui qui a mis cette carte ramasse toutes les cartes qui ont été tourné durant la bataille.
La partie se termine quand un des deux joueurs n'a plus de carte, il a perdu.

Crée par Arto_8000

  • /
couleur = new Array("coeur","carreau","trèfle","pique"); nombre = new Array("2","3","4","5","6","7","8","9","10","valet","dame","roi","as"); // Vous pouvez changez l'ordre des cartes ,en le changeant vous changerez la valeur des cartes donc un 3 peut être meilleur qu'un 2 si vous les interchanger. bataille_buffer = new Array(); vous = new Array(); comp = new Array(); function inidata(){ carte = new Array(); inc = 0 for (i=0;i<13;i++) // Crée les cartes // { for (x=0;x<4;x++) { carte[inc] = nombre[i]+"_de_"+couleur[x]; inc++ } } for (i=0;i<52;i++) // Brasse les cartes (je me suis baser sur le trie bulle ,mais au lieu de comparer avec les valeurs ,j'ai comparer avec deux nombres aléatoires)// { for (x=0;x<52;x++) { if (Math.random() < Math.random()) { temp = carte[i]; carte[i] = carte[x]; carte[x] = temp; } } } for (i=0;i<26;i++)// Sépare le paquet en deux // { vous[i] = carte[i]; } for (i=26;i<52;i++) { comp[i-26] = carte[i]; } refresh_all(); // Affiche le nombre de carte de chacun // next_click(); // Vérifie qui a gagné et effectue ce qu'il faut // } function refresh_all() { document.getElementById("comp_pointage").innerHTML = "Nbre de carte : "+comp.length;//+" : "+comp; document.getElementById("vous_pointage").innerHTML = "Nbre de carte : "+vous.length;//+" : "+vous; //temp_v = vous[0].replace("_"," ").replace("_"," "); //temp_c = comp[0].replace("_"," ").replace("_"," "); document.getElementById("vous").innerHTML = "<IMG src='"+vous[0]+".GIF'><IMG src='blank.GIF' width='53' heigth='68'>"; document.getElementById("comp").innerHTML = "<IMG src='"+comp[0]+".GIF'><IMG src='blank.GIF' width='53' heigth='68'>"; } function next_click() { if (vous.length==0) // Vérifie si quelqu'un perdu // { alert("Vous avez perdu !!!"); window.location.reload(); } if (comp.length==0) { alert("Vous avez gagnez !!!"); window.location.reload(); } refresh_all();// Affiche le nombre de carte de chacun // c_carte = comp[0].substring(0,comp[0].indexOf("_")); // Trouve l'index des cartes dans le tableau pour ensuite déterminer laquelle est meilleur// v_carte = vous[0].substring(0,vous[0].indexOf("_")); c_index = false; v_index = false; for (i=0;i<13;i++) { v_index = (v_carte != nombre[i] && isFinite(v_index)) ? v_index : i; c_index = (c_carte != nombre[i] && isFinite(c_index)) ? c_index : i; } if (v_index > c_index) // Vérifie qui a gagné // { temp_c = comp[0].replace("_"," ").replace("_"," "); document.getElementById("message").innerHTML = "Vous gagnez un "+temp_c+" ."; vous.push(vous[0]);// Ajoute la carte de l'ordinateur et la votre à la fin // vous.push(comp[0]); comp.shift(); // Enlève les cartes du début // vous.shift(); } if (v_index < c_index) { temp_v = vous[0].replace("_"," ").replace("_"," "); document.getElementById("message").innerHTML = "Vous perdez un "+temp_v+" ."; comp.push(vous[0]);// Ajoute la carte de l'ordinateur et la votre à la fin // comp.push(comp[0]); comp.shift(); // Enlève les cartes du début // vous.shift(); } if (v_index == c_index) // C'est une bataille !!!// { document.getElementById("message").innerHTML = "BATAILLE !!!<BR>"; i=1; while (i=1000) // Fait une boucle jusqu'à temps qu'il y ait un break { if (vous.length != 0 && comp.length !=0)// S'il ne reste plus de carte à quelqu'un il ne peut continuer // { bataille_buffer.push(vous[0]); // Ajouter les cartes de chaque joueur aux cartes accumulées durant la bataille // bataille_buffer.push(comp[0]); vous.shift(); // Enlève les cartes ajoutées // comp.shift(); if (vous[0].substring(0,vous[0].indexOf("_")) == bataille_buffer[0].substring(0,bataille_buffer[0].indexOf("_"))) // Vérifie si la carte qu'il y a sur le dessus est la même que celle qui a commencer la bataille // { document.getElementById("message").innerHTML += "Vous avez gagné "+bataille_buffer.length/2+ " cartes."; for (x=0;x<bataille_buffer.length;x++) // Ajoute le cartes accumulées à la fin de vos cartes // { vous.push(bataille_buffer[x]); } bataille_buffer = new Array(); // Efface les cartes accumlées durant la bataille // break; } if (comp[0].substring(0,comp[0].indexOf("_")) == bataille_buffer[0].substring(0,bataille_buffer[0].indexOf("_"))) // Même chose pour l'ordinateur // { document.getElementById("message").innerHTML += "L'ordinateur a gagné "+bataille_buffer.length/2+ " cartes."; for (x=0;x<bataille_buffer.length;x++) { comp.push(bataille_buffer[x]); } bataille_buffer = new Array(); break; } } else // Si quelqu'un n'a plus de carte // { break; } i++ } } if (vous.length == 0){ // Vérifie si quelqu'un a perdu // alert("Vous avez perdu !"); window.location.reload(); } if (comp.length == 0){ alert("Vous avez gagné !"); window.location.reload(); } document.getElementById("comp_pointage").innerHTML = "Nbre de carte : "+comp.length;//+" : "+comp; document.getElementById("vous_pointage").innerHTML = "Nbre de carte : "+vous.length;//+" : "+vous; } </SCRIPT> </HEAD> <BODY onload="inidata()"> Ordinateur : <DIV id="comp"></DIV> <DIV id="comp_pointage"></DIV> <BR> Vous : <DIV id="vous"></DIV> <DIV id="vous_pointage"></DIV> <BR> <DIV id="message"></DIV> <BR> <INPUT type="button" value="Continuer" onclick="next_click()"> </BODY> </HTML>

Conclusion :


Le seul bug connu est que si on finit avec une bataille ,il faut faire continuer pour que le message d'alerte disant que vous avez gagné ou perdu apparaisse.

Codes Sources

A voir également

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.