begin process at 2012 02 12 14:09:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > DÉMINEUR EN JAVASCRIPT

DÉMINEUR EN JAVASCRIPT


 Information sur la source

Note :
6 / 10 - par 2 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :démineur, jeu, minesweeper Niveau :Initié Date de création :21/09/2005 Vu :6 713

Auteur : Toolsweb

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Tout est dans le titre !!!

Source

  • < ============= game.html ==============>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  • <HTML><HEAD>
  • <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
  • <META content="MSHTML 6.00.2800.1515" name=GENERATOR><title>D&eacute;mineur</title></HEAD>
  • <BODY text=#000000>
  • <BR>
  • <BLOCKQUOTE>
  • <H1>D&eacute;mineur en JavaScript !</H1>
  • <H1>Bonne partie !</H1>
  • <P></P></BLOCKQUOTE></BODY></HTML>
  • <============== side.html ================>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  • <HTML><HEAD>
  • <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
  • <SCRIPT language=JavaScript>
  • <!--
  • /*
  • Script written in November 1996 by VBP
  • Contact: vbp@via.ecp.fr or http://www.via.ecp.fr/~vbp/
  • */
  • mark = false
  • function LoadGame(nbCols, nbRows, nbMines) {
  • cols = nbCols
  • rows = nbRows
  • mines = nbMines
  • document.init_form.columns.value = cols
  • document.init_form.rows.value = rows
  • document.init_form.mines.value = mines
  • unmarked_mines = mines
  • left = cols*rows - mines
  • stat = document.init_form.status
  • stat.value = 'Lancement...'
  • doc = parent.game.document
  • doc.close()
  • doc.open('text/html')
  • doc.bgColor = "#FDEAB9"
  • doc.write('<H1>Lancement, veuillez patienter...</H1>')
  • doc.close()
  • field = new MineField()
  • for (var k = 0; k < mines; k++) AddMine()
  • doc.open('text/html')
  • doc.bgColor = "#FFFFFF"
  • doc.write(Table())
  • doc.close()
  • RefreshStatus()
  • first = true
  • mark = false
  • HandsOff()
  • }
  • function Personalized(form) {
  • nbCols = form.columns.value
  • nbRows = form.rows.value
  • nbMines = form.mines.value
  • if ( nbMines > nbCols*nbRows/2) {
  • alert('Trop de mines')
  • }
  • else LoadGame(nbCols, nbRows, nbMines)
  • }
  • function format(n) {
  • if ( n < 10 )
  • var strg = '0'
  • else
  • var strg = ''
  • return strg + n
  • }
  • function Table() {
  • var strg = '<CENTER>\n\n<P><FORM NAME="mineField">\n\n</P>\n\n<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">\n'
  • for (var i = 0; i < rows ; i++) {
  • strg += '<TR>\n'
  • for (var j = 0; j < cols; j++)
  • strg += '<TD><INPUT TYPE="button" VALUE=" " NAME="' + format(i) + format(j) + '" onClick="parent.init.Check(this)"></TD>\n'
  • strg += '</TR>\n'
  • }
  • strg += '</TABLE>\n\n</FORM>\n'
  • return strg
  • }
  • function HandsOff() {
  • document.init_form.columns.focus()
  • }
  • function ChangeMark(box) {
  • mark = !mark
  • box.focus()
  • }
  • function MineField() {
  • for (var i = 0; i < rows; i++) {
  • this[i] = new Array(cols)
  • for (var j = 0; j < cols; j++) this[i][j] = false
  • }
  • return this
  • }
  • function AddMine() {
  • var i_r = Math.floor(Math.random()*rows)
  • var j_r = Math.floor(Math.random()*cols)
  • while ( field[i_r][j_r] ) {
  • i_r = Math.floor(Math.random()*rows)
  • j_r = Math.floor(Math.random()*cols)
  • }
  • field[i_r][j_r] = true
  • }
  • function RefreshStatus() {
  • if ( unmarked_mines == 1 || unmarked_mines == 0)
  • stat.value = unmarked_mines + ' Mines Restantes'
  • else
  • stat.value = unmarked_mines + ' Mines Restantes'
  • }
  • function Check(button) {
  • if ( mark ) {
  • if ( button.value == ' ' ) {
  • button.value = 'M'
  • unmarked_mines--
  • RefreshStatus()
  • }
  • else if ( button.value == 'M' ) {
  • button.value = ' '
  • unmarked_mines++
  • RefreshStatus()
  • }
  • }
  • else if ( button.value == ' ' ) {
  • var ci = eval(button.name.substring(0, 2))
  • var cj = eval(button.name.substring(2, 4))
  • if ( first ) {
  • if ( field[ci][cj] ) {
  • AddMine()
  • field[ci][cj] = false
  • }
  • first = false
  • }
  • if ( field[ci][cj] ) {
  • stat.value = 'Tu as perdu! :-('
  • ShowMines(ci, cj)
  • alert('BOOM! TU AS PERDU!')
  • }
  • else {
  • button.value = Count(ci, cj)
  • if ( button.value == 0 ) with (Math) {
  • for (var i = max(0, ci-1); i < min(rows, ci+2); i++)
  • for (var j = max(0, cj-1); j < min(cols, cj+2); j++)
  • Check(parent.game.document.mineField.elements[i*cols+j])
  • }
  • left--
  • if ( left == 0 ) {
  • stat.value = 'TU AS GAGNÉ! :-)'
  • ShowMines(-1, -1)
  • alert('BRAVO! TU AS GAGNÉ!')
  • }
  • }
  • }
  • mark = false
  • HandsOff()
  • }
  • function Count(ci, cj) {
  • var k = 0
  • with (Math) {
  • for (var i = max(0, ci-1); i < min(rows, ci+2); i++)
  • for (var j = max(0, cj-1); j < min(cols, cj+2); j++)
  • if ( field[i][j] ) k++
  • }
  • return k
  • }
  • function ShowMines(ci, cj) {
  • for (var i = 0; i < rows; i++)
  • for (var j = 0; j < cols; j++)
  • if ( field[i][j] )
  • parent.game.document.mineField.elements[i*cols+j].value = 'M'
  • else if ( parent.game.document.mineField.elements[i*cols+j].value == ' ' )
  • parent.game.document.mineField.elements[i*cols+j].value = ' '
  • else if ( parent.game.document.mineField.elements[i*cols+j].value == 'M' )
  • parent.game.document.mineField.elements[i*cols+j].value = 'E'
  • if ( ci != -1 )
  • parent.game.document.mineField.elements[ci*cols+cj].value = 'K'
  • }
  • // -->
  • </SCRIPT>
  • <META content="MSHTML 6.00.2800.1515" name=GENERATOR><title>D&eacute;mineur</title></HEAD>
  • <BODY>
  • <FORM name=init_form>
  • <CENTER>
  • <INPUT onfocus=ChangeMark(document.init_form.columns) size=15
  • value=Bienvenue ! name=status>
  • <BR>
  • <STRONG><FONT
  • size=+2>Choisissez:</FONT></STRONG>
  • <HR>
  • <INPUT onfocus=HandsOff() onclick="LoadGame(8, 4, 4)" type=button value=D&eacute;butant>
  • <HR>
  • <INPUT onfocus=HandsOff() onclick="LoadGame(14, 8, 20)" type=button value=Moyen>
  • <HR>
  • <INPUT onfocus=HandsOff() onclick="LoadGame(20, 12, 50)" type=button value=Expert>
  • <HR>
  • <TABLE border=0>
  • <TBODY>
  • <TR>
  • <TH colSpan=2><INPUT onfocus=HandsOff() onclick=Personalized(this.form) type=button value=Personalis&eacute;></TH>
  • <TR>
  • <TD>Colones&nbsp;:</TD>
  • <TD><INPUT maxLength=2 size=2 name=columns></TD></TR>
  • <TR>
  • <TD>Rang&eacute;e&nbsp;:</TD>
  • <TD><INPUT onfocus=ChangeMark(this) maxLength=2 size=2 name=rows></TD></TR>
  • <TR>
  • <TD>Mines&nbsp;:</TD>
  • <TD><INPUT onfocus=ChangeMark(this) maxLength=2 size=2
  • name=mines></TD></TR></TBODY></TABLE>
  • </CENTER></FORM></BODY></HTML>
  • <============= demineur.html ============>
  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
  • <HTML><HEAD><TITLE>Démineur</TITLE>
  • <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
  • <META content="MSHTML 6.00.2800.1515" name=GENERATOR></HEAD><FRAMESET
  • cols=140,*><FRAME name=init marginWidth=0 marginHeight=0
  • src="side.html" noresize><FRAME name=game
  • marginWidth=0 marginHeight=0
  • src="game.html" noresize></FRAMESET><noframes></noframes></HTML>
< ============= game.html ==============>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1515" name=GENERATOR><title>D&eacute;mineur</title></HEAD>
<BODY text=#000000>
<BR>
<BLOCKQUOTE>
  <H1>D&eacute;mineur en JavaScript !</H1>
  <H1>Bonne partie !</H1>
  <P></P></BLOCKQUOTE></BODY></HTML>


<============== side.html ================>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<SCRIPT language=JavaScript>

<!--
/*
   Script written in November 1996 by VBP
   Contact: vbp@via.ecp.fr or http://www.via.ecp.fr/~vbp/
*/

mark = false

function LoadGame(nbCols, nbRows, nbMines) {
	cols = nbCols
	rows = nbRows
	mines = nbMines
	document.init_form.columns.value = cols
	document.init_form.rows.value = rows
	document.init_form.mines.value = mines
	unmarked_mines = mines
	left = cols*rows - mines
	stat = document.init_form.status
	stat.value = 'Lancement...'
	doc = parent.game.document
	doc.close()
	doc.open('text/html')
	doc.bgColor = "#FDEAB9"
	doc.write('<H1>Lancement, veuillez patienter...</H1>')
	doc.close()
	field = new MineField()
	for (var k = 0; k < mines; k++) AddMine()
	doc.open('text/html')
	doc.bgColor = "#FFFFFF"
	doc.write(Table())
	doc.close()
	RefreshStatus()
	first = true
	mark = false
	HandsOff()
}

function Personalized(form) {
	nbCols = form.columns.value
	nbRows = form.rows.value
	nbMines = form.mines.value
	if ( nbMines > nbCols*nbRows/2) {
		alert('Trop de mines')
	}
	else LoadGame(nbCols, nbRows, nbMines)
}

function format(n) {
	if ( n < 10 )
		var strg = '0'
	else
		var strg = ''
	return strg + n
}

function Table() {
	var strg = '<CENTER>\n\n<P><FORM NAME="mineField">\n\n</P>\n\n<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">\n'
	for (var i = 0; i < rows ; i++) {
		strg += '<TR>\n'
		for (var j = 0; j < cols; j++)
			strg += '<TD><INPUT TYPE="button" VALUE="    " NAME="' + format(i) + format(j) + '" onClick="parent.init.Check(this)"></TD>\n'
		strg += '</TR>\n'
	}
	strg += '</TABLE>\n\n</FORM>\n'
	return strg
}

function HandsOff() {
	document.init_form.columns.focus()
}

function ChangeMark(box) {
	mark = !mark
	box.focus()
}

function MineField() {
	for (var i = 0; i < rows; i++) {
		this[i] = new Array(cols)
		for (var j = 0; j < cols; j++) this[i][j] = false
	}
	return this
}	

function AddMine() {
	var i_r = Math.floor(Math.random()*rows)
	var j_r = Math.floor(Math.random()*cols)
	while ( field[i_r][j_r] ) {
		i_r = Math.floor(Math.random()*rows)
		j_r = Math.floor(Math.random()*cols)
	}
	field[i_r][j_r] = true
}

function RefreshStatus() {
	if ( unmarked_mines == 1 || unmarked_mines == 0)
		stat.value = unmarked_mines + ' Mines Restantes'
	else
		stat.value = unmarked_mines + ' Mines Restantes'
}

function Check(button) {
	if ( mark ) {
		if ( button.value == '    ' ) {
			button.value = 'M'
			unmarked_mines--
			RefreshStatus()
		}
		else if ( button.value == 'M' ) {
			button.value = '    '
			unmarked_mines++
			RefreshStatus()
		}
	}
	else if ( button.value == '    ' ) {
		var ci = eval(button.name.substring(0, 2))
		var cj = eval(button.name.substring(2, 4))
		if ( first ) {
			if ( field[ci][cj] ) {
				AddMine()
				field[ci][cj] = false
			}
			first = false
		}
		if ( field[ci][cj] ) {
			stat.value = 'Tu as perdu! :-('
			ShowMines(ci, cj)
			alert('BOOM! TU AS PERDU!')
		}
		else {
			button.value = Count(ci, cj)
			if ( button.value == 0 ) with (Math) {
				for (var i = max(0, ci-1); i < min(rows, ci+2); i++)
					for (var j = max(0, cj-1); j < min(cols, cj+2); j++)
						Check(parent.game.document.mineField.elements[i*cols+j])
			}
			left--
			if ( left == 0 ) {
				stat.value = 'TU AS GAGNÉ! :-)'
				ShowMines(-1, -1)
				alert('BRAVO! TU AS GAGNÉ!')
			}
		}
	}
	mark = false
	HandsOff()
}

function Count(ci, cj) {
	var k = 0
	with (Math) {
	for (var i = max(0, ci-1); i < min(rows, ci+2); i++)
		for (var j = max(0, cj-1); j < min(cols, cj+2); j++)
			if ( field[i][j] ) k++
	}
	return k
}

function ShowMines(ci, cj) {
	for (var i = 0; i < rows; i++)
		for (var j = 0; j < cols; j++)
			if ( field[i][j] )
				parent.game.document.mineField.elements[i*cols+j].value = 'M'
			else if ( parent.game.document.mineField.elements[i*cols+j].value == '    ' )
				parent.game.document.mineField.elements[i*cols+j].value = '   '
				else if ( parent.game.document.mineField.elements[i*cols+j].value == 'M' )
					parent.game.document.mineField.elements[i*cols+j].value = 'E'
	if ( ci != -1 )
		parent.game.document.mineField.elements[ci*cols+cj].value = 'K'
}

// -->

</SCRIPT>

<META content="MSHTML 6.00.2800.1515" name=GENERATOR><title>D&eacute;mineur</title></HEAD>
<BODY>
<FORM name=init_form>
<CENTER>
    <INPUT onfocus=ChangeMark(document.init_form.columns) size=15 
value=Bienvenue ! name=status>
    <BR>
    <STRONG><FONT 
size=+2>Choisissez:</FONT></STRONG> 
    <HR>
    <INPUT onfocus=HandsOff() onclick="LoadGame(8, 4, 4)" type=button value=D&eacute;butant>
<HR>
    <INPUT onfocus=HandsOff() onclick="LoadGame(14, 8, 20)" type=button value=Moyen>
<HR>
 <INPUT onfocus=HandsOff() onclick="LoadGame(20, 12, 50)" type=button value=Expert>
<HR>
 
<TABLE border=0>
  <TBODY>
  <TR>
    <TH colSpan=2><INPUT onfocus=HandsOff() onclick=Personalized(this.form) type=button value=Personalis&eacute;></TH>
  <TR>
          <TD>Colones&nbsp;:</TD>
    <TD><INPUT maxLength=2 size=2 name=columns></TD></TR>
  <TR>
          <TD>Rang&eacute;e&nbsp;:</TD>
    <TD><INPUT onfocus=ChangeMark(this) maxLength=2 size=2 name=rows></TD></TR>
  <TR>
    <TD>Mines&nbsp;:</TD>
    <TD><INPUT onfocus=ChangeMark(this) maxLength=2 size=2 
  name=mines></TD></TR></TBODY></TABLE>
</CENTER></FORM></BODY></HTML>


<============= demineur.html ============>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">

<HTML><HEAD><TITLE>Démineur</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1515" name=GENERATOR></HEAD><FRAMESET 
cols=140,*><FRAME name=init marginWidth=0 marginHeight=0 
src="side.html" noresize><FRAME name=game 
marginWidth=0 marginHeight=0 
src="game.html" noresize></FRAMESET><noframes></noframes></HTML>



 Sources du même auteur

MENU QUI APPARAÎT ET DISPARAÎT AU CLICK
REDIRIGER LE VISITEUR SELON SON SYSTÈME D'EXPLOITATION

 Sources de la même categorie

Source avec Zip Source avec une capture AVVDA : A VERY VERY DARK AFFAIRES DEMO par Cyreb
Source avec Zip Source avec une capture 3D AVEC WEBGL + MESH par Hakumbaya
SUDOKU RESOLVER (BRUTEFORECE, RÉCURSION) par amezghal
Source avec Zip MACHINE À SOUS par loicseg
Source avec Zip DOODLE JUMP EN JAVASCRIPT par Toshy62

 Sources en rapport avec celle ci

Source avec Zip MACHINE À SOUS par loicseg
Source avec Zip JEU DE TAQUIN par yann078
Source avec Zip LE CÉLÈBRE JEU SNACK par lesnouesremy
Source avec Zip Source avec une capture BILLARD EN JAVASCRIPT C'EST POSSIBLE ! par amrounix
Source avec Zip DEMINEUR par coucou747

Commentaires et avis

Commentaire de sebmafate le 21/09/2005 09:15:46 administrateur CS

ca sert à rien de tout mettre dans la zone source... propose plutot un zip.

Commentaire de logiciels_thiery le 21/09/2005 10:59:59

Ouais, car sur le coup, j'avais pas bien compris qu'il y avait plusieurs fichiers !! Sinon ça peut aller mais ce serait bien avec des images et pourquoi pas une petite musique de fond !

Commentaire de peter1789 le 26/09/2005 12:48:38

Tu pourrais utiliser le DOM pour générer ton démineur et améliorer le désign avec un tableau par exemple ! :)

Commentaire de coucou747 le 27/09/2005 18:39:17 administrateur CS

salut

Une orientation OO serait un plus pour pouvoir changer plus facilement le nombre de colones et de lignes, mettre plusieurs jeux sur une même page ou autres choses plus ou moins jolies... C'est surtout la claretée qui y gagnerait !

sinon, bah il manque des points virgules, mais ça a l'air pas trop mauvais...

étant donné la fonction show mines, je crois que lorsque tu cliques sur une case qui ne touche rien, alors tu ne va pas détecter toutes les cases autour, alors que c'est super marrant de faire une fonction récursive pour ça !

j'ai fait un démineur, tu peux aller voir pour le dèrnier point...

Commentaire de crazypsykogizmo le 09/11/2005 10:04:58

Il n'y a pas de fichier zip ???

Commentaire de waxor le 25/03/2006 15:48:37

dla merde

Commentaire de coucou747 le 25/03/2006 16:13:41 administrateur CS

ça c'est constructif... ça mérite la suppression...

Commentaire de thomas du 79 le 07/04/2006 15:40:37

Salut , cool votre démineur mais il des érreurs sur la page donc impossible que le jeu se lance !
A+

Commentaire de stfou le 01/04/2007 15:12:00

Met un zip, plutot que de mettre juste le code, en plus il y a deux fichiers, met toi à la place du visiteur : je vois le code, je créer un fichier quelque part, je copie sur la page, je le colle dans mon fichier. je créer un deuxième fichier, je copie, je colle dans mon deuxième fichier, je l'ouvre et là miracle, (pas pour tout le monde, mais prend le cas de THOMAS DU 79 par exemple) ça ne marche pas. donc ==> humeur : j'ai la haine. met un zip, assure-toi que ton script est facile d'accès. Du coup je n'ai pas testé ton code.

Stfou

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

jeu de nim [ par matcheu ] salu est ce que quelqun sait programmé le jeu de nim en perl Boutons radios? [ par dufour137 ] bonjour tout le monde, j'aimerais svoir comment faire pour tester une valeure dans une page htm sur un bouton radio pour ouvrir une page internet selo PRoblème en javascript, jeu de pendu [ par Chihiro ] Voilà, j'ai un gros problème dans mon script qui ne marche pas, parce que je suis vraiment nulle en programmation... Est ce que quelqu'un pourrait y j Tester Labyrinthus v2.8 améliorer mon jeu [ par yanndroniou ] Yann Droniou<img src=/imgs2/smile_approve.gif border=0 align="absmiddle" Stratégie de jeu [ par ralota ] Je souhaite créer un jeu en ligne utilisant javascript et php comme langages. Ce jeu consiste à déplacer des poins tout comme l'échec mais il s'agit d Instit en détresse besoin d'aide - javascript [ par jojosse25 ] AideJ'essaie de fabriquer un jeu pour des enfants de l'école.Deux frames : à gauche la page jeu ( image mappée )à droite la réponse avec commentaire ( jeu de memoire [ par gladysxxl ] bonjour,petit souci avec le jeu de memoire ( http://www.javascriptfr.com/code.aspx?ID=22785 ) qui fonctionne tres bien en local mais lorsque je me le Enregistrer un formulaire sur le hd [ par Ouk18 ] J'ai fait ce formulaire&lt;htm&gt;&lt;head&gt; &lt;title&gt;Questionaire&lt;/title&gt;&lt;/head&gt; &lt;Body&gt; &lt;center&gt;&lt;u&gt;Lancer le jeu Création d'un petit jeu labyrinthe [ par Sibelle07 ] Salut j'aimerait cr&#233;er un labyrinthe en javascript , avec une image comme personnage mais ce personnage je voudrait que sa soit crash bandicoot , le jeu des paires [ par fabiennerey ] Fab Bonjour Je tiens d'abord &#224; vous f&#233;liciter pour votre site. Je poss&#232;de un macintosh et je voudrais savoir s'il existe une version ma


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,746 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales