Add other game actions
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
require_once 'db.php';
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
$game_id = intval($_POST['game_id']);
|
||||||
|
$current_player_id = intval($_POST['current_player_id']);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 1. Récupérer l'argent du joueur actuel
|
||||||
|
$stmt = $db->prepare("SELECT money FROM players WHERE id = ?");
|
||||||
|
$stmt->execute([$current_player_id]);
|
||||||
|
$player = $stmt->fetch();
|
||||||
|
$money = $player['money'];
|
||||||
|
|
||||||
|
// 2. Mettre à jour la blind du joueur actuel avec tout son argent
|
||||||
|
$stmt = $db->prepare("UPDATE players SET current_bet = ? WHERE id = ?");
|
||||||
|
$stmt->execute([$money, $current_player_id]);
|
||||||
|
|
||||||
|
// 3. Retirer tout l'argent du joueur actuel
|
||||||
|
$stmt = $db->prepare("UPDATE players SET money = 0 WHERE id = ?");
|
||||||
|
$stmt->execute([$current_player_id]);
|
||||||
|
|
||||||
|
// 4. Ajouter le montant au pot de la partie
|
||||||
|
$stmt = $db->prepare("UPDATE games SET pot = pot + ? WHERE id = ?");
|
||||||
|
$stmt->execute([$money, $game_id]);
|
||||||
|
|
||||||
|
echo json_encode(['success' => true]);
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
+116
-14
@@ -136,12 +136,59 @@ foreach ($players as $p) {
|
|||||||
|
|
||||||
function Suivre() {
|
function Suivre() {
|
||||||
console.log("Action : Suivre");
|
console.log("Action : Suivre");
|
||||||
sendActionToServer('call');
|
// Appeler les codes PHP pour retirer l'argent du joueur
|
||||||
|
getCurrentGameBlind(); // On récupère la blind actuelle pour l'afficher dans le pot
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('game_id', actualGameID);
|
||||||
|
formData.append('amount', current_blind); // On envoie la blind actuelle pour que le PHP puisse faire le lien
|
||||||
|
fetch('remove_money.php', {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
})
|
||||||
|
.then(r => r.json())
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
console.log("Mise suivie avec succès !");
|
||||||
|
UpdateLabels(); // Met à jour les étiquettes de monnaie
|
||||||
|
} else {
|
||||||
|
alert("Erreur : " + data.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
getCurrentPlayer(); // On récupère le joueur actuel pour vérifier son solde
|
||||||
|
getActualPlayerMoney(); // On récupère son argent pour vérifier s'il peut suivre
|
||||||
|
if (money[currentPlayerId] < current_blind) {
|
||||||
|
alert("Vous n'avez pas assez d'argent pour suivre, vous devez vous coucher ou faire tapis.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateLabels(); // On met a jour les valeurs affichées
|
||||||
|
changePlayer(); // Enfin on change de joueur
|
||||||
}
|
}
|
||||||
|
|
||||||
function SeCoucher() {
|
function SeCoucher() {
|
||||||
console.log("Action : Se coucher");
|
console.log("Action : Se coucher");
|
||||||
sendActionToServer('fold');
|
let formData = new FormData();
|
||||||
|
formData.append('game_id', actualGameID);
|
||||||
|
formData.append('action', 'fold'); // On envoie une action spécifique pour se coucher
|
||||||
|
fetch('change_player.php', {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
})
|
||||||
|
.then(r => r.json())
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
console.log("Joueur couché avec succès !");
|
||||||
|
UpdateLabels(); // Met à jour les étiquettes de monnaie
|
||||||
|
changePlayer(); // On change de joueur après s'être couché
|
||||||
|
} else {
|
||||||
|
alert("Erreur : " + data.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => console.error("Erreur fetch:", err));
|
||||||
|
|
||||||
|
UpdateLabels(); // On met a jour les valeurs affichées
|
||||||
|
changePlayer(); // Enfin on change de joueur
|
||||||
}
|
}
|
||||||
|
|
||||||
function Relancer() {
|
function Relancer() {
|
||||||
@@ -214,24 +261,55 @@ foreach ($players as $p) {
|
|||||||
|
|
||||||
function Tapis() {
|
function Tapis() {
|
||||||
console.log("Action : TAPIS !");
|
console.log("Action : TAPIS !");
|
||||||
sendActionToServer('allin');
|
let currentPlayerId = getCurrentPlayer(); // On récupère la blind actuelle du joueur pour l'afficher dans le pot
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('game_id', actualGameID);
|
||||||
|
formData.append('current_player_id', currentPlayerId); // On envoie aussi l'ID du joueur actuel pour que le PHP puisse faire le lien
|
||||||
|
fetch('all_in.php', {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
})
|
||||||
|
.then(r => r.json())
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
console.log("TAPIS effectué avec succès !");
|
||||||
|
UpdateLabels(); // Met à jour les étiquettes de monnaie
|
||||||
|
} else {
|
||||||
|
alert("Erreur : " + data.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
UpdateLabels(); // On met a jour les valeurs affichées
|
||||||
|
changePlayer(); // Enfin on change de joueur
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fonction pour mettre à jour les étiquettes de monnaie sur l'écran
|
// Fonction pour mettre à jour les étiquettes de monnaie sur l'écran
|
||||||
function UpdateLabels() {
|
function UpdateLabels() {
|
||||||
for (const id in money) {
|
// On récupère les nouvelles valeurs depuis le serveur
|
||||||
const label = document.getElementById(`label-${id}`);
|
getActualPlayerMoney();
|
||||||
if (label) {
|
getActualPlayerBlind();
|
||||||
label.innerText = (money[id] - (blinds[id] || 0)) + " 🪙";
|
getActualGameBlind();
|
||||||
|
getTotalGameBlind();
|
||||||
|
|
||||||
|
// Ensuite, on met à jour les éléments du DOM avec les nouvelles valeurs
|
||||||
|
document.querySelectorAll('.player-slot').forEach(slot => {
|
||||||
|
const playerId = slot.getAttribute('data-id');
|
||||||
|
const playerInfo = players.find(p => p.id == playerId);
|
||||||
|
if (playerInfo) {
|
||||||
|
slot.querySelector('.player-money').textContent = playerInfo.money + " 🪙";
|
||||||
|
slot.querySelector('.player-bet').textContent = "Mise: " + playerInfo.blind + " 🪙";
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
|
// Mettre à jour le pot et la mise actuelle
|
||||||
|
document.getElementById('main-pot').textContent = totalBlind + " 🪙";
|
||||||
|
document.getElementById('current-bet').textContent = currentBlind + " 🪙";
|
||||||
}
|
}
|
||||||
|
|
||||||
function changePlayer() {
|
function changePlayer() {
|
||||||
console.log("Demande de changement de joueur...");
|
console.log("Demande de changement de joueur...");
|
||||||
|
getActualPlayerMoney();
|
||||||
// On utilise la fonction générique qu'on a créée ensemble
|
getCurrentPlayer();
|
||||||
// Si tu ne l'as pas, voici le code direct :
|
let currentPlayerMoney = money[currentPlayerId] || 0;
|
||||||
let formData = new FormData();
|
let formData = new FormData();
|
||||||
formData.append('game_id', actualGameID);
|
formData.append('game_id', actualGameID);
|
||||||
formData.append('action', 'next_player'); // On envoie une action spécifique
|
formData.append('action', 'next_player'); // On envoie une action spécifique
|
||||||
@@ -250,11 +328,13 @@ foreach ($players as $p) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(err => console.error("Erreur fetch:", err));
|
.catch(err => console.error("Erreur fetch:", err));
|
||||||
|
if (currentPlayerMoney <= 0) {
|
||||||
|
alert("Ce joueur est tapis ou couché, joueur suivant"); // Si le joueur n'a plus d'argent, on l'empêche de changer de joueur
|
||||||
|
changePlayer(); // Appel récursif pour sauter au joueur suivant
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Au chargement, on bloque les actions tant que le guide n'est pas fini
|
|
||||||
window.onload = () => enableActions(false);
|
|
||||||
|
|
||||||
// Ta fonction deleteGame déjà existante (rappel)
|
// Ta fonction deleteGame déjà existante (rappel)
|
||||||
function deleteGame(idPartie) {
|
function deleteGame(idPartie) {
|
||||||
if (confirm("Supprimer la partie ?")) {
|
if (confirm("Supprimer la partie ?")) {
|
||||||
@@ -266,6 +346,28 @@ foreach ($players as $p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getCurrentPlayer() {
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append('game_id', actualGameID);
|
||||||
|
|
||||||
|
fetch('get_current_player.php', {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
})
|
||||||
|
.then(r => r.json())
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
currentPlayerId = data.player_id; // On stocke l'ID du joueur actuel dans une variable globale
|
||||||
|
return data.player_id; // On retourne l'ID du joueur actuel
|
||||||
|
} else {
|
||||||
|
alert("Erreur : " + data.message);
|
||||||
|
} else {
|
||||||
|
alert("Erreur : " + data.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => console.error("Erreur fetch:", err));
|
||||||
|
}
|
||||||
|
|
||||||
function getActualPlayerMoney() {
|
function getActualPlayerMoney() {
|
||||||
let formData = new FormData();
|
let formData = new FormData();
|
||||||
formData.append('game_id', actualGameID);
|
formData.append('game_id', actualGameID);
|
||||||
|
|||||||
Reference in New Issue
Block a user