Cherchobjet

Description

C'est un jeu dont le principe est de trouver des objets cachés dans un tableau en un temps et en un nombre d'essais limités (voir le résultat). les paramètres de jeu sont modifiables sans changer la source du code.

Source / Exemple :


<html><head>
<title></title>
<script type="text/javascript">
<!--

	if (window.location.search != "") {
	longueur = window.location.search.length - 1;
	data = window.location.search.substr(1,longueur);
	donnees = data.split("&");
	urlvar = new Array();
	urlvarnum = new Array();
		for (var i=0; i < donnees.length; i++) {
		position = donnees[i].indexOf("=");
		variable = donnees[i].substr(0,position);
		pos = position + 1;
		valeur = decodeURI(donnees[i].substr(pos,donnees[i].length));
			while (valeur.search(/\+/) != -1)
			valeur = valeur.replace(/\+/," ");
		urlvar[variable] = valeur;
		urlvarnum[i] = valeur;
		}
		for (var w=0; w < urlvarnum.length; w++) {
			if (isNaN(parseInt(urlvarnum[w]))) {
			alert('entrez des valeurs numériques !');
			break;
			}
		}
	largeur = (isNaN(parseInt(urlvar['largeur'])))? 8 : eval(urlvar['largeur']);
	hauteur = (isNaN(parseInt(urlvar['hauteur'])))? 8 : eval(urlvar['hauteur']);
	cases = new Array(largeur);
	nbre_objets = (isNaN(parseInt(urlvar['nbre_objets'])))? 10 : eval(urlvar['nbre_objets']);
	depart = (isNaN(parseInt(urlvar['depart'])))? 20 : eval(urlvar['depart']);
	departbis = (isNaN(parseInt(urlvar['departbis'])))? 15 : eval(urlvar['departbis']);
	nbre = largeur*hauteur;
		for (var i=0; i < cases.length; i++)
		cases[i] = new Array(hauteur)
	
		if (nbre_objets > nbre) nbre_objets = nbre;
	}
	else {
	largeur = 8;
	hauteur = 8;
	cases = new Array(largeur);
	nbre_objets = 10;
	depart = 20;
	departbis = 15;
	nbre = largeur*hauteur;
		for (var i=0; i < cases.length; i++)
		cases[i] = new Array(hauteur);
	}
	
	function temps(t) {
		if (t == 0) {
		document.getElementById('timegame').innerHTML= "Fini !";
			if (controle < nbre_objets) {
for (var o = 0; o < nbre; o++)
			document.getElementsByName('ok')[o].disabled = true;
				if (! no) {
				no = true;
				alert('vous avez perdu au temps !\nobjets trouvés : '+ controle +'/'+ nbre_objets);
				}
			}
		}
		else {
		t--;
		tbis = t;
		document.getElementById('timegame').innerHTML= "Il vous reste : "+ tbis +" secondes !";
		setTimeout('temps(tbis)',1000);
		}
	}
	
	function start() {
	document.jeu.reset();
		for (var i=0; i < cases.length; i++) {
			for (var j=0; j < cases[i].length; j++) {
			cases[i][j] = false;
			}
		}
	k=0;
	    while (k < nbre_objets) {
                        i = Math.ceil(Math.random()*largeur)-1;
                        j = Math.ceil(Math.random()*hauteur)-1;
			if (! cases[i][j]) {
			cases[i][j] = true;
			k++;
			}
		}
	document.getElementById('timegame').innerHTML= "Il vous reste : "+ depart +" secondes !";
	setTimeout('temps(depart)',1000);
	controle = 0;
	x = 0;
	no = false;
	document.getElementById('nombre').innerHTML = controle +'/'+ nbre_objets;
	document.getElementById('coups').innerHTML = departbis;
		for (var o = 0; o < nbre; o++)
			document.getElementsByName('ok')[o].disabled = false;
	}

	function verif(ligne,colonne,nom) {
		document.getElementById(nom).disabled = true;
		x++;
		if (controle < nbre_objets) {
			if (cases[ligne][colonne] == true) {
			cases[ligne][colonne] ==false;
			controle++;
			document.getElementById('nombre').innerHTML = controle +'/'+ nbre_objets;
			}
		}
		else {
		document.getElementById('nombre').innerHTML = "Gagné !";
			for (var o = 0; o < nbre; o++)
				document.getElementsByName('ok')[o].disabled = true;
				
			if (! no) {
			no = true;
			alert('Vous avez trouvé tous les objets !');
			}
		}
		
		if (x < departbis) {
		document.getElementById('coups').innerHTML = (departbis - x);
		}
		else {
		document.getElementById('coups').innerHTML = "Aucun !";
			if (controle < nbre_objets) {
				for (var o = 0; o < nbre; o++)
					document.getElementsByName('ok')[o].disabled = true;
					
				if (! no) {
				no = true;
				alert('Vous n\'avez plus de coups restants !\nobjets trouvés : '+ controle +'/'+ nbre_objets);
				}
			}
		}
	}
	
//-->
</script>

</head><body>
<div id="rules"></div>
<br>
temps : <div id="timegame"></div><br>
nombre d'objets trouvés : <div id="nombre"></div><br>
coups restants : <div id="coups"></div>
<form name="jeu" id="jeu">
<table id="tableau">
</table>
</form>
<br><button type="button" onClick="start()">start</button><br>
personnalisation : <form name="formulaire" method="get">
largeur : <input name="largeur" type="text"><br>
hauteur : <input name="hauteur" type="text"><br>
nombre d'objets à trouver : <input name="nbre_objets" type="text"><br>
temps limite en secondes : <input name="depart" type="text"><br>
nombre de coups limités à : <input name="departbis" type="text"><br>
<button type="submit">changer !</button>
</form>
<script type="text/javascript">
<!--
document.formulaire.largeur.value = largeur;
document.formulaire.hauteur.value = hauteur;
document.formulaire.nbre_objets.value = nbre_objets;
document.formulaire.depart.value = depart;
document.formulaire.departbis.value = departbis;
numero = 0;
	for (var m=0; m < cases.length; m++) {
	var rangee = document.createElement("tr");
		if (navigator.appName.substr(0,3)!="Mic") document.getElementById("tableau").appendChild(rangee);
		else document.getElementById("tableau").firstChild.appendChild(rangee);
		
		for (var n=0; n < cases[m].length; n++) {
		var cellule = document.createElement("td");
		rangee.appendChild(cellule);
		cellule.innerHTML = "<input type='checkbox' disabled='true' id='n"+ numero +"' name='ok' 	onClick='verif("+ m +","+ n +",this.id)'></input>";
		numero++;
		}
	}
document.getElementById('rules').innerHTML="Voici un jeu que j'ai inventé : dès que vous appuyez sur le bouton start, vous avez "+ depart +" secondes et "+ departbis +" essais pour trouver le maximum d'objets cachés dans les "+ nbre +" cases. Pour chercher dans une case, cochez-la !";

//-->
</script>
</body></html>

Conclusion :


Ce script est compatible avec tous les navigateurs. Ce script utilise le DOM. Pas de bugs connus.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.