J'ai récemment pris le codage avec JavaScript et j'ai décidé de faire une partie, de tester mes connaissances. Rien ne se passe lorsque j'appuie sur les objets censés démarrer le jeu et que lorsque j'envoie des informations via la console (la plupart du temps), rien ne se passe.
const paper = document.getElementById('paper');
const scissor = document.getElementById('scissor');
const result_in = document.getElementById("result")
let computer;
let computer_pick;
let result;
//Player choice
rock.onclick = play('rock');
paper.onclick = play('paper');
scissor.onclick = play('scissor');
function play(userinput) {
computer_pick = Math.floor(Math.random() * 3);
console.log(computer_pick);
if (computer_pick === 0) {
computer = 'rock'
} else if (computer_pick === 1) {
computer = 'paper';
} else if (computer_pick === 2) {
computer = 'scissor';
} else { console.log('error') };
console.log(computer);
//
if (computer == userinput) { //tie
result = 'tie';
} else if (computer == 'rock' && userinput == 'paper' || computer == 'paper' && userinput == 'scissor' || computer == 'scissor' && userinput == "rock") {
console.log(win);
result = 'win';
} else if (computer == 'rock' && userinput == 'scissor' || computer == 'paper' && userinput == 'scissor' || computer == 'scissor' && userinput == 'paper') {
console.log(loss);
result = 'lost';
}
//output
document.getElementById('result').innerHTML = You ${result}! The computer threw ${computer}.;
}
3 Réponses :
attendez-vous que le DOM soit chargé?
Où êtes-vous injecté ce fichier à dom? dans Si vous injectez ce code dans quelque chose comme ceci: p> tête code> tag ou Body code> tag! p> Tête CODE> TAG "Vous devez attendre que le DOM devenir chargé p>
Il y a des erreurs dans votre code:
Vous n'avez pas défini Ce n'est pas une erreur de codage, mais un simple problème logique: vous avez trois alternatives de résultat: cravate strong>, gagnant fort>, La même chose est vraie pour la variable p> rock.onclick code> n'est pas correct - rock.addeventlistener ("cliquer", fonction (E) {}) code> est correct p> li>
console.log (gagnez) code> (ou perte) n'est pas correct - vous essayez de console.log () code> une variable qui n'existe pas - Pour générer une chaîne dans console.log () code> Vous devez le mettre dans des guillemets console.log ("win ') code> p> l> l>
document.getElementByID ("résultat '). innerhtml = vous $ {résultat}! L'ordinateur a jeté $ {ordinateur}.; Code> n'est pas correct - vous devez utiliser des backtsks pour une interpolation de chaîne p> li>
rock code> comme vous l'avez fait papier code> et ciscisor code> p> l> l> li>
sinon si code>, uniquement sinon code> p> li>
sinon code> pour sinon si code>, uniquement pour ele code>). li>
ol> <div id="rock" class="btn">ROCK</div><br />
<div id="paper" class="btn">PAPER</div><br />
<div id="scissor" class="btn">SCISSORS</div><br />
<div>RESULT: <span id="result"></span></div>
Essayez et vous avez besoin de "" pour la ligne document.getElementByID ("résultat"). innerhtml = "" code> p> p>
Désolé, mais " b> ne fonctionnera pas dans ce cas. L'interpolation de chaîne est utilisée, que nécessite B> backticks; onclick =" " code> n'est pas conseillé - Il coule le DOM avec votre code et Afaik Ça va être obsolète bientôt.
Quelle erreur obtenez-vous? Ajoutez votre code HTML aussi.
rock.onclick code> - mais où définissez-vousrock code>?console.log (gagnez); code> etconsole.log (perte); code> devrait lancer une erreur car ces variables ne sont définies nulle part.