Le jeu de la bataille

Soyez le premier à donner votre avis sur cette source.

Vue 34 003 fois - Téléchargée 1 965 fois

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

Ajouter un commentaire

Commentaires

cs_xXleoXx
Messages postés
1
Date d'inscription
samedi 11 juillet 2009
Statut
Membre
Dernière intervention
11 juillet 2009

Super , mais je n'arrive pas a mettre les images dans le code , donc il n'y a pas d'image .
Est ce que quelqu'un peut m'aider ?
parce que la je joue sans images alors que je les ai telecharger .
cs_piotrr
Messages postés
9
Date d'inscription
jeudi 12 juillet 2007
Statut
Membre
Dernière intervention
21 avril 2008

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
astron35
Messages postés
16
Date d'inscription
lundi 26 février 2007
Statut
Membre
Dernière intervention
3 mars 2007

Bien
PhiL666
Messages postés
102
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
9 juin 2006

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

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.