Démineur Pbm IE/Firefox
Résolu
bobenausaure
Messages postés
228
Date d'inscription
Statut
Membre
Dernière intervention
-
bobenausaure Messages postés 228 Date d'inscription Statut Membre Dernière intervention -
bobenausaure Messages postés 228 Date d'inscription Statut Membre Dernière intervention -
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
- Telecharger firefox - Télécharger - Navigateurs
- Video downloadhelper firefox - Télécharger - Outils pour navigateurs
- Exporter favoris firefox - Guide
- Ie tab firefox - Télécharger - Outils pour navigateurs
- Ghostery firefox - Télécharger - Web & Internet