logo

SYTEME DE DESIGN

SUDOKU

HTML

copy
<h3><span>SUDOKU</span><img src="html/img/sudoku/titre.png"/></h3>
	<div id="grille">
		<script>grille();</script>
	</div>
  <nav id="menu_sudoku"><select id="mode">
	  <option value="1">Facile</option>
	  <option value="2">Moyen</option>
	  <option value="3">Difficile</option>
	  <option value="4">Expert</option>
	</select>
	  <a href="javascript:grille_de_jeux();" id="new" title="Lancer une nouvelle grille de sudoku">NEW</a>
	  <a href="javascript:enter();" id="enter" title="Entrer une grille de sudoku">ENTER</a>
	  <a href="javascript:solution();" id="answer" title="Robot : étude de la solution" onMouseOver="btn_solution(2);" onMouseOut="btn_solution(1);"><span>Solution</span><img id="img_solt" src="html/img/sudoku/solut1.jpg" width="20" height="20" alt="Robot de solution"/></a>
	  <a href="https://fr.wikipedia.org/wiki/Sudoku" target="_blank" id="data" title="Informations complémentaire" onMouseOver="btn_info(2);" onMouseOut="btn_info(1);"><span>Information</span><img id="img_info" src="html/img/sudoku/aide1.jpg" width="20" height="20" alt="Informations"/></a>
	</nav>

CSS

copy
#page-design {
	position: relative;
	width: 100%;
	height: 100%;
	background-image: url("../img/sudoku/sous-les-bambous.png");
	background-repeat: no-repeat;
}

#page-design::before {
	position: absolute;
	z-index: -1;
	content: "";
	width: 100%;
	height: 120%;
	background-image:url("../img/sudoku/personnage.jpg");
	background-repeat: no-repeat;
	background-position: 115% 90%;
	background-size: 30%;
}

#page-design h3 {
	position: relative;
	width: 100%;
	text-align: center;
	margin-bottom: 1rem!important;
	margin-left: auto;
	margin-right: auto;
	padding-top: 1rem;
}

#page-design h3 span, #menu_sudoku span {
	display: none;
}

#grille {
	position: relative;
	width: 300px;
	height: 300px;
	margin: 0 auto;
}

#grille_img, #grille_slc {
	position: relative;
	z-index: 0;
	width: 100%;
	height: 100%;
	display: grid;
	grid-template-columns: repeat(9, 1fr);
	grid-template-rows: repeat(9, 1fr);
}

#grille_slc {
	position: absolute;
	z-index: -1;
	left: 0;
	top: 0;
}

#grille_img div {
	position: relative;
	width: 100%;
	height: 100%;
	border: 1px dashed #ccc;
	background-color: #fff;
}

#grille_slc div {
	position:relative;
	visibility: hidden;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(0,0,0,0);
	background-color: transparent;
}

#grille_slc select {
	display: block;
	width: 100%;
	height: 100%;
	border: none;
	background-color: transparent;
}

#grille_img #item_img11, #grille_img #item_img21, #grille_img #item_img31,
#grille_img #item_img41, #grille_img #item_img51, #grille_img #item_img61,
#grille_img #item_img71, #grille_img #item_img81, #grille_img #item_img91 {
	border-left: 1px solid #000;
}

#grille_img div:nth-child(3n) {
	border-right: 1px solid #000;
}

#grille_img #item_img11, #grille_img #item_img12, #grille_img #item_img13,
#grille_img #item_img14, #grille_img #item_img15, #grille_img #item_img16,
#grille_img #item_img17, #grille_img #item_img18, #grille_img #item_img19,
	
#grille_img #item_img41, #grille_img #item_img42, #grille_img #item_img43,
#grille_img #item_img44, #grille_img #item_img45, #grille_img #item_img46,
#grille_img #item_img47, #grille_img #item_img48, #grille_img #item_img49,	
	
#grille_img #item_img71, #grille_img #item_img72, #grille_img #item_img73,
#grille_img #item_img74, #grille_img #item_img75, #grille_img #item_img76,
#grille_img #item_img77, #grille_img #item_img78, #grille_img #item_img79 {	
	
	border-top: 1px solid #000;
}

#grille_img #item_img91, #grille_img #item_img92, #grille_img #item_img93,
#grille_img #item_img94, #grille_img #item_img95, #grille_img #item_img96,
#grille_img #item_img97, #grille_img #item_img98, #grille_img #item_img99 {	
	
	border-bottom: 1px solid #000;
}

#grille_img div img {
	width: 100%;
	height: 100%;
}

#grille_img div:hover {
	background-color:#fefec1;
}

#menu_sudoku {
	position: relative;
	width: 300px;
	margin: 0 auto;
	text-align: center;
	background-color: transparent;
	display: flex;
	flex-direction: row;
}

#menu_sudoku #new {
	position: relative;
	width: 62px;
	height: 25px;
	background-image: url("../img/sudoku/nouv1.jpg");
	background-repeat: no-repeat;
	background-position: 0 3px;
	margin-left: 0.25rem;
	margin-bottom: 0.1rem;
	padding-top: 0.35rem;
	padding-left: 1rem;
	color: #000;
	font-size: 10px;
}

#menu_sudoku #enter {
	position: relative;
	width: 62px;
	height: 25px;
	background-image: url("../img/sudoku/nouv1.jpg");
	background-repeat: no-repeat;
	background-position: 0 3px;
	margin-left: 0.25rem;
	margin-bottom: 0.1rem;
	padding-top: 0.35rem;
	padding-left: 1.25rem;
	color: #000;
	font-size: 10px;
}

#menu_sudoku #new:hover, #menu_sudoku #enter:hover {
	background-image: url("../img/sudoku/nouv2.jpg");
	color: #fefec1;
}

#menu_sudoku #answer, #menu_sudoku #data {
	margin-left: 0.25rem;
}



@media (min-width: 768px) {
	
	#page-design h3 {
		width: 40%;
	}
	
	#page-design::before {
		height: 90%;
		background-image:url("../img/sudoku/personnage.jpg");
		background-repeat: no-repeat;
		background-position: bottom right;
		background-size: 20%;
	}	
	
	
}

JAVASCRIPT

copy
var grille_jeux = new Array(
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,0,0,0]
);

// ________________________________________________________________________________________________________________
// *****************************************	LISTING GRILLES DE JEUX		***************************************

var grille_ordi = new Array();

// NIVEAU : FACILE 	)|---------------------------------------------------------------------

grille_ordi[10000] = new Array(
	[0,0,0,0,0,0,0,0,0,0],
	[0,0,0,0,0,0,0,3,2,5],
	[0,2,1,5,6,0,0,0,0,0],
	[0,8,7,3,9,2,5,4,1,0],
	[0,0,2,0,4,0,0,0,0,1],
	[0,3,8,9,2,1,6,5,7,4],
	[0,1,6,0,5,0,9,2,3,0],
	[0,0,3,8,0,0,4,1,0,2],
	[0,6,0,0,3,0,1,8,0,7],
	[0,7,0,1,8,0,2,9,5,3]	
);

// ________________________________________________________________________________________________________________
// ****************************************	  FONCTIONS DE CONTROLE   *********************************************

var enter_grid = true; // Si l'on n'entre pas de grille mode de jeux type


function grille_de_jeux() { // mise en place d'une grile de jeu
	vider();
	
	enter_grid = false;
	
	if (enter_grid === false) {
	
	var min = 0; var max = 6;
	var a = Math.trunc(Math.random() * (max - min) + min); // sélection aléatoir des grilles;
	
	var mode = document.getElementById("mode").value;

	var nb = 10000 * parseInt(mode) + a; //var nb = 10000 * parseInt(mode) + a;
	
	if (Array.isArray(grille_ordi[nb])) { // création grille
	
	grille_jeux = grille_ordi[nb];
		
	for(var y = 1; y < 10; y++) {
		for(var x = 1; x < 10; x++) {
			
			document.getElementById("case" + (y*10+x)).src = "html/img/sudoku/vide.png?s=" + Date.now();
			if (grille_jeux[y][x] > 0 && grille_jeux[y][x] < 10) {
				document.getElementById("case" + (y*10+x)).src = "html/img/sudoku/ordi" + grille_jeux[y][x] + ".png?s=" + Date.now();
			}
			
		}
	}		
		
	} // fin création grille
		
	} // Si jeux type
	
}

function cacher_slc(n) { // Cacher le select et placer la valeur sur la grille
	
	var ch = document.getElementById("slc" + n).value;
	var y = Math.trunc(n/10);
	var x = n - (y*10);	
	
	document.getElementById("item_slc" + n).style = "visibility: hidden;";

	if (enter_grid === false) {
		if (grille_jeux[y][x] == 0) {
		document.getElementById("case" + n).src = "html/img/sudoku/jeux" + ch + ".png?s=" + Date.now();
		grille_jeux[y][x] = ch; // je réjouter le chiffre dans l'array
		}
	} else {
		document.getElementById("case" + n).src = "html/img/sudoku/ordi" + ch + ".png?s=" + Date.now();
		grille_jeux[y][x] = ch; // je réjouter le chiffre dans l'array		
	}
	
	document.getElementById("grille_slc").style = "z-index: -1;";
	
}

function action(n) { // Ouvrir le select de chiffre
	
	var y = Math.trunc(n/10);
	var x = n - (y*10);		

	if (enter_grid === false) {
		if (grille_jeux[y][x] == 0) {
			document.getElementById("grille_slc").style = "z-index: 1;";
			document.getElementById("slc" + n).options[0].selected = true;
			document.getElementById("item_slc" + n).style = "visibility: visible;";
		}
	} else {
			document.getElementById("grille_slc").style = "z-index: 1;";
			document.getElementById("slc" + n).options[0].selected = true;
			document.getElementById("item_slc" + n).style = "visibility: visible;";		
	}
	
}

function enter() {
	
	if (control_vide() == 0) {
	vider();	
	enter_grid = true;
	} else { // si grille entrer

		if (enter_grid === true) { // Si la grille est en mode entrer
			
			if(confirm("Une grille existe !\n Voullez-vous passer en mode Joueur ?\n Si non entrer une nouvelle grille ?")) {
			  enter_grid = false; // passer en mode joueur
			} else { // vider et entrer une nouvelle grille
				vider();	
				enter_grid = true;
			}
			
		} else { // vider et entrer une nouvelle grille
			vider();	
			enter_grid = true;			
		}
		
	}

}



function vider() {
	
	//grille_possibles = [];
	
	grille_jeux = new Array(
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0],
		[0,0,0,0,0,0,0,0,0,0]
	);
	
	
	for(var y = 1; y < 10; y++) {
		for(var x = 1; x < 10; x++) {		
			document.getElementById("case" + (y*10+x)).src = "html/img/sudoku/vide.png?s=" + Date.now();	
		}
	}
	
}

// ---

// ________________________________________________________________________________________________________________
// ***********************************************	MISE EN FORME	***********************************************

function grille() {
	
	var grille = "";
	
	grille = "
"; for (var y = 1; y < 10; y++) { for (var x = 1; x < 10; x++) { grille += "
"; } } grille += "
"; grille += "
"; for (var y = 1; y < 10; y++) { for (var x = 1; x < 10; x++) { grille += "
"; } } grille += "
"; document.write(grille); } function btn_solution(p) { if (p == 1) { document.getElementById("img_solt").src = "html/img/sudoku/solut1.jpg"; } else { document.getElementById("img_solt").src = "html/img/sudoku/solut2.jpg"; } } function btn_info(p) { if (p == 1) { document.getElementById("img_info").src = "html/img/sudoku/aide1.jpg"; } else { document.getElementById("img_info").src = "html/img/sudoku/aide2.jpg"; } } // --- // ________________________________________________________________________________________________________________ // ***************************************** SOLUTION DE LA GRILLE *************************************** var chiffres = new Array(1,2,3,4,5,6,7,8,9); var pos_frames = new Array( [0,0,0,0,0,0,0,0,0,0], [0,11,12,13,21,22,23,31,32,33], [0,14,15,16,24,25,26,34,35,36], [0,17,18,19,27,28,29,37,38,39], [0,41,42,43,51,52,53,61,62,63], [0,44,45,46,54,55,56,64,65,66], [0,47,48,49,57,58,59,67,68,69], [0,71,72,73,81,82,83,91,92,93], [0,74,75,76,84,85,86,94,95,96], [0,77,78,79,87,88,89,97,98,99], ); var grille_line = new Array(); var grille_column = new Array(); var grille_frame = new Array(); function solution() { if (control_vide() == 0) { message_solution(1); } else { // Si la grille n'est pas vide for(var b=0; b < 15; b++){ reading(); var grille_possibles = new Array(); for (var y = 1; y < 10; y++) { grille_possibles[y] = new Array(); for (var x = 1; x < 10; x++) { var p = new Array(); var f = Math.trunc(pos_frames[y][x]/10); for(var c = 0; c < 9; c++) { var ts = chiffres[c]; var lg = true; var cl = true; var fm = true; if (grille_line[y].indexOf(ts) > -1 || grille_line[y].indexOf(ts.toString()) > -1) { lg = false; } if (grille_column[x].indexOf(ts) > -1 || grille_column[x].indexOf(ts.toString()) > -1) { cl = false; } if (grille_frame[f].indexOf(ts) > -1 || grille_frame[f].indexOf(ts.toString()) > -1) { fm = false; } if (lg && cl && fm && grille_jeux[y][x] == 0) { p.push(ts); } } grille_possibles[y][x] = new Array(); if (x == 6 && y == 6) { //alert(p+" --- "+grille_jeux[y1][x] + ", "+grille_jeux[y2][x]); } if (p.length > 0) { grille_possibles[y][x] = p; /* ----------------------------------------------------------- */ if (p.length == 1) { // Si une seule possibilité var n = y * 10 + x; grille_jeux[y][x] = p[0]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[0] + ".png?s=" + Date.now(); } /* ----------------------------------------------------------- */ reading(); if (p.length > 1 && p.length < 4 && grille_jeux[y][x] == 0) { // Si deux à trois possibilités if (x == 1 || x == 4 || x == 7) { var x1 = x+1; var x2 = x+2; } if (x == 2 || x == 5 || x == 8) { var x1 = x-1; var x2 = x+1; } if (x == 3 || x == 6 || x == 9) { var x1 = x-2; var x2 = x-1; } if (y == 1 || y == 4 || y == 7) { var y1 = y+1; var y2 = y+2; } if (y == 2 || y == 5 || y == 8) { var y1 = y-1; var y2 = y+1; } if (y == 3 || y == 6 || y == 9) { var y1 = y-2; var y2 = y-1; } // Controle croisé sur les quatres côtés // valeur 1 if ( (grille_line[y1].indexOf(p[0]) > -1 || grille_line[y1].indexOf(p[0].toString()) > -1) && (grille_line[y2].indexOf(p[0]) > -1 || grille_line[y2].indexOf(p[0].toString()) > -1) && (grille_column[x1].indexOf(p[0]) > -1 || grille_column[x1].indexOf(p[0].toString()) > -1) && (grille_column[x2].indexOf(p[0]) > -1 || grille_column[x2].indexOf(p[0].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[0]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[0] + ".png?s=" + Date.now(); } // valeur 2 if ( (grille_line[y1].indexOf(p[1]) > -1 || grille_line[y1].indexOf(p[1].toString()) > -1) && (grille_line[y2].indexOf(p[1]) > -1 || grille_line[y2].indexOf(p[1].toString()) > -1) && (grille_column[x1].indexOf(p[1]) > -1 || grille_column[x1].indexOf(p[1].toString()) > -1) && (grille_column[x2].indexOf(p[1]) > -1 || grille_column[x2].indexOf(p[1].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[1]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[1] + ".png?s=" + Date.now(); } // Controle croisé sur deux côté et les cases accolés pleines // Valeur 1 if ( grille_jeux[y1][x] > 0 && grille_jeux[y2][x] > 0 && grille_jeux[y1][x] !== p[0] && grille_jeux[y2][x] !== p[0] && grille_jeux[y][x1] !== p[0] && grille_jeux[y][x2] !== p[0] && (grille_column[x1].indexOf(p[0]) > -1 || grille_column[x1].indexOf(p[0].toString()) > -1) && (grille_column[x2].indexOf(p[0]) > -1 || grille_column[x2].indexOf(p[0].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[0]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[0] + ".png?s=" + Date.now(); } if ( grille_jeux[y][x1] > 0 && grille_jeux[y][x2] > 0 && grille_jeux[y1][x] !== p[0] && grille_jeux[y2][x] !== p[0] && grille_jeux[y][x1] !== p[0] && grille_jeux[y][x2] !== p[0] && (grille_line[y1].indexOf(p[0]) > -1 || grille_line[y1].indexOf(p[0].toString()) > -1) && (grille_line[y2].indexOf(p[0]) > -1 || grille_line[y2].indexOf(p[0].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[0]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[0] + ".png?s=" + Date.now(); } // Valeur 2 if ( grille_jeux[y1][x] > 0 && grille_jeux[y2][x] > 0 && grille_jeux[y1][x] !== p[1] && grille_jeux[y2][x] !== p[1] && grille_jeux[y][x1] !== p[1] && grille_jeux[y][x2] !== p[1] && (grille_column[x1].indexOf(p[1]) > -1 || grille_column[x1].indexOf(p[1].toString()) > -1) && (grille_column[x2].indexOf(p[1]) > -1 || grille_column[x2].indexOf(p[1].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[1]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[1] + ".png?s=" + Date.now(); } if ( grille_jeux[y][x1] > 0 && grille_jeux[y][x2] > 0 && grille_jeux[y1][x] !== p[1] && grille_jeux[y2][x] !== p[1] && grille_jeux[y][x1] !== p[1] && grille_jeux[y][x2] !== p[1] && (grille_line[y1].indexOf(p[1]) > -1 || grille_line[y1].indexOf(p[1].toString()) > -1) && (grille_line[y2].indexOf(p[1]) > -1 || grille_line[y2].indexOf(p[1].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[1]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[1] + ".png?s=" + Date.now(); } // Valeur 3 if (p[2] > 0) { if ( grille_jeux[y1][x] > 0 && grille_jeux[y2][x] > 0 && grille_jeux[y1][x] !== p[2] && grille_jeux[y2][x] !== p[2] && grille_jeux[y][x1] !== p[2] && grille_jeux[y][x2] !== p[2] && (grille_column[x1].indexOf(p[2]) > -1 || grille_column[x1].indexOf(p[2].toString()) > -1) && (grille_column[x2].indexOf(p[2]) > -1 || grille_column[x2].indexOf(p[2].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[2]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[2] + ".png?s=" + Date.now(); } if ( grille_jeux[y][x1] > 0 && grille_jeux[y][x2] > 0 && grille_jeux[y1][x] !== p[2] && grille_jeux[y2][x] !== p[2] && grille_jeux[y][x1] !== p[2] && grille_jeux[y][x2] !== p[2] && (grille_line[y1].indexOf(p[2]) > -1 || grille_line[y1].indexOf(p[2].toString()) > -1) && (grille_line[y2].indexOf(p[2]) > -1 || grille_line[y2].indexOf(p[2].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[2]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[2] + ".png?s=" + Date.now(); } } } /* ----------------------------------------------------------- */ reading(); if (grille_jeux[y][x] == 0) { // Si plus de trois possibilités if (x == 1 || x == 4 || x == 7) { var x1 = x+1; var x2 = x+2; } if (x == 2 || x == 5 || x == 8) { var x1 = x-1; var x2 = x+1; } if (x == 3 || x == 6 || x == 9) { var x1 = x-2; var x2 = x-1; } if (y == 1 || y == 4 || y == 7) { var y1 = y+1; var y2 = y+2; } if (y == 2 || y == 5 || y == 8) { var y1 = y-1; var y2 = y+1; } if (y == 3 || y == 6 || y == 9) { var y1 = y-2; var y2 = y-1; } for(var pt = 0; pt < p.length; pt++) { // Si valeur dans la ligne 2 colonne 1 et 2 et case en y1,x > 0 if ( grille_jeux[y1][x] > 0 && grille_jeux[y2][x] == 0 && grille_jeux[y1][x] !== p[pt] && (grille_line[y2].indexOf(p[pt]) > -1 || grille_line[y2].indexOf(p[pt].toString()) > -1) && (grille_column[x1].indexOf(p[pt]) > -1 || grille_column[x1].indexOf(p[pt].toString()) > -1) && (grille_column[x2].indexOf(p[pt]) > -1 || grille_column[x2].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } // Si valeur dans la ligne 1 colonne 1 et 2 et case en y2,x > 0 if ( grille_jeux[y1][x] == 0 && grille_jeux[y2][x] > 0 && grille_jeux[y2][x] !== p[pt] && (grille_line[y1].indexOf(p[pt]) > -1 || grille_line[y1].indexOf(p[pt].toString()) > -1) && (grille_column[x1].indexOf(p[pt]) > -1 || grille_column[x1].indexOf(p[pt].toString()) > -1) && (grille_column[x2].indexOf(p[pt]) > -1 || grille_column[x2].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } // Si valeur dans la colonne 1 ligne 1 et 2 et case en y,x1 > 0 if ( grille_jeux[y][x1] > 0 && grille_jeux[y][x2] == 0 && grille_jeux[y][x1] !== p[pt] && (grille_column[x2].indexOf(p[pt]) > -1 || grille_column[x2].indexOf(p[pt].toString()) > -1) && (grille_line[y1].indexOf(p[pt]) > -1 || grille_line[y1].indexOf(p[pt].toString()) > -1) && (grille_line[y2].indexOf(p[pt]) > -1 || grille_line[y2].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } // Si valeur dans la colonne 2 ligne 1 et 2 et case en y,x2 > 0 if ( grille_jeux[y][x1] == 0 && grille_jeux[y][x2] > 0 && grille_jeux[y][x2] !== p[pt] && (grille_column[x1].indexOf(p[pt]) > -1 || grille_column[x1].indexOf(p[pt].toString()) > -1) && (grille_line[y1].indexOf(p[pt]) > -1 || grille_line[y1].indexOf(p[pt].toString()) > -1) && (grille_line[y2].indexOf(p[pt]) > -1 || grille_line[y2].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } /* // Si case pleine en colonne x et x1 et valeur présente colonne x2 if ( grille_jeux[y1][x] > 0 && grille_jeux[y2][x] > 0 && grille_jeux[y][x1] > 0 && grille_jeux[y1][x1] > 0 && grille_jeux[y2][x1] > 0 && (grille_column[x2].indexOf(p[pt]) > -1 || grille_column[x2].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } // Si case pleine en colonne x et x2 et valeur présente colonne x1 if ( grille_jeux[y1][x] > 0 && grille_jeux[y2][x] > 0 && grille_jeux[y][x2] > 0 && grille_jeux[y1][x2] > 0 && grille_jeux[y2][x2] > 0 && (grille_column[x1].indexOf(p[pt]) > -1 || grille_column[x1].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } // Si case pleine en colonne y et y1 et valeur présente colonne y2 if ( grille_jeux[y][x1] > 0 && grille_jeux[y][x2] > 0 && grille_jeux[y1][x] > 0 && grille_jeux[y1][x1] > 0 && grille_jeux[y1][x2] > 0 && (grille_column[y2].indexOf(p[pt]) > -1 || grille_column[y2].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } // Si case pleine en colonne y et y2 et valeur présente colonne y1 if ( grille_jeux[y][x1] > 0 && grille_jeux[y][x2] > 0 && grille_jeux[y2][x] > 0 && grille_jeux[y2][x1] > 0 && grille_jeux[y2][x2] > 0 && (grille_column[y1].indexOf(p[pt]) > -1 || grille_column[y1].indexOf(p[pt].toString()) > -1) ) { var n = y * 10 + x; grille_jeux[y][x] = p[pt]; document.getElementById("case" + n).src = "html/img/sudoku/jeux" + p[pt] + ".png?s=" + Date.now(); } */ } // fin loop : boucle pt } } else { grille_possibles[y][x] = 0; } } } } // loop solution en boucle 10x } // end if } function control_vide() { var t = 0; for(var y = 1; y < 10; y++) { for(var x = 1; x < 10; x++) { if (grille_jeux[y][x] > 0) { t++; } } } return t; } function reading() { grille_line = new Array(); grille_column = new Array(); grille_frame = new Array(); grille_line = grille_jeux; for (var x = 1; x < 10; x++) { grille_column[x] = new Array(); for (var y = 1; y < 10; y++) { grille_column[x][y] = grille_jeux[y][x]; } } for (var y = 1; y < 10; y++) { grille_frame[y] = new Array(); for (var x = 1; x < 10; x++) { var p = pos_frames[y][x]; var yf = Math.trunc(p/10); var xf = p - (yf*10); grille_frame[y][x] = grille_jeux[yf][xf]; } } } function message_solution(m) { if (m == 1) { alert("Désolé, mais La grille est vide !\nJe vous propose d'en entrer une ?"); } } // **************************************************************************************************************** // ________________________________________________________________________________________________________________