-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpartie.js
95 lines (77 loc) · 2.52 KB
/
partie.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
$("#lien").click(function() {
$(this).select(); //Sélectionner contenu de boîte de texte de lien pour adversaire lorsque cliqué
});
var monTour = true;
var partieTerminee = false;
var derniereMiseAJour = 0;
function faireTour(joueur, x, y) {
$("#case-" + x + "-" + y).text(joueur).addClass("joueur-" + joueur);
monTour = joueur != monJoueur; //C'est mon tour si le joueur qui vient de jouer n'est pas moi
$("#mon-tour").toggle(monTour);
$("#tour-adversaire").toggle(!monTour);
verifierPartie();
}
function verifierPartie() {
//Horizontales
verifierLigne($("#case-0-0").text() + $("#case-1-0").text() + $("#case-2-0").text());
verifierLigne($("#case-0-1").text() + $("#case-1-1").text() + $("#case-2-1").text());
verifierLigne($("#case-0-2").text() + $("#case-1-2").text() + $("#case-2-2").text());
//Verticales
verifierLigne($("#case-0-0").text() + $("#case-0-1").text() + $("#case-0-2").text());
verifierLigne($("#case-1-0").text() + $("#case-1-1").text() + $("#case-1-2").text());
verifierLigne($("#case-2-0").text() + $("#case-2-1").text() + $("#case-2-2").text());
//Diagonales
verifierLigne($("#case-0-0").text() + $("#case-1-1").text() + $("#case-2-2").text());
verifierLigne($("#case-0-2").text() + $("#case-1-1").text() + $("#case-2-0").text());
}
function verifierLigne(str) {
if (str == "xxx" || str == "ooo") {
partieTerminee = true;
var gagnant = str.charAt(0);
$("#partie-terminee").show().find("span").text(gagnant).addClass("joueur-" + gagnant);
$("#mon-tour, #tour-adversaire").hide();
}
}
//Jouer un tour
$("#grille td").click(function() {
if ($(this).text() != "") //Si case pas vide
return;
if (!monTour) //Si pas mon tour
return;
if (partieTerminee) //Si partie n'est pas terminée
return;
faireTour(monJoueur, $(this).data("x"), $(this).data("y"));
$.ajax({
type: "POST",
url: "envoyer_tour.php",
data: {
x: $(this).data("x"),
y: $(this).data("y"),
partie: partie,
joueur: monJoueur
},
success: function(id) {
derniereMiseAJour = id;
}
});
});
//Récupérer tours au début et périodiquement
function recupererTours() {
$.ajax({
type: "GET",
url: "recuperer_tours.php",
data: {
partie: partie,
derniereMiseAJour: derniereMiseAJour
},
dataType: "json",
success: function(tours) {
tours.forEach(function(tour) {
faireTour(tour.joueur, tour.x, tour.y);
});
if (!partieTerminee)
setTimeout(recupererTours, 1000);
}
});
}
recupererTours();