Partage
  • Partager sur Facebook
  • Partager sur Twitter

jeu de morpion : fonction pour verifier si un joueur a gagné

Sujet résolu
    6 juillet 2009 à 17:34:50

    Bonjour,

    Je suis actuellement en train de "scripter" un jeu de morpion en javascript et j'ai du mal à trouver une solution pour faire une fonction qui verifirait si un des deux joueurs a gagné.

    Voici mon code Javascript avec le HTML :

    <html>
    <head>
    <style type="text/css">
    .table{
    width : 250px;
    height : 250px;
    border : solid 3px black;
     border-collapse: collapse;
    
    }
    
    .td{
    border : solid 3px black;
    
    width : 33%;
    height : 33%;
    }
    </style>
    <title>Jeu en javascript</title>
    
    </head>
    <body>
    <script type="text/javascript">
    <!--
    
    var morpion = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1);
    var auJoueur1 = true;
    
    
    function placerSigne(idCase)
    {
    	if(morpion[idCase] == -1)
    	{
    	var image = (auJoueur1) ? 0:1;
    	document.getElementById(idCase).innerHTML = '<img src="'+image+'.gif" alt="image !" />';
    	morpion[idCase] = "1";
    		
    	}
    	else
    	{
    	alert("Case occupée");
    	}
    	
    	if(auJoueur1 == false)
    		{
    		auJoueur1 = true;
    		}
    		else
    		{
    		auJoueur1 = false;
    		}
    	
    	
    }
    function resetGame()
    {
    	for(var i=0;i<9;i++)
    	{
    	morpion[i] = "";
    	}
    }
    function reglesJeu()
    {
    alert("Voici les règles du morpion Tic Tac Toe : \n Le but du jeu est d'aligner trois croix ou trois rond. Le premier qui réussit à aligner trois de ses signes remporte la manche.\n Il y a autant de manches que vous désirez. Il suffit de réinitialiser la grille à la fin de la manche en cliquant sur le lien ou d'attendre qu'elle se réinitialise toute seule (15 sec)");
    }
    
    for(var i=0; i<9; i++)
    {
     document.write(morpion[i]);
     }
     
    
    
    -->
    </script>
    <table class="table" align="center">
    	<tr>
    		<td class="td" onclick="placerSigne(0)" id="0">&nbsp;</td>
    		<td class="td" onclick="placerSigne(1)" id="1">&nbsp;</td>
    
    		<td class="td" onclick="placerSigne(2)" id="2">&nbsp;</td>
    	</tr>
    	<tr>
    		<td class="td" onclick="placerSigne(3)" id="3">&nbsp;</td>
    		<td class="td" onclick="placerSigne(4)" id="4">&nbsp;</td>
    		<td class="td" onclick="placerSigne(5)" id="5">&nbsp;</td>
    	</tr>
    	<tr>
    		<td class="td" onclick="placerSigne(6)" id="6">&nbsp;</td>
    
    		<td class="td" onclick="placerSigne(7)" id="7">&nbsp;</td>
    		<td class="td" onclick="placerSigne(8)" id="8">&nbsp;</td>
    	</tr>
    </table>
    <div id="joueur" style="text-align : center;">Au joueur 1 de jouer.<br /><a href="" onclick="reglesJeu()">R&egrave;gles du jeu</a></div>
    <div style="text-align:center;"><a href="" onclick="resetGame()">Réinitialiser la grille de jeu</a></div><br /><br />
    <table style="border : solid 3px #3399FF;" align="center">
    <tr>
    <td style="border : solid 1px #3399FF;">Joueur 1</td>
    <td style="border : solid 1px #3399FF;">Joueur 2</td>
    
    </tr>
    <tr>
    <td style="border : solid 1px #3399FF;" id="score0">0</td>
    <td style="border : solid 1px #3399FF;" id="score1">0</td>
    </tr>
    </table>
    
    </body>
    </html>
    


    Je vous remercie d'avance

    The fan of charlotte.

    Ps: j'ai déja deux fonctions qui permettent de placer des symboles et de réinitialiser la grille.

    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      6 juillet 2009 à 17:57:36

      Hum... ce code fonctionne, mais il y a peut-être plus simple :-°

      var gagne = false;
      for(var i=0;i<morpion.length;i+=3) {
        gagne = gagne || ((morpion[i]!=-1) ? (morpion[i]==morpion[i+1] && morpion[i]==morpion[i+2]) : false);
        gagne = gagne || ((morpion[i]!=-1) ? (morpion[i]==morpion[i+3] && morpion[0]==morpion[i+6]) : false);
      }
      gagne = gagne || ((morpion[0]!=-1) ? (morpion[0]==morpion[4] && morpion[0]==morpion[8]) : false);
      gagne = gagne || ((morpion[2]!=-1) ? (morpion[2]==morpion[4] && morpion[2]==morpion[6]) : false);
      // Ici gagne vaut true s'il y a un gagnant
      // ou false s'il n'y en a pas
      
      • Partager sur Facebook
      • Partager sur Twitter
        6 juillet 2009 à 18:33:59

        Pense à mettre le sujet en résolu à l'aide du lien en bas de page ;)
        • Partager sur Facebook
        • Partager sur Twitter

        jeu de morpion : fonction pour verifier si un joueur a gagné

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown