Différencier 2 clics de sourie
Résolu/Fermé
unknow69250
Messages postés
10
Date d'inscription
vendredi 1 mars 2019
Statut
Membre
Dernière intervention
9 mars 2019
-
4 mars 2019 à 18:50
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 - 4 mars 2019 à 20:35
jordane45 Messages postés 37253 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 mars 2023 - 4 mars 2019 à 20:35
A voir également:
- Différencier 2 clics de sourie
- Jdownloader 2 - Télécharger - Téléchargement & Transfert
- 2 comptes whatsapp - Guide
- Epson scan 2 ✓ - Forum Imprimante
- Word numéro de page 1/2 - Guide
- 2 ecran pc - Guide
2 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
Modifié le 4 mars 2019 à 20:08
Modifié le 4 mars 2019 à 20:08
Bonjour,
Sur le principe.. ton code est juste.
Voici un exemple de ce qui peut être fait :
NB: J'ai laissé la vérification des colonnes et des diagonales à ta charge
NB² : J'ai utilisé l'écriture ternaire pour certains IF
par exemple :
Qui peut s'écrire plus traditionnellement
C'est juste pour la "beauté du code et la réduction du nombre de lignes à écrire...
Voilou
Cordialement,
Jordane
Sur le principe.. ton code est juste.
Voici un exemple de ce qui peut être fait :
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TEST</title>
<style>
table{
width:150px;
height:150px;
}
table td{
width:50px;
height:50px;
text-align:center;
}
td.odd{
background-color:#ffaa11;
}
td.even{
background-color:#123fff;
}
</style>
</head>
<body>
<table id="tbl"></table>
<script type="text/javascript">
var clic = 'X';
var HTMLTableElement = document.getElementById('tbl');
function initGame(){
for(var l = 0 ; l<=2 ; l++){
var HTMLTableRowElement = HTMLTableElement.insertRow();
for(var c = 0 ; c<=2 ; c++){
var newCell = HTMLTableRowElement.insertCell(c);
newCell.id = 'td_' + l + '_' + c ;
newCell.onclick = function(){placeSymbole(this);};
newCell.className = (c+l)%2 ? 'odd' : 'even';
}
}
}
function placeSymbole(elm){
cell = elm.id;
console.log('Joueur a cliqué sur la cellule : ',cell);
if(elm.innerHTML == ""){
elm.innerHTML = (clic == "X" ) ? "X" : "O"; //ecriture ternaire (sorte de IF/ELSE )
clic = (clic == "X" ) ? "O" : "X"; //ecriture ternaire (sorte de IF/ELSE )
verifGagne();
}else{
alert('Vous ne pouvez pas modifier une cellule déjà remplie !');
}
}
function verifGagne(){
var lignes = HTMLTableElement.getElementsByTagName ("tr");
//on boucle sur chaque ligne
for (l=0; l<lignes.length ; l++){
var Maligne = lignes[l];
var cells = Maligne.getElementsByTagName('TD');
if(cells[0].innerHTML !="" && cells[0].innerHTML == cells[1].innerHTML && cells[1].innerHTML == cells[2].innerHTML ){
console.log('Les 3 cellules sont identiques');
alert (' Le joueur : ' + cells[0].innerHTML + ' a gagné !');
}
}
//faut ensuite faire la même chose pour les colonnes
// puis faudra vérifier les diagonales
}
// Lancement du jeu
initGame();
</script>
</body>
</html>
NB: J'ai laissé la vérification des colonnes et des diagonales à ta charge
NB² : J'ai utilisé l'écriture ternaire pour certains IF
par exemple :
elm.innerHTML = (clic == "X" ) ? "X" : "O"; //ecriture ternaire (sorte de IF/ELSE ) clic = (clic == "X" ) ? "O" : "X"; //ecriture ternaire (sorte de IF/ELSE )
Qui peut s'écrire plus traditionnellement
if(clic == "X" ){
elm.innerHTML = "X";
clic = "O";
}else{
elm.innerHTML= "O";
clic = "X";
}
C'est juste pour la "beauté du code et la réduction du nombre de lignes à écrire...
Voilou
Cordialement,
Jordane
unknow69250
Messages postés
10
Date d'inscription
vendredi 1 mars 2019
Statut
Membre
Dernière intervention
9 mars 2019
4 mars 2019 à 20:28
4 mars 2019 à 20:28
Merci de ta réponse mais je n'en demandé pas temps^^
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
4 mars 2019 à 20:35
4 mars 2019 à 20:35
oui je sais bien... mais j'étais inspiré.. :-)
N'oublie pas :
https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/
N'oublie pas :
https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/