Démineur Pbm IE/Firefox
Résolu
bobenausaure
Messages postés
241
Statut
Membre
-
bobenausaure Messages postés 241 Statut Membre -
bobenausaure Messages postés 241 Statut Membre -
Bonjour,
Voici mon code pour un démineur en Javascript.
Le problème est que sous IE, ca marche, mais pas sous Firefox. Et il faut absolument que ça marche sous Firefox. Que dois-je changer ?
Merci d'avance.
<script language="JavaScript">
// Réglage prédéfini
NbCols = 8;
NbLignes = 8;
NbMines = 10;
// tableau de couleurs (chaque chiffre possède une couleur)
color = new Array(8);
color[0] = "#0000FF";
color[1] = "#008000";
color[2] = "#E22000";
color[3] = "#000080";
color[4] = "#E29500";
color[5] = "#00DAE2";
color[6] = "#891114";
color[7] = "#4C1189";
function new_partie() {
// Fonction nouvelle partie, création du tableau de réglages de la partie
accueil = "<table align='center' class='demineur'><tr><td align='left'>Nombre de colonnes :</td><td><input type='text' name='NbCols' size='5' maxlength='50' value='" + NbCols + "' class='form'></td></tr>";
accueil += "<tr><td align='left'>Nombres de lignes :</td><td><input type='text' name='NbLignes' size='5' maxlength='256' value='" + NbLignes + "' class='form'></td></tr>";
accueil += "<tr><td align='left'>Nombre de mines :</td><td><input type='text' name='NbMines' size='5' maxlength='256' value='" + NbMines + "' class='form'></td></tr>";
accueil += "<tr><td align='left'><input type='submit' value='Jouer une partie' class='form' onClick='go();'><br><br></td><td></td></tr></table>";
document.getElementById('Corpus').innerHTML = accueil;
}
// fonction qui affiche le démineur lorsque l'user clique sur Jouer, selon les réglages de jeu
function go() {
// traduit la valeur saisie par l'user en un entier : si l'utilisateur saisit 6,3 colonnes, NbCols = 6
NbCols = Math.floor(FormCorps.NbCols.value);
NbLignes = Math.floor(FormCorps.NbLignes.value);
NbMines = Math.floor(FormCorps.NbMines.value);
bomba = NbMines;
if (NbMines < (NbLignes*NbCols)) {
tableau = "<table class='demineur' border=1 cellpadding=0 cellspacing=0 bordercolor=#000000 bordercolorlight=#000000 bordercolordark=#c1f57e><tr><td align=center colspan=";
tableau += NbCols + "><input type='button' value='Nouvelle partie' onClick='new_partie();' class='form2'></td></tr>";
carte = new Array(NbLignes);
for (j=1;j<=NbLignes;j++) {
tableau += '<tr>';
for (i=1;i<=NbCols;i++) {
tableau += '<td width=30 height=30 align=center><div id="cel' + j + ',' + i + '">';
tableau += '<input style="background-color:#c1f57e;color:#c1f57e;" type="button" value="@" class="form2" onclick="devoiler(' + j + ',' + i + ');" oncontextmenu="bombe(' + j + ',' + i + ');return(false)">';
tableau += '</div></td>';
}
tableau += '</tr>';
}
tableau += "<tr><td align=center colspan=";
tableau += NbCols + "><div id='NbBomba'></div></td></tr></table>";
document.getElementById('Corpus').innerHTML = tableau;
carte = new Array(NbLignes);
CaseJoue = new Array(NbLignes);
Marque = new Array(NbLignes);
for (j=0;j<NbLignes;j++) {
carte[j] = new Array(NbCols);
CaseJoue[j] = new Array(NbCols);
Marque[j] = new Array(NbCols);
for (i=0;i<NbCols;i++) {
carte[j][i] = 0;
CaseJoue[j][i] = 0;
Marque[j][i] = 0;
}
}
Nb = 0;
while (Nb<NbMines) {
proba = (NbMines-Nb) / (NbCols * NbLignes);
for (j=0;j<NbLignes;j++) {
for (i=0;i<NbCols;i++) {
u = Math.random();
if (u<proba && Nb <NbMines && carte[j][i]!="M") {
Nb++;
// affichage de l'image de la bombe (police helvetica, lettre M)
carte[j][i] = "<font class='bomba2'>M</font>";
if (j!=0) {
if (carte[j-1][i]!="<font class='bomba2'>M</font>") {carte[j-1][i]++;}
if (i!=0) {
if (carte[j-1][i-1]!="<font class='bomba2'>M</font>") {carte[j-1][i-1]++;}
}
if (i!=(NbCols-1)) {
if (carte[j-1][i+1]!="<font class='bomba2'>M</font>") {carte[j-1][i+1]++;}
}
}
if (j!=(NbLignes-1)) {
if (carte[j+1][i]!="<font class='bomba2'>M</font>") {carte[j+1][i]++;}
if (i!=0) {
if (carte[j+1][i-1]!="<font class='bomba2'>M</font>") {carte[j+1][i-1]++;}
}
if (i!=(NbCols-1)) {
if (carte[j+1][i+1]!="<font class='bomba2'>M</font>") {carte[j+1][i+1]++;}
}
}
if (i!=0) {
if (carte[j][i-1]!="<font class='bomba2'>M</font>") {carte[j][i-1]++;}
}
if (i!=(NbCols-1)) {
if (carte[j][i+1]!="<font class='bomba2'>M</font>") {carte[j][i+1]++;}
}
}
}
}
}
NbCaseDec = 0;
NbCaseADec = (NbCols * NbLignes) - NbMines
document.getElementById('NbBomba').innerHTML = '<font class="bomba">' + bomba + '</font>';
}
else
{
accueil2 = accueil;
accueil = "Impossible, il faut qu'il y ai moins de mines que de cases<br>" + accueil;
new_partie();
accueil = accueil2;
}
}
function devoiler(lig,col) {
if (carte[lig-1][col-1] == "<font class='bomba2'>M</font>") {
fin('Perdu...');
}
else
{
if (CaseJoue[lig-1][col-1]==0 && Marque[lig-1][col-1]==0) {
NbCaseDec++;
CaseJoue[lig-1][col-1]=1;
}
if (carte[lig-1][col-1]!=0 && Marque[lig-1][col-1]==0) {
document.getElementById('cel' + lig + ',' + col).innerHTML = "<font color='" + color[(carte[lig-1][col-1]-1)] + "'>" + carte[lig-1][col-1] + "</font>";
}
else
{
if (Marque[lig-1][col-1]==0) {
document.getElementById('cel' + lig + ',' + col).innerHTML = carte[lig-1][col-1];
}
}
if (NbCaseDec == NbCaseADec) {
fin('Victoire !');
}
if (carte[lig-1][col-1]==0 && Marque[lig-1][col-1]==0) {
if (lig!=1 && col!=1 && CaseJoue[lig-2][col-2]==0) {
devoiler((lig-1),(col-1));
}
if (lig!=1 && CaseJoue[lig-2][col-1]==0) {
devoiler((lig-1),col);
}
if (lig!=1 && col!=1 && CaseJoue[lig-2][col]==0) {
devoiler((lig-1),(col+1));
}
if (col!=1 && CaseJoue[lig-1][col-2]==0) {
devoiler(lig,(col-1));
}
if (col!=NbCols && CaseJoue[lig-1][col]==0) {
devoiler(lig,(col+1));
}
if (lig!=NbLignes && col!=1 && CaseJoue[lig][col-2]==0) {
devoiler((lig+1),(col-1));
}
if (lig!=NbLignes && CaseJoue[lig][col-1]==0) {
devoiler((lig+1),col);
}
if (lig!=NbLignes && col!=NbCols && CaseJoue[lig][col]==0) {
devoiler((lig+1),(col+1));
}
}
}
}
function fin(message) {
alert(message);
for (j=0;j<NbLignes;j++) {
for (i=0;i<NbCols;i++) {
if (carte[j][i]!=0 && carte[j][i]!="<font class='bomba2'>M</font>") {
document.getElementById('cel' + (j+1) + ',' + (i+1)).innerHTML = "<font color='" + color[(carte[j][i]-1)] + "'>" + carte[j][i] + "</font>";
}
else
{
document.getElementById('cel' + (j+1) + ',' + (i+1)).innerHTML = carte[j][i];
}
}
}
}
function bombe(lig, col) {
document.getElementById('cel' + lig + ',' + col).innerHTML = '<input style="background-color:#c1f57e;color:#000000;" type="button" value="O" class="bomba2" onClick="PasBombe(' + lig + ',' + col + ');">';;
bomba--;
document.getElementById('NbBomba').innerHTML = '<font class="bomba">' + bomba + '</font>';
Marque[lig-1][col-1] = 1;
}
function PasBombe(lig, col) {
document.getElementById('cel' + lig + ',' + col).innerHTML = '<input style="background-color:#c1f57e;color:#c1f57e;" type="button" value="@" class="form2" onclick="devoiler(' + lig + ',' + col + ');" oncontextmenu="bombe(' + lig + ',' + col + ');">';
bomba++;
document.getElementById('NbBomba').innerHTML = '<font class="bomba">' + bomba + '</font>';
Marque[lig-1][col-1] = 0;
}
</script>
</head>
<body onLoad='new_partie();'>
<form name='FormCorps'>
<div id='Corpus'></div>
</form>
<br /><a href="demineur/demineur.html">Rejouer</a>
</body>
Voici mon code pour un démineur en Javascript.
Le problème est que sous IE, ca marche, mais pas sous Firefox. Et il faut absolument que ça marche sous Firefox. Que dois-je changer ?
Merci d'avance.
<script language="JavaScript">
// Réglage prédéfini
NbCols = 8;
NbLignes = 8;
NbMines = 10;
// tableau de couleurs (chaque chiffre possède une couleur)
color = new Array(8);
color[0] = "#0000FF";
color[1] = "#008000";
color[2] = "#E22000";
color[3] = "#000080";
color[4] = "#E29500";
color[5] = "#00DAE2";
color[6] = "#891114";
color[7] = "#4C1189";
function new_partie() {
// Fonction nouvelle partie, création du tableau de réglages de la partie
accueil = "<table align='center' class='demineur'><tr><td align='left'>Nombre de colonnes :</td><td><input type='text' name='NbCols' size='5' maxlength='50' value='" + NbCols + "' class='form'></td></tr>";
accueil += "<tr><td align='left'>Nombres de lignes :</td><td><input type='text' name='NbLignes' size='5' maxlength='256' value='" + NbLignes + "' class='form'></td></tr>";
accueil += "<tr><td align='left'>Nombre de mines :</td><td><input type='text' name='NbMines' size='5' maxlength='256' value='" + NbMines + "' class='form'></td></tr>";
accueil += "<tr><td align='left'><input type='submit' value='Jouer une partie' class='form' onClick='go();'><br><br></td><td></td></tr></table>";
document.getElementById('Corpus').innerHTML = accueil;
}
// fonction qui affiche le démineur lorsque l'user clique sur Jouer, selon les réglages de jeu
function go() {
// traduit la valeur saisie par l'user en un entier : si l'utilisateur saisit 6,3 colonnes, NbCols = 6
NbCols = Math.floor(FormCorps.NbCols.value);
NbLignes = Math.floor(FormCorps.NbLignes.value);
NbMines = Math.floor(FormCorps.NbMines.value);
bomba = NbMines;
if (NbMines < (NbLignes*NbCols)) {
tableau = "<table class='demineur' border=1 cellpadding=0 cellspacing=0 bordercolor=#000000 bordercolorlight=#000000 bordercolordark=#c1f57e><tr><td align=center colspan=";
tableau += NbCols + "><input type='button' value='Nouvelle partie' onClick='new_partie();' class='form2'></td></tr>";
carte = new Array(NbLignes);
for (j=1;j<=NbLignes;j++) {
tableau += '<tr>';
for (i=1;i<=NbCols;i++) {
tableau += '<td width=30 height=30 align=center><div id="cel' + j + ',' + i + '">';
tableau += '<input style="background-color:#c1f57e;color:#c1f57e;" type="button" value="@" class="form2" onclick="devoiler(' + j + ',' + i + ');" oncontextmenu="bombe(' + j + ',' + i + ');return(false)">';
tableau += '</div></td>';
}
tableau += '</tr>';
}
tableau += "<tr><td align=center colspan=";
tableau += NbCols + "><div id='NbBomba'></div></td></tr></table>";
document.getElementById('Corpus').innerHTML = tableau;
carte = new Array(NbLignes);
CaseJoue = new Array(NbLignes);
Marque = new Array(NbLignes);
for (j=0;j<NbLignes;j++) {
carte[j] = new Array(NbCols);
CaseJoue[j] = new Array(NbCols);
Marque[j] = new Array(NbCols);
for (i=0;i<NbCols;i++) {
carte[j][i] = 0;
CaseJoue[j][i] = 0;
Marque[j][i] = 0;
}
}
Nb = 0;
while (Nb<NbMines) {
proba = (NbMines-Nb) / (NbCols * NbLignes);
for (j=0;j<NbLignes;j++) {
for (i=0;i<NbCols;i++) {
u = Math.random();
if (u<proba && Nb <NbMines && carte[j][i]!="M") {
Nb++;
// affichage de l'image de la bombe (police helvetica, lettre M)
carte[j][i] = "<font class='bomba2'>M</font>";
if (j!=0) {
if (carte[j-1][i]!="<font class='bomba2'>M</font>") {carte[j-1][i]++;}
if (i!=0) {
if (carte[j-1][i-1]!="<font class='bomba2'>M</font>") {carte[j-1][i-1]++;}
}
if (i!=(NbCols-1)) {
if (carte[j-1][i+1]!="<font class='bomba2'>M</font>") {carte[j-1][i+1]++;}
}
}
if (j!=(NbLignes-1)) {
if (carte[j+1][i]!="<font class='bomba2'>M</font>") {carte[j+1][i]++;}
if (i!=0) {
if (carte[j+1][i-1]!="<font class='bomba2'>M</font>") {carte[j+1][i-1]++;}
}
if (i!=(NbCols-1)) {
if (carte[j+1][i+1]!="<font class='bomba2'>M</font>") {carte[j+1][i+1]++;}
}
}
if (i!=0) {
if (carte[j][i-1]!="<font class='bomba2'>M</font>") {carte[j][i-1]++;}
}
if (i!=(NbCols-1)) {
if (carte[j][i+1]!="<font class='bomba2'>M</font>") {carte[j][i+1]++;}
}
}
}
}
}
NbCaseDec = 0;
NbCaseADec = (NbCols * NbLignes) - NbMines
document.getElementById('NbBomba').innerHTML = '<font class="bomba">' + bomba + '</font>';
}
else
{
accueil2 = accueil;
accueil = "Impossible, il faut qu'il y ai moins de mines que de cases<br>" + accueil;
new_partie();
accueil = accueil2;
}
}
function devoiler(lig,col) {
if (carte[lig-1][col-1] == "<font class='bomba2'>M</font>") {
fin('Perdu...');
}
else
{
if (CaseJoue[lig-1][col-1]==0 && Marque[lig-1][col-1]==0) {
NbCaseDec++;
CaseJoue[lig-1][col-1]=1;
}
if (carte[lig-1][col-1]!=0 && Marque[lig-1][col-1]==0) {
document.getElementById('cel' + lig + ',' + col).innerHTML = "<font color='" + color[(carte[lig-1][col-1]-1)] + "'>" + carte[lig-1][col-1] + "</font>";
}
else
{
if (Marque[lig-1][col-1]==0) {
document.getElementById('cel' + lig + ',' + col).innerHTML = carte[lig-1][col-1];
}
}
if (NbCaseDec == NbCaseADec) {
fin('Victoire !');
}
if (carte[lig-1][col-1]==0 && Marque[lig-1][col-1]==0) {
if (lig!=1 && col!=1 && CaseJoue[lig-2][col-2]==0) {
devoiler((lig-1),(col-1));
}
if (lig!=1 && CaseJoue[lig-2][col-1]==0) {
devoiler((lig-1),col);
}
if (lig!=1 && col!=1 && CaseJoue[lig-2][col]==0) {
devoiler((lig-1),(col+1));
}
if (col!=1 && CaseJoue[lig-1][col-2]==0) {
devoiler(lig,(col-1));
}
if (col!=NbCols && CaseJoue[lig-1][col]==0) {
devoiler(lig,(col+1));
}
if (lig!=NbLignes && col!=1 && CaseJoue[lig][col-2]==0) {
devoiler((lig+1),(col-1));
}
if (lig!=NbLignes && CaseJoue[lig][col-1]==0) {
devoiler((lig+1),col);
}
if (lig!=NbLignes && col!=NbCols && CaseJoue[lig][col]==0) {
devoiler((lig+1),(col+1));
}
}
}
}
function fin(message) {
alert(message);
for (j=0;j<NbLignes;j++) {
for (i=0;i<NbCols;i++) {
if (carte[j][i]!=0 && carte[j][i]!="<font class='bomba2'>M</font>") {
document.getElementById('cel' + (j+1) + ',' + (i+1)).innerHTML = "<font color='" + color[(carte[j][i]-1)] + "'>" + carte[j][i] + "</font>";
}
else
{
document.getElementById('cel' + (j+1) + ',' + (i+1)).innerHTML = carte[j][i];
}
}
}
}
function bombe(lig, col) {
document.getElementById('cel' + lig + ',' + col).innerHTML = '<input style="background-color:#c1f57e;color:#000000;" type="button" value="O" class="bomba2" onClick="PasBombe(' + lig + ',' + col + ');">';;
bomba--;
document.getElementById('NbBomba').innerHTML = '<font class="bomba">' + bomba + '</font>';
Marque[lig-1][col-1] = 1;
}
function PasBombe(lig, col) {
document.getElementById('cel' + lig + ',' + col).innerHTML = '<input style="background-color:#c1f57e;color:#c1f57e;" type="button" value="@" class="form2" onclick="devoiler(' + lig + ',' + col + ');" oncontextmenu="bombe(' + lig + ',' + col + ');">';
bomba++;
document.getElementById('NbBomba').innerHTML = '<font class="bomba">' + bomba + '</font>';
Marque[lig-1][col-1] = 0;
}
</script>
</head>
<body onLoad='new_partie();'>
<form name='FormCorps'>
<div id='Corpus'></div>
</form>
<br /><a href="demineur/demineur.html">Rejouer</a>
</body>
A voir également:
- Démineur Pbm IE/Firefox
- Downloadhelper firefox - Télécharger - Outils pour navigateurs
- Telecharger firefox - Télécharger - Navigateurs
- Exporter favoris firefox - Guide
- Ie tab firefox - Télécharger - Outils pour navigateurs
- Comment supprimer bing de firefox - Guide