From 93662d1d9e5156b4a101a7232aa4a13e74f279ee Mon Sep 17 00:00:00 2001 From: Whykioh Date: Sun, 1 Mar 2026 20:27:50 +0100 Subject: [PATCH] Ajout d'une fonction pour relancer --- poker-paf/add_global_blind.php | 29 ++++++ poker-paf/add_money.php | 23 +++++ poker-paf/change_actual_blind.php | 17 ++++ .../{play_action.php => change_player.php} | 11 +++ poker-paf/fold_player.php | 24 +++++ poker-paf/game.php | 92 +++++++++++++------ poker-paf/remove_money.php | 25 +++++ 7 files changed, 194 insertions(+), 27 deletions(-) create mode 100644 poker-paf/add_global_blind.php create mode 100644 poker-paf/add_money.php create mode 100644 poker-paf/change_actual_blind.php rename poker-paf/{play_action.php => change_player.php} (71%) create mode 100644 poker-paf/fold_player.php create mode 100644 poker-paf/remove_money.php diff --git a/poker-paf/add_global_blind.php b/poker-paf/add_global_blind.php new file mode 100644 index 0000000..cfd813a --- /dev/null +++ b/poker-paf/add_global_blind.php @@ -0,0 +1,29 @@ +prepare("SELECT current_player_id FROM games WHERE id = ?"); + $stmt->execute([$game_id]); + $game = $stmt->fetch(); + $current_player_id = $game['current_player_id']; + + // 2. Ajouter l'argent au blind du joueur actuel + $stmt = $db->prepare("UPDATE players SET money = money + ? WHERE id = ?"); + $stmt->execute([$amount, $current_player_id]); + + // 3. Ajouter le montant au pot de la partie + $stmt = $db->prepare("UPDATE games SET pot = pot + ? WHERE id = ?"); + $stmt->execute([$amount, $game_id]); + + echo json_encode(['success' => true]); + +} catch (Exception $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); +} + +?> \ No newline at end of file diff --git a/poker-paf/add_money.php b/poker-paf/add_money.php new file mode 100644 index 0000000..91e4718 --- /dev/null +++ b/poker-paf/add_money.php @@ -0,0 +1,23 @@ +prepare("SELECT current_player_id FROM games WHERE id = ?"); + $stmt->execute([$game_id]); + $game = $stmt->fetch(); + $current_player_id = $game['current_player_id']; + + // 2. Ajouter de l'argent au joueur actuel + $stmt = $db->prepare("UPDATE players SET money = money + ? WHERE id = ?"); + $stmt->execute([$amount, $current_player_id]); + + echo json_encode(['success' => true]); + +} catch (Exception $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file diff --git a/poker-paf/change_actual_blind.php b/poker-paf/change_actual_blind.php new file mode 100644 index 0000000..30dc071 --- /dev/null +++ b/poker-paf/change_actual_blind.php @@ -0,0 +1,17 @@ +prepare("UPDATE games SET last_bet = ? WHERE id = ?"); + $stmt->execute([$amount, $game_id]); + + echo json_encode(['success' => true]); + +} catch (Exception $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); +} +?> \ No newline at end of file diff --git a/poker-paf/play_action.php b/poker-paf/change_player.php similarity index 71% rename from poker-paf/play_action.php rename to poker-paf/change_player.php index d4ee1d2..9b7f9ba 100644 --- a/poker-paf/play_action.php +++ b/poker-paf/change_player.php @@ -24,6 +24,17 @@ try { $next_player = $stmt->fetch(); } + // On cherche si le joueur est couché ou pas + $stmt = $db->prepare("SELECT is_folded FROM players WHERE id = ?"); + $stmt->execute([$next_player['id']]); + $is_folded = $stmt->fetchColumn(); + if ($is_folded == 1 || $is_folded === '1') { + // Si le joueur est couché, on appelle récursivement pour sauter au suivant + $_POST['game_id'] = $game_id; // On remet le game_id pour l'appel récursif + echo json_encode(['success' => true, 'message' => 'Joueur couché, passage au suivant.']); + exit; + } + $next_id = $next_player['id']; // 3. Mise à jour de la BDD diff --git a/poker-paf/fold_player.php b/poker-paf/fold_player.php new file mode 100644 index 0000000..392103f --- /dev/null +++ b/poker-paf/fold_player.php @@ -0,0 +1,24 @@ +prepare("SELECT current_player_id FROM games WHERE id = ?"); + $stmt->execute([$game_id]); + $game = $stmt->fetch(); + $current_player_id = $game['current_player_id']; + + // 2. Coucher le joueur actuel + $stmt = $db->prepare("UPDATE players SET is_folded = 1 WHERE id = ?"); + $stmt->execute([$current_player_id]); + + echo json_encode(['success' => true]); + +} catch (Exception $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); +} + +?> \ No newline at end of file diff --git a/poker-paf/game.php b/poker-paf/game.php index c6ff51c..3c85336 100644 --- a/poker-paf/game.php +++ b/poker-paf/game.php @@ -123,27 +123,6 @@ foreach ($players as $p) { let blinds = {}; // On stocke les mises en cours ici let money = {}; // On stocke le solde des joueurs ici - // --- FONCTION POUR PARLER AU SERVEUR --- - function sendActionToServer(actionType, amount = 0) { - let formData = new FormData(); - formData.append('game_id', actualGameID); - formData.append('action', actionType); - formData.append('amount', amount); - - fetch('play_action.php', { - method: 'POST', - body: formData - }) - .then(r => r.json()) - .then(data => { - if (data.success) { - // Le serveur a validé, on rafraîchit la page pour voir le halo bouger - UpdateLabels(); // On met à jour les étiquettes de monnaie - location.reload(); - } - }); - } - // --- LES FONCTIONS DE JEU (Logique visuelle) --- function Suivre() { @@ -157,12 +136,71 @@ foreach ($players as $p) { } function Relancer() { - let val = document.getElementById('raise-amount').value; - if (val > 0) { - sendActionToServer('raise', val); - } else { - alert("Indique un montant !"); + const amount = parseInt(document.getElementById('raise-amount').value); + if (isNaN(amount) || amount <= 0) { + alert("Veuillez entrer une mise valide."); + return; } + console.log("Action : Relancer à " + amount); + // Appeler les codes PHP pour retirer l'argent du joueur + let formData = new FormData(); + formData.append('game_id', actualGameID); + formData.append('amount', amount); + fetch('remove_money.php', { + method: 'POST', + body: formData + }) + .then(r => r.json()) + .then(data => { + if (data.success) { + console.log("Mise ajoutée avec succès !"); + UpdateLabels(); // Met à jour les étiquettes de monnaie + } else { + alert("Erreur : " + data.message); + } + }) + // Ensuite, on peut aussi mettre à jour le pot et la mise actuelle + let formData1 = new FormData(); + formData1.append('game_id', actualGameID); + formData1.append('amount', amount); + fetch('add_global_blind.php', { + method: 'POST', + body: formData1 + }) + .then(r => r.json()) + .then(data => { + if (data.success) { + console.log("Mise ajoutée avec succès !"); + UpdateLabels(); // Met à jour les étiquettes de monnaie + } else { + alert("Erreur : " + data.message); + } + }) + // Comme le joueur à relancé on change la mise pour les joueurs suivants + let formData2 = new FormData(); + formData2.append('game_id', actualGameID); + formData1.append('amount', amount); + fetch('change_bet.php', { + method: 'POST', + body: formData2 + }) + .then(r => r.json()) + .then(data => { + if (data.success) { + console.log("Mise changée avec succès !"); + UpdateLabels(); // Met à jour les étiquettes de monnaie + } else { + alert("Erreur : " + data.message); + } + }) + .catch(err => console.error("Erreur fetch:", err)); + + // On met a jour les valeurs affichées + UpdateLabels(); + + // Enfin on change de joueur + changePlayer(); + } function Tapis() { @@ -189,7 +227,7 @@ foreach ($players as $p) { formData.append('game_id', actualGameID); formData.append('action', 'next_player'); // On envoie une action spécifique - fetch('play_action.php', { + fetch('change_player.php', { method: 'POST', body: formData }) diff --git a/poker-paf/remove_money.php b/poker-paf/remove_money.php new file mode 100644 index 0000000..b6271bc --- /dev/null +++ b/poker-paf/remove_money.php @@ -0,0 +1,25 @@ +prepare("SELECT current_player_id FROM games WHERE id = ?"); + $stmt->execute([$game_id]); + $game = $stmt->fetch(); + $current_player_id = $game['current_player_id']; + + // 2. Retirer de l'argent au joueur actuel + $stmt = $db->prepare("UPDATE players SET money = money - ? WHERE id = ?"); + $stmt->execute([$amount, $current_player_id]); + + echo json_encode(['success' => true]); + +} catch (Exception $e) { + echo json_encode(['success' => false, 'message' => $e->getMessage()]); +} + +?> \ No newline at end of file