Morpion a deux (sur le même ordi)

Soyez le premier à donner votre avis sur cette source.

Vue 10 147 fois - Téléchargée 313 fois

Description

Un simple morpion
_verifie qui a gagné
_utilise un nom
_sans bugs (je crois)
_un tableau des scores
ps je ne suit pas très doué en js alors donnez moi toues les critiques possibles
pps: il faut le zip pour les images!!

Source / Exemple :


<html>

<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>morpion</title>
<script language="javascript">
//de rrk275
//à ne pas supprimer ce serait gentil ;-) 
function nom()
	{
	nomwin=0
	nomwin2=0
	nom3 = ""
	nom4 = (Math.random() * 3)
	nom = prompt("donnez  le nom du 1er joueur", "")
	nom2=prompt("donnez  le nom du 2eme joueur", "")
	if (nom=="deblog")
	{nom = 1;
	nom2 = 2;}
	else
	{
	while(nom==nom2)	
	{
	alert("donnez 2 noms différents")
	nom = prompt("donnez  le nom du 1er joueur", "")
	nom2 = prompt("donnez  le nom du 2eme joueur", "")
	}
	}
	decla()
	}
function decla()
	{
	mptour = 0;
	i = 0;
	mp13 = 0;
	mp14 = 0;
	mp15 = 0;
	test = 0;
	mp16 = 0;
	mp17 = 0;
	mp10 = 0;
	mp11 = 0;
	mp12 = new Array (8);
	verf = new Array (10);
		for(i=0; i<11; i++)
	{verf[i]=0}
	mp1 = 10;
	mp4 = new Array (8);
	for(i=0; i<9; i++)
	{mp4[i]=0}
	var iw = 0;
	var iw2d = 0;
		place = new Array(2);
	for(i=0; i<3; i++)
		{
		place[i] = new Array (2);
		for(iv=0; iv<3; iv++)
			{place[i][iv]=0}
		}
}
function mp(mp2)
{
if(test==0)
{
if (mp2=="b1" && mp4[0]<1 )
{start('b1','0','0')
mp4[0] = 1}
if (mp2=="b2" && mp4[1]<1 )
{start('b2', '0', '1')
mp4[1] = 1}
if (mp2=="b3" && mp4[2]<1 ) 
{start('b3', '0', '2')
mp4[2] = 1}
if (mp2=="b4" && mp4[3]<1 ) 
{start('b4', '1', '0')
mp4[3] = 1}
if (mp2=="b5" && mp4[4]<1 ) 
{start('b5', '1', '1')
mp4[4] = 1}
if (mp2=="b6" && mp4[5]<1 ) 
{start('b6', '1', '2')
mp4[5] = 1}
if (mp2=="b7" && mp4[6]<1 ) 
{start('b7', '2', '0')
mp4[6] = 1}
if (mp2=="b8" && mp4[7]<1 ) 
{start('b8', '2', '1')
mp4[7] = 1}
if (mp2=="b9" && mp4[8]<1 ) 
{start('b9', '2', '2')
mp4[8] = 1}
}
}
function start(mp2, mp10, mp11)
{if (mp1==1)
{mp1 = 10;}
else{mp1 = 1}
if (mp1==1){mp3 = "<img src='boutonj.jpg' width=120 height=120>"}
else{mp3 = "<img src='boutonr.jpg' width=120 height=120>"};
document.getElementById(mp2).innerHTML = mp3;
mptour++
ajout(mp10, mp11, mp1);
}
function ajout(mp10, mp11, mp1)
{
   place[mp10][mp11]= mp1;
   for(i=0; i<3; i++)
		{
		mp13 = place[mp10][i];
		mp14 = mp13 + mp14
		}
		der(mp14)
		mp14 = 0;
	   if(test=="0")
	   {
	   for(i=0; i<3; i++)
		{
		mp13 = place[i][mp11];
		mp14 = mp13 + mp14
		}
		der(mp14)
		mp14 = 0;
		if(test=="0")
		{
		mp15 = place[0][0];
		mp16 = place[1][1];
		mp17 = place[2][2];
		mp14 = mp15+mp16+mp17
		der(mp14)
		mp14 = 0;
		if(test=="0")
		{
		mp15 = place[0][2];
		mp16 = place[1][1];
		mp17 = place[2][0];
		mp14 = mp15+mp16+mp17
		der(mp14)	
		mp14 = 0;		
		}
		}
		}
}
function der(mp)
{	
mp3 = "";
if(mp==30)
	{test = 1;
	mp3 = '<u><b>' + nom2 + ' a gagné</b></u>';
	nomwin2++;
	nwm2="score de " + nom2 +": " + nomwin2;
	document.getElementById('nw2').innerHTML =nwm2;}
if(mp==3)
	{
	test = 1;
	mp3 = '<u><b>' + nom + ' a gagné</b></u>';
	nomwin++;
	nwm="score de " + nom + ": "+ nomwin;
	document.getElementById('nw').innerHTML =nwm;}
if(test==1 || mptour==9)
{
document.getElementById("dc").innerHTML = mp3;
document.getElementById("new").innerHTML ="<input type=button value=relancer onClick='le_relanceur()'>";
}
}
function le_relanceur()	
{
for(i=1; i<10; i++)
{
mp12[i]="b"+i
}
for(i=1; i<10; i++)
{document.getElementById(mp12[i]).innerHTML ="&nbsp;";}
document.getElementById("dc").innerHTML ="&nbsp;";
decla()
document.getElementById("new").innerHTML ="";
}
</script>
</head>
<body 
onLoad=
	"nom()"
onLoad=
	"music()">
	<div id=vs></div>
	<div id="son"></div>
  <table border="2" width="450" height="450">
    <tr>
      <a onClick="mp('b1')"><td width="150" height="150"><div id="b1">&nbsp;</div></td></a>
      <a onClick="mp('b2')"><td width="150" height="150"><div id="b2">&nbsp;</div></td></a>
      <a onClick="mp('b3')"><td width="150" height="150"><div id="b3">&nbsp;</div></td></a>
    </tr>
    <tr>
      <a onClick="mp('b4')"><td width="150" height="150"><div id="b4">&nbsp;</div></td></a>
      <a onClick="mp('b5')"><td width="150" height="150"><div id="b5">&nbsp;</div></td></a>
      <a onClick="mp('b6')"><td width="150" height="150"><div id="b6">&nbsp;</div></td></a>
    </tr>
    <tr>
      <a onClick="mp('b7')"><td width="150" height="150"><div id="b7">&nbsp;</div></td></a>
      <a onClick="mp('b8')"><td width="150" height="150"><div id="b8">&nbsp;</div></td></a>
      <a onClick="mp('b9')"><td width="150" height="150"><div id="b9">&nbsp;</div></td></a>
    </tr>
	</table>
  	<table border="2" width="450" height="40" align="left">
    <tr>
    <td width="450" height="40"><div id="dc">&nbsp;</div></td>
    </tr>
	</table><p><br><br></p>
	<p>
	<br>
	<div id=new></div>
        <div id=nw></div>
	<div id=nw2></div>
   
   
   
   
</body>
</html>

Conclusion :


explication par fonction
nom() :
forme les variables qui durent tout au long de la partie
decla():
declare les variables de la partie
mp(mp2):verification que l'on n'a pas deja effectuer ce coup
mp2 est la case ,c'est aussi le nom du div
start(mp2, mp10, mp11):
mp10 et mp11 sont juste transféré et mp1 est pour connaitre le joueur
mptour est le compteur de tours il sert au matchs nuls
ajout(mp10,mp11,mp1):
entre les valeurs dans place avec mp1 qui vaut 1 ou 10 selon le joueur
envoie a la fonction der la verification
der():
s'osccupe de verifier si on a gagné ou pas et effectue en fonction de cela ce qu'il faut
le_relanceur s'occupe de relancer le jeu si besoin est.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
454
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
bien. 5/10
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
Sincèrement, ton code est trop complexe et pas du tout optimisé. De plus, une fonction n'est pas censée contenir des variables globales, pourquoi le fais-tu alors pour ta fonction nom() et autres ?

Utilise aussi des noms plus explicites pour tes variables et fonctions.

++

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.