Guess Number Game en Javascript, 3 level, 2 players

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Hello tout le monde,

Je m'amuse à faire un guess number game à ma façon.

J'ai plutôt bien géré la partie levels et le jeu en lui même par contre je galère pour le tour par tour. J'ai du mal à l'exprimer en code. C'est pas terrible ce que j'ai fait, vous le verrez c'est au milieu.

C'est du pur javascript et je veux rester là dessus pour le moment car j'ai vraiment envie d'approfondir et de comprendre.

Si quelqu'un peut m'aider je suis preneur

Voici ce que j'ai fait:

 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
35
36
37
38
39
40
41
42
43
var number = 0;
var playerTurn = 1


var levelChoice = prompt( "choisissez un niveau en tapant 1, 2 ou 3" );
if ( levelChoice == "1" ) {
  number = Math.round(Math.random()*10) ;
} else if ( levelChoice == "2" ) {
  number = Math.round(Math.random()*100) ;
} else if ( levelChoice == "3" ) {
  number = Math.round(Math.random()*1000) ;
} else {
  alert( "fais d'abord un des trois niveaux, impatient!" );
}


function displayTurn() {
var NumberPlayer = prompt( "choisissez votre joueur entre 1 et 2" )
if (playerTurn%2==0)
  alert("Joueur 1 c'est à vous");
else
  alert("Joueur 2 c'est à vous");
}
function incPlayerTurn() {
  playerTurn++;
}

function play() {
displayOutput();

incPlayerTurn();
}

for(var i = 1; i <= 8; i++) {
  var guess = prompt( "Devine à quel nombre je pense entre 1 et 100" );
  if( guess < number ) { 
    alert( "Plus haut! Quel est le nombre?" + ( 8-i ) + " essais restants" );
  } else if ( guess > number ) {
    alert( "Plus bas! Quel est le nombre?" + ( 8-i ) + " essais restants" );
  } else {
    alert( " Bravo! Vous avez trouvé le nombre, c'était bien " + number );
  }
}

Édité par Coyote

+0 -0
Auteur du sujet

J'ai trouvé !!!! Je suis trop content Vous en pensez quoi?

Prochaine étape, intégrer un système de high score à la fin de chaque partie (sans enregistrement bien sûr)

 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
35
36
37
38
39
40
41
42
43
44
45
var number = 0;
var playerTurn = 1


var levelChoice = prompt( "choisissez un niveau en tapant 1, 2 ou 3" );
if ( levelChoice == "1" ) {
  number = Math.round(Math.random()*10) ;
} else if ( levelChoice == "2" ) {
  number = Math.round(Math.random()*100) ;
} else if ( levelChoice == "3" ) {
  number = Math.round(Math.random()*1000) ;
} else {
  alert( "fais d'abord un des trois niveaux, impatient!" );
}


function displayTurn() {
  if (playerTurn%2==0)
    alert("Joueur 1 c'est à vous");
  else
    alert("Joueur 2 c'est à vous");
  }

function incPlayerTurn() {
  playerTurn++;
}

function play() {
  displayTurn();
  incPlayerTurn();
}

for(var i = 1; i <= 8; i++) {
  play();
  var guess = prompt( "Devine à quel nombre je pense entre 1 et 100" );
  if( guess < number ) { 
    alert( "Plus haut! Quel est le nombre?" + ( 8-i ) + " essais restants" );
  } else if ( guess > number ) {
    alert( "Plus bas! Quel est le nombre?" + ( 8-i ) + " essais restants" );
  } else {
    alert( " Bravo! Vous avez trouvé le nombre, c'était bien " + number );
  }
}

alert( "GAME OVER" );
+0 -0
Staff

J'ai l'impression déjà que ton message "devine à quel nombre je pense" ne correspond pas au choix du nombre à l'origine.

Ensuite tu pourrais aussi améliorer le choix du niveau, déjà en utilisant un switch mais aussi en bouclant tant que le choix est invalide.

Pour ce qui est du high score rien ne t'empêche de passer par du localStorage pour enregistrer en local, comme Tetris qui enregistre sur la cartouche. ;)


Au passage, essaie d'être plus cohérent dans ta syntaxe (indentation, espacements…), ça facilitera la maintenance du code


Il est aussi recommandé d'éviter les == au profit de === quand c'est possible, pour s'assurer que les types correspondent. Bon ici ça craint pas grand chose, mais c'est une bonne habitude à prendre. :)

Édité par viki53

Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte