Add Win Function
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
require_once 'db.php';
|
||||
session_start();
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$game_id = intval($_POST['game_id']);
|
||||
$winner_id = intval($_POST['winner_id']);
|
||||
|
||||
try {
|
||||
|
||||
// 1. Vérifier que le joueur est bien dans la partie
|
||||
$stmt = $db->prepare("SELECT id FROM players WHERE game_id = ? AND id = ?");
|
||||
$stmt->execute([$game_id, $winner_id]);
|
||||
if (!$stmt->fetch()) {
|
||||
throw new Exception("Le joueur n'est pas dans cette partie.");
|
||||
}
|
||||
|
||||
// 2. Récupérer le pot total de la partie
|
||||
require_once 'get_total_game_blind.php';
|
||||
$total_pot = get_total_game_blind($game_id);
|
||||
|
||||
// 3. Mettre à jour le solde du gagnant
|
||||
$stmt = $db->prepare("UPDATE players SET money = money + ? WHERE id = ?");
|
||||
$stmt->execute([$total_pot, $winner_id]);
|
||||
|
||||
// 4. Remettre à 0 le pot total de la partie
|
||||
$stmt = $db->prepare("UPDATE games SET pot = 0 WHERE id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
|
||||
// 5. Remettre à 0 les mises de tous les joueurs
|
||||
$stmt = $db->prepare("UPDATE players SET current_bet = 0 WHERE game_id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
|
||||
// 6. Remettre à 0 la blind actuelle de la partie
|
||||
$stmt = $db->prepare("UPDATE games SET last_bet = 0 WHERE id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -495,6 +495,78 @@ $players[0]['is_dealer'] = 1; // Mettre à jour aussi dans la variable locale po
|
||||
current_blind = Math.max(...blinds);
|
||||
console.log("Blind actuel recalculé :", current_blind);
|
||||
}
|
||||
|
||||
# --- FONCTION EN CAS DE VICTOIRE ---
|
||||
function EndGame(winnerId, amountWon) {
|
||||
// 1. On récupère le conteneur
|
||||
const container = document.getElementById('table-container');
|
||||
|
||||
// 2. On crée une nouvelle ligne
|
||||
const newRow = document.createElement('div');
|
||||
newRow.className = 'win-panel';
|
||||
|
||||
|
||||
// 3. On met le HTML dedans (avec le bouton supprimer intégré)
|
||||
newRow.innerHTML = `
|
||||
<h2>La partie est terminée ! Qui a gagné ?</h2>
|
||||
<?php foreach ($players as $p): ?>
|
||||
<button class="btn-win" onclick="declareWinner(<?php echo $p['id']; ?>)"><?php echo htmlspecialchars($p['name']); ?></button>
|
||||
<?php endforeach; ?>
|
||||
`;
|
||||
|
||||
// 4. On l'ajoute au conteneur
|
||||
container.appendChild(newRow);
|
||||
|
||||
}
|
||||
|
||||
function declareWinner(winnerId) {
|
||||
let formData = new FormData();
|
||||
formData.append('game_id', actualGameID);
|
||||
formData.append('winner_id', winnerId);
|
||||
|
||||
fetch('declare_winner.php', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
})
|
||||
.then(r => r.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
alert(data.winner_name + " gagne la partie et remporte " + data.amount_won + " 🪙 !");
|
||||
// Changer la div "win-panel" pour afficher le gagnant
|
||||
const winPanel = document.querySelector('.win-panel');
|
||||
if (winPanel) {
|
||||
winPanel.innerHTML = `
|
||||
<h2>${data.winner_name} gagne la partie et remporte ${data.amount_won} 🪙 !</h2>
|
||||
<button class="btn-back" onclick="window.location.href='index.php'">Retour à l'accueil</button>
|
||||
<button class="btn-replay" onclick="StartNewGame()">Rejouer</button>
|
||||
`;
|
||||
}
|
||||
} else {
|
||||
alert("Erreur : " + data.message);
|
||||
}
|
||||
})
|
||||
.catch(err => console.error("Erreur fetch:", err));
|
||||
}
|
||||
|
||||
function StartNewGame() {
|
||||
let formData = new FormData();
|
||||
formData.append('game_id', actualGameID);
|
||||
|
||||
fetch('start_new_game.php', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
})
|
||||
.then(r => r.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
alert("Nouvelle partie lancée !");
|
||||
location.reload(); // On recharge la page pour afficher la nouvelle partie
|
||||
} else {
|
||||
alert("Erreur : " + data.message);
|
||||
}
|
||||
})
|
||||
.catch(err => console.error("Erreur fetch:", err));
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
require_once 'db.php';
|
||||
session_start();
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$game_id = intval($_POST['game_id']);
|
||||
|
||||
try {
|
||||
|
||||
// 1. Vérifier que la partie existe
|
||||
$stmt = $db->prepare("SELECT id FROM games WHERE id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
if (!$stmt->fetch()) {
|
||||
throw new Exception("La partie n'existe pas.");
|
||||
}
|
||||
|
||||
// 2. Faire en sorte que le dealer de la partie soit le joueur suivant l'actuel dealer
|
||||
$stmt = $db->prepare("SELECT id FROM player WHERE is_dealer = 1 AND game_id = ?");
|
||||
$stmt->execute([$game_id]);
|
||||
$current_dealer = $stmt->fetch();
|
||||
if ($current_dealer) {
|
||||
$current_dealer_id = $current_dealer['id'];
|
||||
// On remet à 0 le dealer actuel
|
||||
$stmt = $db->prepare("UPDATE player SET is_dealer = 0 WHERE id = ?");
|
||||
$stmt->execute([$current_dealer_id]);
|
||||
// On cherche le prochain dealer
|
||||
$stmt = $db->prepare("SELECT id FROM player WHERE game_id = ? AND id > ? ORDER BY id ASC LIMIT 1");
|
||||
$stmt->execute([$game_id, $current_dealer_id]);
|
||||
$next_dealer = $stmt->fetch();
|
||||
if (!$next_dealer) { // Si on est au dernier, on revient au premier
|
||||
$stmt = $db->prepare("SELECT id FROM player WHERE game_id = ? ORDER BY id ASC LIMIT 1");
|
||||
$stmt->execute([$game_id]);
|
||||
$next_dealer = $stmt->fetch();
|
||||
}
|
||||
$next_dealer_id = $next_dealer['id'];
|
||||
// On met à jour le nouveau dealer
|
||||
$stmt = $db->prepare("UPDATE player SET is_dealer = 1 WHERE id = ?");
|
||||
$stmt->execute([$next_dealer_id]);
|
||||
} else {
|
||||
// Si aucun dealer n'est défini, on choisit le premier joueur comme dealer
|
||||
$stmt = $db->prepare("SELECT id FROM player WHERE game_id = ? ORDER BY id ASC LIMIT 1");
|
||||
$stmt->execute([$game_id]);
|
||||
$first_player = $stmt->fetch();
|
||||
if ($first_player) {
|
||||
$first_player_id = $first_player['id'];
|
||||
$stmt = $db->prepare("UPDATE player SET is_dealer = 1 WHERE id = ?");
|
||||
$stmt->execute([$first_player_id]);
|
||||
} else {
|
||||
throw new Exception("Aucun joueur dans la partie pour devenir dealer.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user