Syntaxe, ou est l'erreur?portée de var dans function( ?

Résolu/Fermé
osotogari - Modifié par osotogari le 28/08/2015 à 21:09
 osotogari - 29 août 2015 à 07:03
Bonsoir,
Firebug me dit:
ReferenceError: invalid assignment left-hand side
if(plr=="pierre" && ai="ciseaux"){test=1;}


var compare=function(plr,ai){
  var test="";
  if(plr==ai){test=0;}
  if(plr=="pierre" && ai="ciseaux"){test=1;}
  if(plr=="pierre" && ai="papier"){test=-1;}
  if(plr=="papier" && ai="pierre"){test=1;}
  if(plr=="papier" && ai="ciseaux"){test=-1;}
  if(this.plr=="ciseaux" && ai="pierre"){test=-1;}
  if(this.plr=="ciseaux" && ai="papier"){test=1;}
  return test;
  }



pas compris... j'ai essayé d'autres variantes comme this.plr et if(condittion)&&(condittion){}

Une idée?
Je peux mettre le reste du code et après j'ai du JQuery mais je voit pas le rapport...merci


edit: je sais c'est pas très beau comme code , je pourrais faire des objets utiliser switch mais bon ça devrait fonctionner quand même... que rates je?

2 réponses

Utilisateur anonyme
29 août 2015 à 05:48
Bonjour

Tu sais que la comparaison en javascript se fait avec == et non pas simplement =, puisque tu écris
 if(plr=="pierre"
. Mais alors pourquoi écris-tu
&& ai="ciseaux")
?

Et d'autre part, tu écris tantôt plr, tantôt this.plr. Es-tu sûr de savoir ce que tu fais ?
0
Bonjour,
en effet la 2ème comparaison était pas bonne et comme j'ai dupliqué la ligne j'ai dupliqué l'erreur. Cela devait venir de là et je me suis focalisé où était l'erreur indiqué par firebug(dans la première condition du ET).
Le this.plr c'était un test pour voir si le problème venait de là.
Sûr de savoir ce que je fais? En javascript pas vraiment d'où la volonté/nécessité de me faire quelques programmes/routines simples pour être plus à l'aise.

En tout cas je n'ai plus l'erreur en ayant corrigé la 2ème condition.
Merci de ton regard, j'aurais du voir ça mais parfois pas assez de recul sur mon script et je perds du temps.
Plus qu'à aller dans mon JQuery pour les événements et j'aurais mon jeu de pierre papier ciseaux :)
0
pour info le code complet, encore en développement:(tout dans le même fichier par volonté de faire un truc vite fait et simple à télécharger- le lien vers la bibliothèque jquery sera remplacé par sa version en ligne)
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="utf-8">
    <title>Pierre - Papier - Ciseau</title>
    <script type="text/javascript" src="jquery-2.1.4.js"></script>
 <script type="text/javascript">

//--fonctions
 var getAI=function(){
  var hasard=Math.floor((Math.random() * 3) + 1);
  var choix="";
  if(hasard==1){choix="pierre";}
  if(hasard==2){choix="papier";}
  if(hasard==3){choix="ciseaux";}
  return choix;
  }
 var compare=function(plr,ai){
  var test="";
  if(plr==ai){test=0;}
  if(plr=="pierre" && ai=="ciseaux"){test=1;}
  if(plr=="pierre" && ai=="papier"){test=-1;}
  if(plr=="papier" && ai=="pierre"){test=1;}
  if(plr=="papier" && ai=="ciseaux"){test=-1;}
  if(plr=="ciseaux" && ai=="pierre"){test=-1;}
  if(plr=="ciseaux" && ai=="papier"){test=1;}
  return test;
  }
 var setMessage=function(turn,joueur,ai,resultat){
  var message="tour "+turn+": ";
  if(resultat==0){message+="Egalite ";}
  if(resultat==1){message+="Gagné ";}
  if(resultat==-1){message+="Perdu ";}
  message+="- Vous:"+joueur+" contre "+ai;
  return message;
  }
 
 $(document).ready(function(){
  var scorejoueur=0;
  var scoreordi=0;
  var turncount=0;
  var setScorejoueur=function(){scorejoueur++;$('#scorejoueur').text(scorejoueur);}
  var setScoreordi=function(){scoreordi++;$('#scoreordi').text(scoreordi);}
  $('#scorejoueur').text("0");
  $('#scoreordi').text("0");
 

  $('#valide').click(function(){
   turncount++;
   var joueur=$('#choixjoueur').val();
   var ordi=getAI();
   var comparaison=compare(joueur,ordi);
   var ligne=setMessage(turncount,joueur,ordi,comparaison);
   $('#sortie').append("<p>"+ligne+"</p>");
   if(comparaison>0){setScorejoueur();}
   if(comparaison<0){setScoreordi();}
   });//---END --- clic handler ///////////////////////// 
  });//--END ready
 </script>
 
</head>
<body>
<form>
<select id="choixjoueur">
<option value="pierre">pierre</option>
<option value="papier">papier</option>
<option value="ciseaux">ciseaux</option>
</select>
<button type="button" id="valide">GO!</button>
</form>
<table>
<tr>
 <td>
<p id="scorejoueur"></p>
 </td>
 <td>
<p id="scoreordi"></p>
 </td>
</tr>
<div id="sortie">

</div>
</table>
</body>
</html>
0