var rock = rock;
var paper= paper;
var snip = snip;

var playerOneName= prompt("what is your name");
playerOne = choice();
var playerTwoName = prompt("what is your name");
playerTwo=choice();


function choice(pick){
	prompt("rock paper or snip");
}
if(playerOne === rock && playerTwo === snip){
    alert(playerOneName + " " + "Wins");
}else if(playerOne === paper && playerTwo === rock){
    alert(playerOneName + " " + "Wins");
}else if(playerOne === snip && playerTwo === paper){
    alert(playerOneName + " " + "Wins");
}else if(playerTwo === rock && playerOne === snip){
   alert(playerTwoName + " " + "Wins");
}else if(playerTwo === paper && playerOne === rock){
    alert(playerTwoName + " " + "Wins");
}else if(playerTwo === snip && playerOne === paper){
   alert(playerTwoName + " " + "Wins");
}else if(playerOne === playerTwo){
	alert("it's a tie try again");
}
<!doctype html>
<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script src="rps.js"></script>
</head>
<body>

<ul>
	<li>Rock</li>
	<li>Paper</li>
	<li>Snip</li>
</ul>
</body>
</html>

Hola a todos, estoy de vuelta con una pregunta muy nueva. Por alguna razón, cuando ejecuto mi código para este juego de piedra, papel y tijeras ... constantemente me dice que el jugador uno gana. El problema que descubrí es que siempre se elige la instrucción if y no el else if. ¡Si alguien pudiera ayudar, sería genial! Gracias de nuevo por su tiempo. También esta es mi primera semana aprendiendo javascript ... Es un poco triste que tanta gente rechace mi pregunta ... Esta es la razón por la que la mayoría de la gente tiene miedo de hacer preguntas para su información ...

-5
Ace 14 nov. 2017 a las 08:52

2 respuestas

La mejor respuesta

Pruebe este código JavaScript corregido y verificado:

var rock = rock;
var paper= paper;
var snip = snip;

var playerOneName= prompt("what is your name");
playerOne = choice();
var playerTwoName = prompt("what is your name");
playerTwo=choice();

alert('Player 1 Chose  - '+ playerOne + 'Player 2 Chose  - '+playerTwo);

function choice(pick){
    return(prompt("rock paper or snip"));  //return the prompt value
}

if(playerOne === 'rock' && playerTwo === 'snip'){
    alert(playerOneName + ' ' + 'Wins');
}else if(playerOne === 'paper' && playerTwo === 'rock'){
    alert(playerOneName + ' ' + 'Wins');
}else if(playerOne === 'snip' && playerTwo === 'paper'){
    alert(playerOneName + ' ' + 'Wins');
}else if(playerTwo === 'rock' && playerOne === 'snip'){
   alert(playerTwoName + ' ' + 'Wins');
}else if(playerTwo === 'paper' && playerOne === 'rock'){
    alert(playerTwoName + ' ' + 'Wins');
}else if(playerTwo === 'snip' && playerOne === 'paper'){
   alert(playerTwoName + ' ' + 'Wins');
}else if(playerOne === playerTwo){
    alert('its a tie try again');
}

Correcciones -

  1. Valor de retorno en la función choice(). Prompt tiene el valor de retorno que se recibirá y devolverá en la función.
  2. Alerta y verifica los valores con fines de depuración. Siempre intente esto para saber qué está sucediendo dentro del código.
0
pro_cheats 14 nov. 2017 a las 06:18

Tienes que return el valor ingresado de window.prompt. es decir

function choice(pick){ var answer = prompt("rock paper or snip"); return answer; }

De esta manera, puede obtener lo que el usuario escribió en el indicador de la ventana. Sin embargo, hay algunos casos en los que es posible que deba verificar los valores de null. Más lectura aquí en Mozilla Docs

0
semuzaboi 14 nov. 2017 a las 06:01