Dúvida JavaScript Lógica

Olá galera, estou com uma dúvida , pois tenho um jogo que gera numero aleatórios e o jogador vai informando numeros até acertar o numero que foi gerado , quando ele clicar no botão do formulário html que compara os numeros o dele e o aleatório gerado pelo sistema se forem iguais , o sistema exibe uma mensagem mostrando em quantas tentivas ele acertou, tenho um outro botão continuar que permite um novo jogado, e um botão relatório que exibe o nome do jogador que acertou em menas vezes , sendo que essa função não está pegando para mim , não estou conseguindo fazer.

Eu preciso criar uma variavel que armazena as tentativas de um jogador e guardar , e quando clicar em continuar uma outra variavel que armzena outra tentiva de segundo jogador e guardar , depois exibir o jogador que acertou em menos repetições.

[code]

Nome : Numero : [/code]

Ola,

meu, o seu codigo esta meio maluco. Eu re-escrevi praticamente todo o seu codigo so por diversao, ai vai:

<html>
<head>
<script type="text/javascript" language="Javascript">
	var MYGAME = MYGAME || {};
	
	MYGAME.base = (function() {

		var controller = function() {
		
			var randomNumber = null,
			
				game = {},
				
				scores = [],
				
				results = { numberIsHigher: 1, numberIsLower: 2,	numberIsEqual: 3 },		
			
				_generateRandomNumber = function() {	
					randomNumber = (Math.random() * 100);
					randomNumber = Math.floor(randomNumber);
					console.info("Random number is : " + randomNumber);
				},
				
				_compareNumbers = function (guessedNumber) { 
					if  (guessedNumber == randomNumber) {
						return results.numberIsEqual;
					}	else if(guessedNumber > randomNumber){
						return results.numberIsHigher;
					}	else if(guessedNumber < randomNumber){	
						return results.numberIsLower;
					}
				}
				
				start = function(playerName) {
					reset();
					_generateRandomNumber();
					game["name"] = playerName;
				},
				
				reset = function() {
					game = {};
					game["name"] = null;
					game["numberOfGuesses"] = 0;
				},
				
				getScores = function() {
					return scores;
				},
				
				guess = function(guessedNumber) {
					game["numberOfGuesses"] += 1;
					var result = _compareNumbers(guessedNumber);
					if(result == results.numberIsEqual) {
						scores.push(game);
					}
					return result;
				};
				
				// expose the public functions.
				return {
					reset: reset,
					start: start,
					guess: guess,
					getScores: getScores,
					results: results
				};		
			}
			
			return {
				controller: controller
			}
			
	 })();
</script>
<style>
	.controlPanel {
		background-color: gray;
		margin-bottom: 10px;
	}	
	.placeHolder { width: 500px;	}	
	.presentation { display: none; }		
</style>
</head>

<body>

	<div id="placeHolder" class="placeHolder">
		<div id="controlPanel" class="controlPanel">
			<button id="resetgame">Reset</button>
			<button id="startgame">Start</button>
			<button id="showscores">Show scores</button>
		</div>

		<div id="presentation" class="presentation">
			<span id="playerName"></span>
			<span>Guess a number : </span>
			<input id="guessedNumber" type="text" size="10">
			<button id="guess">Go</button>
		<div>
		
	</div>	

	<script>
	(function() {
	
		// get a instance of the game controller.
		var controller = new MYGAME.base.controller();
	
		// get the nodes for setup.
		var resetbutton = document.getElementById("resetgame");				
		var startbutton = document.getElementById("startgame");
		var guessbutton = document.getElementById("guess");		
		var scoresbutton = document.getElementById("showscores");		
		var numbertext = document.getElementById("guessedNumber");		
		var presentationNode = document.getElementById("presentation");
		
		// helper functions
		function showPresentation() {
			presentationNode.style.display = "block"
		}
		
		function hidePresentation() {
			presentationNode.style.display = "none"
		}
		
		function endGame() {
			numbertext.value = "";
			hidePresentation();
		}
		
		// setup onClick event handlers
		if(resetbutton) {
			resetbutton.onclick = function() {
				startbutton.disabled = false;
				controller.reset();
				endGame();
			}
		}
		
		if(startbutton) {
			startbutton.onclick = function() {
				var name = prompt("Please, enter your name: ","");
				if(name == null || name == "")  {
					hidePresentation();
					alert("The player name is required!");
				} else {
					controller.start(name);
					var playerNameNode = document.getElementById("playerName");
					if(playerNameNode != null) {
						playerNameNode.innerHTML = "Welcome, " + name + ".";
						showPresentation();
						this.disabled = true;
					}
				}				
			}
		}
		
		if(guessbutton) {
			guessbutton.onclick = function() {
				var n = numbertext.value;
				var result  = controller.guess(n);				
				switch(result) {				
					case controller.results.numberIsHigher:
						alert("The number you entered is higher");
						break;
					case controller.results.numberIsLower:
						alert("The number you entered is lower");
						break;
					case controller.results.numberIsEqual:
						alert("Congratulations! You won!");
						endGame();
						break;				
				}				
			}
		}
		
		if(scoresbutton) {
			scoresbutton.onclick = function() {
				var scores = controller.getScores();
				if(scores.length <= 0) {
					console.info("There're no scores registered so far");
					return;
				}				
				for(var i = 0 ; i < scores.length; i++) {
					var entry = scores[i];
					console.info("Player name : " + entry.name + ", Number of guesses : " + entry.numberOfGuesses);
				}				
			}
		}
		
	})();
	</script>
</body>
</html>

PS: O botao “Show scores” vai imprimir os resultados por jogador no console. (em caso vc clicar no botao e achar que nada esta acontecendo) :slight_smile:
Voce pode modificar e exibir num outro div por exemplo, ou em alguma outra janela.
//Daniel