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 :

Puissance 4 code ne fonctionnant plus


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut Puissance 4 code ne fonctionnant plus
    bonjour,

    J'ai un énorme problème urgent, je ne sais pas du tout mais mon jeux ne marche plus pourtant j'ai bien fait des retour en arriére dans le code mais je ne vois pas la modif qui a pu faire ça.

    Sa m'ennui en plus je ne sais pas ou se trouve l'erreur dans le html la partie js mais je vois pas, je pense.

    Voici ou vous pouvez trouver le code, aucune idée du pourquoi du comment.

    http://mmnns.free.fr/puissance4.html

    Normalement je clic que nouvelle partie sa m'ouvre une popup on met ok après le noms des joueur et qui veux commencer. Mais la les autres s'ouvre pas.(celle du nom du joueur)

    Cordialement

  2. #2
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <section id="jeux" text="black" link="blue" vlink="purple" alink="red" onload="rePlay();">
    rePlay() ->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function rePlay() 
    {
    	if (gameActive == 1) 
    	{
    		document.formo.redScoreBoard.value = redScore + "";
    		document.formo.blackScoreBoard.value = blackScore + "";
    		clearBoard();
    	}
    	for (var c1 = 0; c1 <= 6; c1++) 
    	{
    		vals[c1] = 0;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formo.redScoreBoard.value = redScore + "";
    redScoreBoard n'est pas encore défini à ce moment là (onload de '#jeux') donc tu essayes d'accèder à la "value" d'un élément inexistant et ton code javascript plante.

    c'est en tout cas l'erreur affichée, mais c'est érange puisque ton input "redScoreBoard" se trouve bien dans ta section "jeux". sans doute un problème d'incompatibilité avec la balise "section" ?


    sinon, autre chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:|code|" >text</a>
    c'est HORRIBLE !!
    au lieu de passer par une injection d'url, utilise l'attribut "onclick" prévu à cet effet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="|code|" >text</a>

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut
    Merci d'avoir répondu.

    D'abord, en effet le rePay() ne sert a rien ici. Mais si je clock sur le bouton Nouvelle partie il devrait faire la fonction newMatchUp() et continuer le jeux mais la il affiche même pas les popu si mais que une.

    Ensuite pour le onclik:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick=\"dropIt("+j+")\"....
    mais maintenant il affiche plus le plateaux de jeux.

    Pour la balise section je ne sais pas du tout :/ oui elle est bien dans section pourtant.
    C'est celui la qui plante:
    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
    16
    17
    18
    19
    20
    (function () {
    								var i, j, content = '<table>';
    								content += '<tr>';
    								for (j = 0; j < 7; j++) 
    								{
    									content += "<td><a href=\"javascript:void dropIt("+j+")\" onmouseover=\"placeTop("+j+"); setMsg(''); return true\" onmouseout=\"unPlaceTop("+j+")\"><img src=\"./clearness.gif\" width=\"50\" height=\"50\" border=\"0\"></a></td>";
    								}
    								content += '</tr>';
    								for (i = 0; i < 6; i++) 
    								{
    									content += '<tr>';
    									for(j = 0; j < 7; j++) 
    									{
    										content += "<td><a href=\"javascript:void dropIt("+j+")\" onmouseover=\"placeTop("+j+"); setMsg(''); return true\" onmouseout=\"unPlaceTop("+j+")\"><img src=\"./image/pasdepion.gif\" width=\"50\" height=\"50\" border=\"0\"></a></td>";
    									}
    									content += '</tr>';
    								}
    								content += '</table>';
    								document.getElementById("formo").innerHTML = content;
    							}());
    le code la marche pourtant je vois pas l'erreur :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <form name="formo" method="get">
    					<table border="0" cellpadding="0" cellspacing="0">
     
    						<script type="text/javascript">
     
    							//ecriture du plateau de jeux sous forme de tableau HTML
    							document.write('<table>');
    								document.write('<tr>');
    									for(j = 0; j < 7; j++)
    									{
    										document.write("<td><a href=\"javascript:void dropIt("+j+")\" onmouseover=\"placeTop("+j+"); setMsg(''); return true\" onmouseout=\"unPlaceTop("+j+")\"><img src=\"./clearness.gif\" width=\"50\" height=\"50\" border=\"0\"></a></td>");
    									}
     
     
    								for(i = 0; i < 6; i++)
    								{
    									document.write('<tr>');
    										for(j = 0; j < 7; j++)
    										{
    											document.write("<td><a href=\"javascript:void dropIt("+j+")\" onmouseover=\"placeTop("+j+"); setMsg(''); return true\" onmouseout=\"unPlaceTop("+j+")\"><img src=\"./image/pasdepion.gif\" width=\"50\" height=\"50\" border=\"0\"></a></td>");
    										}
    									document.write('</tr>');
    								}			document.write('</table>');
    								</script>

  4. #4
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par zyhou Voir le message
    Merci d'avoir répondu.

    D'abord, en effet le rePay() ne sert a rien ici. Mais si je clock sur le bouton Nouvelle partie il devrait faire la fonction newMatchUp() et continuer le jeux mais la il affiche même pas les popu si mais que une.
    ce que je voulais dire, c'est lors du chargement de ta page, l'objet "<section id=jeux ....>" est créé, il déclenche l'appel à "rePlay()" grâce à son attribut "onload" dans replay, tu tentes d'accèder à "document.formo.redScoreBoard" qui n'est défini que plus tard dans la page et qui n'existe donc pas encore et qui plante le code (donc plus rien après ne s'exécute).

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut
    Ah ok j'avais pas compris cela comme ça. Je suis désolé.
    Merci a toi

    Sinon autre petit truc qui me dérange c'est :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    if (document.images[counter].src == lookForSrc) 
    			{
     
    				if ((counter + 3 <= 48 
    				&& counter != 11 && counter != 12 && counter != 13 
    				&& counter != 18 && counter != 19 && counter != 20 
    				&& counter != 25 && counter != 26 && counter != 27 
    				&& counter != 32 && counter != 33 && counter != 34 
    				&& counter != 39 && counter != 40 && counter != 41
    				&& document.images[counter + 1].src == lookForSrc
    				&& document.images[counter + 2].src == lookForSrc
    				&& document.images[counter + 3].src == lookForSrc) 
     
    				|| (counter + 3 * 7 <= 48
    				&& document.images[counter + 7].src == lookForSrc
    				&& document.images[counter + 7*2].src == lookForSrc
    				&& document.images[counter + 7*3].src == lookForSrc)
     
    				|| (counter + 3 * 7 <= 48
    				&& counter != 11 && counter != 12 && counter != 13 
    				&& counter != 18 && counter != 19 && counter != 20 
    				&& counter != 25 && counter != 26 && counter != 27 
    				&& document.images[counter + 7 + 1].src == lookForSrc
    				&& document.images[counter + 7*2 + 2].src == lookForSrc
    				&& document.images[counter + 7*3 + 3].src == lookForSrc)
     
    				|| (counter - 3 * 7 >= 7
    				&& counter != 32 && counter != 33 && counter != 34 
    				&& counter != 39 && counter != 40 && counter != 41
    				&& counter != 46 && counter != 47 && counter != 48
    				&& document.images[counter - 7 + 1].src == lookForSrc
    				&& document.images[counter - 7*2 + 2].src == lookForSrc
    				&& document.images[counter - 7*3 + 3].src == lookForSrc)) 
    				{
    c'est juste moche ^^ mais ca marche. Comment je pourrais le rendre mieux en tout cas plus simple. Même la a expliquer pas sur d'arriver a le faire :/

  6. #6
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    counter + 3 <= 48 && counter != 11 && counter != 12 && counter != 13 
    && counter != 18 && counter != 19 && counter != 20 
    && counter != 25 && counter != 26 && counter != 27 
    && counter != 32 && counter != 33 && counter != 34 
    && counter != 39 && counter != 40 && counter != 41
     
    //===>
     
    ( (counter-4)%7 >= 3 || counter<11 ) && counter <= 45

  7. #7
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par zyhou Voir le message
    Ah ok j'avais pas compris cela comme ça. Je suis désolé.
    Merci a toi

    Sinon autre petit truc qui me dérange c'est :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    if (document.images[counter].src == lookForSrc) 
    			{
     
    				if ((counter + 3 <= 48 
    				&& counter != 11 && counter != 12 && counter != 13 
    				&& counter != 18 && counter != 19 && counter != 20 
    				&& counter != 25 && counter != 26 && counter != 27 
    				&& counter != 32 && counter != 33 && counter != 34 
    				&& counter != 39 && counter != 40 && counter != 41
    				&& document.images[counter + 1].src == lookForSrc
    				&& document.images[counter + 2].src == lookForSrc
    				&& document.images[counter + 3].src == lookForSrc) 
     
    				|| (counter + 3 * 7 <= 48
    				&& document.images[counter + 7].src == lookForSrc
    				&& document.images[counter + 7*2].src == lookForSrc
    				&& document.images[counter + 7*3].src == lookForSrc)
     
    				|| (counter + 3 * 7 <= 48
    				&& counter != 11 && counter != 12 && counter != 13 
    				&& counter != 18 && counter != 19 && counter != 20 
    				&& counter != 25 && counter != 26 && counter != 27 
    				&& document.images[counter + 7 + 1].src == lookForSrc
    				&& document.images[counter + 7*2 + 2].src == lookForSrc
    				&& document.images[counter + 7*3 + 3].src == lookForSrc)
     
    				|| (counter - 3 * 7 >= 7
    				&& counter != 32 && counter != 33 && counter != 34 
    				&& counter != 39 && counter != 40 && counter != 41
    				&& counter != 46 && counter != 47 && counter != 48
    				&& document.images[counter - 7 + 1].src == lookForSrc
    				&& document.images[counter - 7*2 + 2].src == lookForSrc
    				&& document.images[counter - 7*3 + 3].src == lookForSrc)) 
    				{
    c'est juste moche ^^ mais ca marche. Comment je pourrais le rendre mieux en tout cas plus simple. Même la a expliquer pas sur d'arriver a le faire :/
    après avoir recollé toutes mes réponses (j'ai supprimé mes multi-messages), ton code devient :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    function checkSrc(a) {
    	for (var i = 0, b = 1, a = a.split(,); i < a.length && b; i++)
    		b = (document.images[counter+parseInt(a[i],10)].src == lookForSrc);
    	return b;
    }
    if(checkSrc([0]){
    	if((
    			(counter < 11 || (counter - 4) % 7 >= 3)
    			&& counter <= 45 
    			&& checkSrc("1,2,3")
    		)
    		|| 
    		(	counter <= 27
    			&& checkSrc("7,14,21")
    		)
    		||
    		(
    			(counter < 11 || (counter-4)%7 >= 3 )
    			&& counter  <= 27
    			&& checkSrc("8,16,24")
    		)
    		||
    		(
    			( counter>48 || (counter-4)%7 >= 3)
    			&& counter >= 28
    			&& checkSrc("-6,-12,-18")
    		)
    	){
    401 caractères au lieu de 1102.

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

Discussions similaires

  1. Code ne fonctionnant plus sans registers_globals
    Par marycandy dans le forum Langage
    Réponses: 4
    Dernier message: 09/01/2013, 12h20
  2. [Toutes versions] code ne fonctionne plus en copiant une feuille pour renommer les onglets
    Par tazko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2012, 22h12
  3. Le code ne fonctionne plus dans une fonction
    Par Yukiho dans le forum Langage
    Réponses: 0
    Dernier message: 12/03/2010, 11h19
  4. Code ne fonctionne plus quand j'ai splitté la base
    Par jloois dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/03/2009, 22h33
  5. Codes ne fonctionnant plus !
    Par PC_BE dans le forum VB.NET
    Réponses: 4
    Dernier message: 16/04/2008, 14h27

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