Codecademy 9/9
Fermé
rwandael
Messages postés
4
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
-
19 juil. 2016 à 14:10
tomahwang - 20 juil. 2016 à 15:31
tomahwang - 20 juil. 2016 à 15:31
A voir également:
- Codecademy 9/9
- Filmora 9 - Télécharger - Montage & Édition
- Internet explorer 9 - Télécharger - Navigateurs
- Torrent.9 - Télécharger - Téléchargement & Transfert
- Redmagic 9 pro - Accueil - Téléphones
- +33 9 - Forum Mobile
6 réponses
rwandael
Messages postés
4
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
19 juil. 2016 à 14:30
19 juil. 2016 à 14:30
Bonjour ZackielHP,
A la fin du code, quand j'apelle la fonction comparer choix1 devient choixUtilisateur et choix2 devient choixOrdi.
En fait le jeu fonctionne jusqu'au moment où on fait une égalité : à ce moment là, il devient possible de faire un nouveau choix.
Le problème est que ce nouveau choix n'est pas comparé à celui de l'ordinateur
A la fin du code, quand j'apelle la fonction comparer choix1 devient choixUtilisateur et choix2 devient choixOrdi.
En fait le jeu fonctionne jusqu'au moment où on fait une égalité : à ce moment là, il devient possible de faire un nouveau choix.
Le problème est que ce nouveau choix n'est pas comparé à celui de l'ordinateur
ZackielHP
Messages postés
8
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
Modifié par ZackielHP le 19/07/2016 à 14:51
Modifié par ZackielHP le 19/07/2016 à 14:51
J'ai pas trouvé d'erreur dans ton code.. :/
Il semblerait que la comparaison(choix3, choix 4) ne se fasse pas. Aucune idée pourquoi..
Il semblerait que la comparaison(choix3, choix 4) ne se fasse pas. Aucune idée pourquoi..
ZackielHP
Messages postés
8
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
19 juil. 2016 à 15:17
19 juil. 2016 à 15:17
J'ai réussi à résoudre ton problème, mais ça risque de pas te plaire :
Vu que la deuxième comparaison ne marchait pas (Je ne sais pas pourquoi.
Une erreur dans le code ? Une limite de JS ? ) bah je suis passé par une comparaison bête et simple.
C'est un peu plus long du coup, je commence le code avec la variable "comparer" et je ne fais que si ("choix1 === choix2")
Vu que la deuxième comparaison ne marchait pas (Je ne sais pas pourquoi.
Une erreur dans le code ? Une limite de JS ? ) bah je suis passé par une comparaison bête et simple.
C'est un peu plus long du coup, je commence le code avec la variable "comparer" et je ne fais que si ("choix1 === choix2")
var comparer = function(choix1, choix2){
if (choix1 === choix2){
console.log("Egalité !")
var choixUtilisateurbis = prompt("On relance ! Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdibis = Math.random();
if (choixOrdibis < 0.34) {
choixOrdibis = "pierre";
} else if(choixOrdibis <= 0.67) {
choixOrdibis = "feuille";
} else {
choixOrdibis = "ciseaux";
};
console.log("Ordinateur : " + choixOrdibis);
console.log("Utilisteur : " + choixUtilisateurbis);
if (choixOrdibis === choixUtilisateurbis){
console.log("Encore égalité !");
} else if (choixOrdibis === "feuille" && choixUtilisateurbis === "ciseaux") {
console.log("Ciseaux gagnent !");
} else if (choixOrdibis === "feuille" && choixUtilisateurbis === "pierre") {
console.log("Feuille gagne !");
} else if (choixOrdibis === "pierre" && choixUtilisateurbis === "ciseaux") {
console.log("Pierre gagne! ");
} else if (choixOrdibis === "pierre" && choixUtilisateurbis === "feuille") {
console.log("Feuille gagne! ");
} else if (choixOrdibis === "ciseaux" && choixUtilisateurbis === "pierre") {
console.log("Pierre gagne! ");
} else {
console.log("Ciseaux gagnent! ");
};
};
};
comparer(choixUtilisateur, choixOrdi)
rwandael
Messages postés
4
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
19 juil. 2016 à 15:23
19 juil. 2016 à 15:23
Merci de ta réponse et surtout d'avoir passé du temps sur mon code.
Peut-être est-ce finalement du site codecademy que vient le problème ?
Étant vraiment débutant, je ne savais pas si mon code était bon ou non.
Si tu ne vois pas d'erreurs, je crois que je vais passer aux leçons suivantes et arrêter de bloquer sur celle-ci
Peut-être est-ce finalement du site codecademy que vient le problème ?
Étant vraiment débutant, je ne savais pas si mon code était bon ou non.
Si tu ne vois pas d'erreurs, je crois que je vais passer aux leçons suivantes et arrêter de bloquer sur celle-ci
ZackielHP
Messages postés
8
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
19 juil. 2016 à 15:30
19 juil. 2016 à 15:30
Peut-être cela vient-il aussi du site !
Je ne sais pas je ne suis pas un pro du JS ^^
Mais pour avoir fais la plupart des cours de Codecademy ne tombe pas dans le piège de vouloir faire au mieux (Surtout quand ils vont te faire créer ta propre aventure) parce qu'après ils vont te faire découvrir une nouvelle fonctionnalité et tu vas être là :
"J'ai passé 1h à faire 100 lignes alors qu'avec ça j'aurais pu le faire en 10 minutes..."
(C'est du vécu :p)
Par exemple ton code avec les boucles ça aurait duré 5 minutes à faire !
Donc mon conseil c'est suit les cours en faisant le "minimum" et une fois que tu as tout fini, éclate-toi en utilisant tout ce que tu as appris ! :D
Je ne sais pas je ne suis pas un pro du JS ^^
Mais pour avoir fais la plupart des cours de Codecademy ne tombe pas dans le piège de vouloir faire au mieux (Surtout quand ils vont te faire créer ta propre aventure) parce qu'après ils vont te faire découvrir une nouvelle fonctionnalité et tu vas être là :
"J'ai passé 1h à faire 100 lignes alors qu'avec ça j'aurais pu le faire en 10 minutes..."
(C'est du vécu :p)
Par exemple ton code avec les boucles ça aurait duré 5 minutes à faire !
Donc mon conseil c'est suit les cours en faisant le "minimum" et une fois que tu as tout fini, éclate-toi en utilisant tout ce que tu as appris ! :D
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rwandael
Messages postés
4
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
19 juil. 2016 à 15:29
19 juil. 2016 à 15:29
Je viens de voir ton nouveau code et rassure-toi, ça ne me déplaît pas du tout.
Je bloque tellement sur cette leçon que j'ai vraiment besoin d'une nouvelle vision des choses et tu l'apportes.
Je vais essayer ça
Bonne journée à toi
Je bloque tellement sur cette leçon que j'ai vraiment besoin d'une nouvelle vision des choses et tu l'apportes.
Je vais essayer ça
Bonne journée à toi
ZackielHP
Messages postés
8
Date d'inscription
mardi 19 juillet 2016
Statut
Membre
Dernière intervention
19 juillet 2016
19 juil. 2016 à 15:31
19 juil. 2016 à 15:31
No soucis !
Bonne journée aussi !
Bonne journée aussi !
Salut,
pas de boucle et vous appelez comment la fonction if ?
C'est une boucle conditionnelle aussi appelé test logique mais bien une boucle.
C'est à dire qu'à l'intérieur des accolades de chaque if(si) on a des instructions, c'est la boucle.
S'il existe différents types de boucles ce que vous demandez est tout à fait possible avec seulement la boucle if...
Par exemple:
Si le résultat est joueur perds le pierre papier ciseau => afficher vous avez perdu, compter le résultat
Si le résultat est joueur gagne le pierre papier ciseau => afficher vous avez gagné, compter le résultat
Si le résultat est égalité =>afficher égalité, proposer un nouveau pierre papier ciseau
On est bien dans des boucles et le problème est bien un problème de réflexion avant qu'il soit de code.
Cela s'appelle l'algorithmique, un algorithme c'est la structure des éléments du programme(blocs d'instructions). Ici assez simple car tout est procédural(on a un départ définit et tout se fait de façon linéaire du dépaert à l'arrivée).
Concrètement en code en cas d'égalité il vous suffit de rajouter une instruction qui permet de refaire ce que vous avez fait.
Si dans l'exemple cité par Zackie écrire les 100 lignes de code n'était pas forcément nécessaire cela s’appelle de la pédagogie. En faisant cela et passant à la méthode suivante qui permet de réduire le nombre de lignes de codes à taper, la simplicité de fabrication et de lecture du programme est certainement acquise maintenant. Cela s'appelle une leçon et c'est la meilleure façon: tirer soi même l’apprentissage de l'expérience.
Donc les 100 lignes de code qui n'est rien du tout à taper en soi l'était uniquement pour montrer qu'il y a une meilleure façon, plus rapide et plus claire et simple et c'est quelque chose acquis par soi même donc mieux apprit que si on vous dit seulement faites ça parce que ceci et que vous devez le croire aveuglément.
L'informatique c'est fait pour se simplifier la vie. Les langages informatiques c'est avant tout une façon de penser(j'ai cité l'algorithmique mais il y a d'autres notions à comprendre) donc certainement pas une acquisition de savoir en faisant du recopier mais bien une méthode de pensée(pour aller plus loin d'analyse et de conception) avant tout.
pas de boucle et vous appelez comment la fonction if ?
C'est une boucle conditionnelle aussi appelé test logique mais bien une boucle.
C'est à dire qu'à l'intérieur des accolades de chaque if(si) on a des instructions, c'est la boucle.
S'il existe différents types de boucles ce que vous demandez est tout à fait possible avec seulement la boucle if...
Par exemple:
Si le résultat est joueur perds le pierre papier ciseau => afficher vous avez perdu, compter le résultat
Si le résultat est joueur gagne le pierre papier ciseau => afficher vous avez gagné, compter le résultat
Si le résultat est égalité =>afficher égalité, proposer un nouveau pierre papier ciseau
On est bien dans des boucles et le problème est bien un problème de réflexion avant qu'il soit de code.
Cela s'appelle l'algorithmique, un algorithme c'est la structure des éléments du programme(blocs d'instructions). Ici assez simple car tout est procédural(on a un départ définit et tout se fait de façon linéaire du dépaert à l'arrivée).
Concrètement en code en cas d'égalité il vous suffit de rajouter une instruction qui permet de refaire ce que vous avez fait.
Si dans l'exemple cité par Zackie écrire les 100 lignes de code n'était pas forcément nécessaire cela s’appelle de la pédagogie. En faisant cela et passant à la méthode suivante qui permet de réduire le nombre de lignes de codes à taper, la simplicité de fabrication et de lecture du programme est certainement acquise maintenant. Cela s'appelle une leçon et c'est la meilleure façon: tirer soi même l’apprentissage de l'expérience.
Donc les 100 lignes de code qui n'est rien du tout à taper en soi l'était uniquement pour montrer qu'il y a une meilleure façon, plus rapide et plus claire et simple et c'est quelque chose acquis par soi même donc mieux apprit que si on vous dit seulement faites ça parce que ceci et que vous devez le croire aveuglément.
L'informatique c'est fait pour se simplifier la vie. Les langages informatiques c'est avant tout une façon de penser(j'ai cité l'algorithmique mais il y a d'autres notions à comprendre) donc certainement pas une acquisition de savoir en faisant du recopier mais bien une méthode de pensée(pour aller plus loin d'analyse et de conception) avant tout.
pour le cas qui vous concerne peut être verrez vous les fonctions qui sont des blocs d'instructions auxquels on peut faire appel quand on le désire une fois ceux ci écrits, donc dans le cas d'une pierre papier ciseau l'instruction qui permet le choix du joueur et l'instruction qui permet le choix d'une réponse aléatoire de l'ordinateur peuvent être mis en "fonction" et donc utilisé de façon générique pour les "appeler"(utiliser) quand on le désire.
Mais peut être le cours prends le parti de vous faire réécrire celles ci pour vous montrer à quel point es fonctions sont des notions essentielles et indispensables de la programmation et le résultat obtenu en les utilisant par rapport à ne pas les utiliser.
Bref c'est l'apprentissage normal, et le meilleur comme déjà dit(voire le seul?) : tirer parti de vos erreurs ou méconnaissances par vous même plutôt que suivre bêtement un dogme imposé sans savoir pourquoi. Cela se nomme l'expérience et Zackie à eu l'expérience de 100 lignes écrites où il pouvait n'y en avoir que quelques unes à la place et à donc acquis non seulement la syntaxe et facilité de la solution meilleure que les 100 lignes et surtout le but de celles ci(éviter d'écrire des centaines de lignes quand une fonction peut faire plus rapide, simple et clair).
Mais peut être le cours prends le parti de vous faire réécrire celles ci pour vous montrer à quel point es fonctions sont des notions essentielles et indispensables de la programmation et le résultat obtenu en les utilisant par rapport à ne pas les utiliser.
Bref c'est l'apprentissage normal, et le meilleur comme déjà dit(voire le seul?) : tirer parti de vos erreurs ou méconnaissances par vous même plutôt que suivre bêtement un dogme imposé sans savoir pourquoi. Cela se nomme l'expérience et Zackie à eu l'expérience de 100 lignes écrites où il pouvait n'y en avoir que quelques unes à la place et à donc acquis non seulement la syntaxe et facilité de la solution meilleure que les 100 lignes et surtout le but de celles ci(éviter d'écrire des centaines de lignes quand une fonction peut faire plus rapide, simple et clair).
19 juil. 2016 à 14:51