Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LE JEU DE LA BATAILLE


Information sur la source

Catégorie :Jeux Classé sous : carte, bataille, jeux, javascript Niveau : Initié Date de création : 17/07/2005 Date de mise à jour : 28/11/2005 00:57:35 Vu / téléchargé: 16 050 / 573

Note :
4,4 / 10 - par 5 personnes
4,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

  • <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>
<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.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

28 novembre 2005 00:57:35 :
Ajout de mot clé

Commentaires et avis

signaler à un administrateur
Commentaire de PhiL666 le 31/12/2005 06:02:16

Avec la quantité d'images que tu utilisais,
tu aurais pu utiliser les 4 symboles (en images) et te faire une petite fonction pour dessiner une carte

aussi ca aurait été bien de pouvoir voir les batailles étape par étape

signaler à un administrateur
Commentaire de astron35 le 04/03/2007 10:31:16

Bien

signaler à un administrateur
Commentaire de piotrr le 15/08/2007 22:39:50

J'aurai une question sur la faàon dont le joueur empoche les cartes qu'il a gagné.
Dans quel ordre le gagnant d'un tout récupère-t-il les cartes qui sont en jeu? Dans le même ordre qu'elles ont été posées? Pour être rigoureu je les récupererai toujours dans le même ordre (la plus grande d'abord puis la plus petite) mais je pense que cela pourrait favoriser le hasard envers un joueur.

Qu'en pensez vous?

merci

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

dessin d'un polygone, prog javascript [ par bichonade ] slt...bienvenue &#224; toute la communaur&#233;..je cherche &#224; faire une application qui me parraissait simple.. Sur ma page HTML est dsipos&#233; Jeux dhtml javascript [ par Cyreb ] Voila, je regarde depuis longtemps les sources proposé sur ce site et je m'interesse aux jeux en javascripts, pourquoi ne pas créer de veritable proje Soucis dans une fonction javascript [ par tlc77 ] Salut à tous ! Novice en Javascript, me revoila donc logiquement avec une question à 2 sous.Je suis en train de mettre au point un syteme de car Javascript et lotus notes [ par sake ] Bonjour,Je traine depuis pas mal de temps içi sans jamais avoir posté de question et donc, je me lance :-)Well...J'ia une page html qui contient une a RegExp javascript pour visa [ par helene20 ] Bonjour, je dois faire un champ qui valide une carte visa avec une expression régulière de la façon suivante : Les cartes Visa commencent toutes par u Problème d'interaction JavaScript PHP pour boite de dialogue confirm [ par 2swfan ] Bonjour tout le monde !Voila, g un probleme d'integration entre du php et du javascript. en fait, je veux afficher une boite de dialogue qui demande & Dessin Javascript lié à un évènement [ par la_main_sur_le_katana ] Bonjour,je suis entrain de réaliser une application dans laquelle se trouve du javascript. Je vous explique : j'ai une image de fond sur laquelle je d PopUp html lancée à partir de flash par fonction javascript [ par totorienabattre ] Bonjour tout le monde, Voilà déjà 3 jours que j'écume le web à la recherche de "LA" solution à mon problème ! J'espère vraiment que vous allez pouvoir Mettre du C# dans du javascript [ par Calvein ] J'ai hésiter à mettre cette question dans JS ou C# , mais finalement je la met dans les 2 forums :pJ'explique mon problème, je travail sous VS2005 et RegExp javascript pour téléphonne [ par helene20 ] Bonjour, je dois faire un programme (un formulaire entre autre) avec un champ de téléphonne, je dois faire la validation avec une expression réguliere


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :