IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Jeux du Morpion détecter les cases gagnantes


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Jeux du Morpion détecter les cases gagnantes
    Bonjour, c'est encore moi ^^

    J'essaye toujours de faire un morpion, et j'en suis au stade où on peut cliquer sur les cases, et où les ronds et les croix apparaissent en alternance (comme dans un vrai morpion finalement).

    Voici le tableau qui me sert de grille de jeu :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <table id="grille">
    	<tr>
    		<td id="A1" nowrap="nowrap" onclick="placerSigne(id)"></td>
    		<td id="B1" nowrap="nowrap" onclick="placerSigne(id)"></td>
    		<td id="C1" nowrap="nowrap" onclick="placerSigne(id)"></td>
    	</tr>
    	<tr>
    		<td id="A2" nowrap="nowrap" onclick="placerSigne(id)"></td>
    		<td id="B2" nowrap="nowrap" onclick="placerSigne(id)"></td>
    		<td id="C2" nowrap="nowrap" onclick="placerSigne(id)"></td>
    	</tr>
    	<tr>
    		<td id="A3" nowrap="nowrap" onclick="placerSigne(id)"></td>
    		<td id="B3" nowrap="nowrap" onclick="placerSigne(id)"></td>
    		<td id="C3" nowrap="nowrap" onclick="placerSigne(id)"></td>
    	</tr>
    </table>

    Et le js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    var tourCroix = true; /* Afin de savoir quel symbole est "en train de jouer", et donc quelle image placer */
    var sourceImage; /* Sera modifiée selon l'image que l'on souhaite utiliser (rond / croix) */
    var image; /* Variable qui contiendra la source complète de l'image à afficher. On l'utilisera lorsque on voudra placer un des signes */
     
     
    function placerSigne(id) {
    	var sourceImage = 'Rond.png'; /* On prédéfini la source de l'image comme étant le rond */
     
    	if (tourCroix === true) {
    		sourceImage = 'Croix.png'; } /* Si c'est le tour du J1 on défini la source comme étant la croix, sinon on laisse le rond pour le J2 */
     
    	image = '<img src="' + sourceImage + '"/>'; /* On attribut à "image" la source complète de l'image à afficher */
    	document.getElementById(id).innerHTML = image; /* On affiche dans la case cliquée l'image */
     
    	tourCroix = !tourCroix; } /* Toggle la variable entre true et false pour faire alterner les tours */
    Le problème que j'ai maintenant, est que je ne sais pas vraiment comment détecter lorsque quelqu'un gagne.
    J'ai cherché sur internet, et j'ai trouvé plus où moins ce que je cherchais mais je ne comprenais pas vraiment le code, de plus il ne correspondait pas vraiment à ce que je veux faire.
    Il me faut détecter lorsque 3 images de rond ou de croix sont alignées dans les 3 lignes verticales et les 3 lignes horizontales ainsi que dans les 2 diagonales.
    Auriez vous une idée ?

    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2014
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 388
    Points : 578
    Points
    578
    Par défaut
    Bonjour,

    Une solution, peut-être, est de s'aider d'un objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var case={};
    case.A1=case.A2=case.A3=case.B1=case.B2=case.B3=case.C1=case.C2=case.C3="vide";
    Puis, dans la fonction placerSigne(id) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function placerSigne(id) {
       ...
       if (tourCroix === true) {
       case[id]="croix";
       ...
    Enfin, il faut identifier les combinaisons gagnantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var gain="";
    if (case.A1=="croix"&&case.A2=="croix"&&case.A3=="croix") gain="croix";
    if (case.B1=="croix"&&case.B2=="croix"&&case.B3=="croix") gain="croix";
    ...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    avant de commencer à coder, on doit REFLECHIR, avec un PAPIER et un CRAYON.
    Ca permet de se poser les bonnes questions, de comprendre et d'organiser ce qu'on doit faire pour aboutir. C'est la phase de CONCEPTION.

    Dans ton code, à aucun moment :
    • tu n'enregistres les coups joués
    • tu vérifies si la case a déjà été jouée ou pas (une case déjà jouée ne doit plus être cliquable)


    eleydet te donne un début de piste :
    • enregistrer chaque coup dans un tableau
    • lister les conditions requises pour gagner la partie



    N.B. En cherchant un peu , on trouve aussi des scripts : ici, ou ici, ou encore .
    Ca peut être intéressant de regarder (et ETUDIER) les codes...
    Dernière modification par Invité ; 29/04/2017 à 10h47.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Merci à vous 2 ! Je débute en informatique et code, je vais essayer d'appliquer vos conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/05/2009, 10h53
  2. Réponses: 1
    Dernier message: 02/02/2009, 14h11
  3. Jouer avec les chaines de caractères ?
    Par vr900 dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/04/2007, 16h26
  4. jouer avec les couleur des lignes de diplaytable
    Par fouyou dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/04/2007, 10h01
  5. [VBA-E]Jouer avec les chaines de caractere contenu ds cellu
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2006, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo