<?php
session_start();
include 'conexao.php';
?>

<!DOCTYPE html>
<html>
<head>




    <title>Criar jogo</title>
<link rel="stylesheet" type="text/css" href="style.css">


 
    <style>
        /* Definindo estilos para o tabuleiro */
        
        .map {
            display: grid;
            grid-template-columns: repeat(7, 100px); /* 3 colunas com 100px cada */
            grid-gap: 5px; /* Espaço entre as células do tabuleiro */
     position: relative;
      border-color: white; /* Cor da borda */
    border-width: 2px; /* Largura da borda */
    max-width: 800px;
    left: 35px;
    
               }
  

    .container{
    }

        /* Estilos para os quadrados do tabuleiro */
        .square {
            width: 100px;
            height: 100px;
            border: 1px solid black;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
        }
        
        /* Estilos para os tipos de quadrados */
        .type-0 {
            background-color: white;
        }

        .type-1 {
            background-color: gray;
        }

        /* Estilos para as informações das colunas */
        #infoColunas {
            margin-top: 20px;
            font-size: 16px;
        }
        select {
        width: 200px;
        height: 30px;
        text-align: center;
            border-radius: 5px;
    cursor: pointer;
    width: 500px;
        }
        .redd {
        color: red;
        }
        
        .2 {
        color: blue;
        }
        
            </style>
    
    
    
    
    
    
    <script>
    function confirmPassarTurno() {
        return confirm("Tem certeza que deseja passar o turno?");
    }
    
    
  





    function confirmExpulsar() {
        return confirm("Tem certeza que deseja expulsar o adversário?");
   
</script>


                
    
</head>

<body><center>
  <img class="bn" src="bn.png" alt=""><br><br><br>

     <a href="dashboard.php"><button class="btnmenu">Menu principal</button></a><br><br>




</hr>
<?php

// Select com jogos do jogador
// Sua conexão com o banco de dados

// Valor da variável $jogador
 // Substitua pelo valor correto
$jogador = $_SESSION['user_name'];

$_SESSION['jogador'] = $jogador;



// SELECIONAR JOGO QUE CAIRA ao vim por Redirecionamento por outra página 
if ($gameselect == '') {$gameselect = $_SESSION['gameselect'];}







try {
    // Prepara e executa uma consulta para selecionar os jogos em que o jogador participa
    $stmt = $pdo->prepare("SELECT game FROM games WHERE p1 = :jogador OR p2 = :jogador");
    $stmt->bindParam(':jogador', $jogador, PDO::PARAM_STR); // Use PDO::PARAM_STR para VARCHAR
    $stmt->execute();
    
    // Obtém o resultado da consulta
    $jogosParticipantes = $stmt->fetchAll(PDO::FETCH_COLUMN);
} catch (PDOException $e) {
    echo "Erro na consulta: " . $e->getMessage();
}


// Verifica se há jogos participantes
if (!empty($jogosParticipantes)) {
echo 'Selecione um jogo';
    echo '<form action="" method="post">';
    echo '<select name="gameSelect">';
    
    foreach ($jogosParticipantes as $game) {
        echo '<option value="' . $game . '">' . $game . '</option>';
    }
    
    echo '</select><br><br>';
    echo '<input type="submit" value="Selecionar"><br><br>';
    echo '</form>';
    
    // Verifica se o formulário foi submetido
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // Obtém o valor selecionado do <select>
        $gameselect = $_POST["gameSelect"];
        
        $_SESSION['gameselect'] = $gameselect;
        echo "Jogo selecionado: " . $gameselect;
        
    }
} else {
    echo "O jogador não participa de nenhum jogo.";
    exit;
}

$msg = $_SESSION['msg'];
echo $msg;

// Verifique se a variável de sessão existe e se passou um determinado tempo (aqui alteramos de 5 para 10 segundos)
if (isset($_SESSION['msg']) && time() - $_SESSION['tempo_criacao'] > 5) {
    // Limpe a variável de sessão
    unset($_SESSION['msg']);
}


// Verifique se a variável de sessão existe e se passou um determinado tempo (aqui alteramos de 5 para 10 segundos)
if (isset($msg) && time() - $_SESSION['tempo_criacao'] > 5) {
    // Limpe a variável de sessão
    unset($msg);
}






if ($gameselect == "") {
echo "<br><br>Nenhum jogo selecionado";
exit;
}



// Consultar adversario 

try {
    // Consulta para obter o oponente do jogador
    $stmt = $pdo->prepare("SELECT p1, p2 FROM games WHERE game = :gameselect AND (p1 = :jogador OR p2 = :jogador)");
    $stmt->bindParam(':gameselect', $gameselect, PDO::PARAM_INT);
    $stmt->bindParam(':jogador', $jogador, PDO::PARAM_INT);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    
    // Determina o oponente
    $oponente = ($jogador == $row['p1']) ? $row['p2'] : $row['p1'];
    $_SESSION['$oponente'] = $oponente;
    
    // Agora você pode usar $oponente para atualizar a tabela ou para qualquer outra finalidade
} catch (PDOException $e) {
    echo "Erro na consulta do oponente:" . $e->getMessage();
}
















// pegar dados do jogo selecionado
try {
            $stmt = $pdo->query("SELECT * FROM games WHERE game = $gameselect");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

            foreach ($rows as $row) {
                $game = $row['game'];
                $_SESSION['gameselect'] = $game;
                $bet = $row['bet'];
                $p1 = $row['p1'];
                $p2 = $row['p2'];
                $turn = $row['turn'];
                $timerow = $row['time'];
                $turn = $row['turn'];
                $timerow = $row['time'];
                $time = $timerow * 60;
                $played = $row['played'];
                $pass1 = $row['pass1'];
                $pass2 = $row['pass2'];
                $limite = $row['limite'];
                $vencedor = $row['vencedor'];
                $timeturn = $time;
                $msggame = $row['msg'];
                $pg= $row['pg'];
$timeturno = date('H:i:s', $time);
$horarioAtual = time();

$diferncatime = $horarioAtual - $played;
$falta = $diferncatime;

$timestamp1 = strtotime($horarioAtual);
$timestamp2 = strtotime($played);
// 6 horas
$timestampPlayed = strtotime($played);

$horarioAtual = time();
$dataHoraFormatada = date('Y-m-d H:i:s', $horarioAtual);


// Converta a data e hora de $played para um timestamp
$timestampPlayed = strtotime($played);

// Calcule o limite de tempo considerando o valor de $time
$limiteTempo = $timestampPlayed + $time;
$limitedata = date('Y-m-d H:i:s', $limiteTempo);



// Calcula a diferença em segundos
$diferencaSegundos = $timestamp1 - $timestampPlayed; 

// faltou quanto tempo falta em segundos, minutos, horas e dias... (que deveria ser o played - $horario atual, mais não tá indo

                $faltatime = date('H:i:s', $diferencaSegundos);
                }
                
                echo "<br><hr>";
                echo "Cod. Jogo: $game";
                echo "<br>";
                echo "Aposta: $bet R$";
                echo "<br>";
                echo "<font color='red'>Player 1: $p1</font>";
                echo "<br>";
               if ($p2 == '') {
               echo "Tempo por turno: $timeturno";
                echo "<br>";
               echo "max. turnos pulados: $limite";
                echo "<br>";
                echo "aguardando adversário.<br><hr>";
                
               exit;
               }
                echo "<font color='blue'>Player 2: $p2</font>";
                echo "<br>";
                echo "Turno do/a: $turn";
                echo "<br>";
                // echo "time: $time";
                // echo "<br>";
                echo "Tempo por turno: $timeturno";
                echo "<br>";
                
                
                
                                // echo "played: $played";
             echo "Final do turno: $limitedata<br>";
    echo "Horário atual: $dataHoraFormatada<br>";
                   echo "max. turnos pulados: $limite";
                
                echo "<br>";
                echo "Play1 pulado/a: $pass1 vezes";
                echo "<br>";
                echo "Play2 pulado/a: $pass2 vezes";
                echo "<br>";
                
                // echo "vencedor: $vencedor";
                // echo "<br>";
                // echo "oponente: $oponente";
                // echo "<br>";
                

if ($turn == $oponente && $vencedor == '') {
echo "É a vez do seu adversário, aguarde ele jogar.<br>";
}






    try {
        $stmt = $pdo->prepare("SELECT COUNT(peca) AS count FROM tabuleiro WHERE player = :p1");
$stmt->bindParam(':p1', $p1, PDO::PARAM_STR); // Use PDO::PARAM_STR para strings
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$pieceCount = $row['count'];
 // tá dando algum erro na soma do resultado>>   echo "Total de peças player(1) $p1: $pieceCount<br>";
    } catch (PDOException $e) {
        echo "Erro na consulta peça p1: " . $e->getMessage();
    }
    
try {
        $stmt = $pdo->prepare("SELECT COUNT(peca) AS count FROM tabuleiro WHERE player = :p2");
$stmt->bindParam(':p2', $p2, PDO::PARAM_STR); // Use PDO::PARAM_STR para strings
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$pieceCount2 = $row['count'];

// tá dando algum erro na soma do resultado>> echo "Total de peças player(2) $p2: $pieceCount2<br>";
        
    } catch (PDOException $e) {
        echo "Erro na consulta peça p2: " . $e->getMessage();
    }
    


if ($pieceCount == 1) {
$vencedor = $p2; 
$msgsis = "O player 1 ficou com 1 peça.";

        // Atualiza a coluna vencedor, msg e played com os valores adequados
        $stmt = $pdo->prepare("UPDATE games SET vencedor = :vencedor, played = :dataehora, msg = :msg WHERE game = :gameselect");
        $stmt->bindParam(':vencedor', $vencedor, PDO::PARAM_INT);
        $stmt->bindParam(':dataehora', $dataHoraFormatada, PDO::PARAM_STR);
        $stmt->bindParam(':gameselect', $game, PDO::PARAM_INT);
        $stmt->bindParam(':msg', $msgsis, PDO::PARAM_STR); // Correção aqui

        if ($stmt->execute()) {
            // echo "Vitóiia por 1 peça registrada com sucesso.";
        } else {
            echo "Erro ao registrar a vitória por 1 peça.";
        }
}




if ($pieceCount2 == 1) {
$vencedor = $p1; 
$msgsis = "O player 2 ficou com 1 peça.";

        // Atualiza a coluna vencedor, msg e played com os valores adequados
        $stmt = $pdo->prepare("UPDATE games SET vencedor = :vencedor, played = :dataehora, msg = :msg WHERE game = :gameselect");
        $stmt->bindParam(':vencedor', $vencedor, PDO::PARAM_INT);
        $stmt->bindParam(':dataehora', $dataHoraFormatada, PDO::PARAM_STR);
        $stmt->bindParam(':gameselect', $game, PDO::PARAM_INT);
        $stmt->bindParam(':msg', $msgsis, PDO::PARAM_STR); // Correção aqui

        if ($stmt->execute()) {
            // echo "Vitóiia por 1 peça registrada com sucesso.";
        } else {
            echo "Erro ao registrar a vitória por 1 peça.";
        }

}
// Defina as variáveis aqui
// ...


// Verifica se é hora de passar o turno
if ($horarioAtual > $limiteTempo && $turn == $oponente && $vencedor == '') {
    $passarves = 1;
    
    if ($turn == $jogador) {$nvturn = $oponente; $_SESSION['nvturn'] = $nvturn;}
    if ($turn == $oponente) {$nvturn = $jogador; $_SESSION['nvturn'] = $nvturn;}
    
    
    
    echo "Já pode passar a o tuno dele<br>";
    // Botão para passar o turno com confirmação JavaScript
    echo '<form action="passar_turno.php" method="post" onsubmit="return confirmPassarTurno();">';
    echo '<input type="hidden" name="gameselect" value="' . $gameselect . '">';
    echo '<input type="hidden" name="played" value="' . $dataHoraFormatada . '">';
    echo '<input type="hidden" name="nvturno" value="' . $nvturn . '">';
    echo '<input type="hidden" name="pass1" value="' . $pass1 . '">';
    echo '<input type="hidden" name="pass2" value="' . $pass2 . '">';
  
    echo '<input type="hidden" name="turnopassado" value="' . $turn . '">';
    
    
        echo '<input type="submit" value="Passar Turno" onclick="return confirm(\'Tem certeza que deseja passar o turno?\');">';    
        echo '</form><br>';



if ($p1 == $jogador && $pass2 >= $limite && $vencedor == '') {
    echo "Playe 2 excedeu o limite de turnos pulados<br>Já pode ser expulso";
    echo '<form action="expulsar.php" method="post" onsubmit="return confirmExpulsar();">';
    echo '<input type="hidden" name="jogador" value="' . $jogador . '">';
    echo '<input type="hidden" name="gameselect" value="' . $gameselect . '">';
    echo '<input type="hidden" name="played" value="' . $dataHoraFormatada . '">';
    echo '<input type="submit" value="Expulsar Adversário" onclick="return confirm(\'Tem certeza que deseja expulsar o oponente?\');">';
     echo '</form><br>';
}



if ($p2 == $jogador && $pass1 >= $limite && $vencedor == '') {
echo "Player 1 excedeu o limite de turnos pulados<br>Já pode ser expulso";
    echo '<form action="expulsar.php" method="post" onsubmit="return confirmExpulsar();">';
    echo '<input type="hidden" name="jogador" value="' . $jogador . '">';
    echo '<input type="hidden" name="gameselect" value="' . $gameselect . '">';
    echo '<input type="hidden" name="played" value="' . $dataHoraFormatada . '">';
    echo '<input type="submit" value="Expulsar Adversário" onclick="return confirm(\'Tem certeza que deseja expulsar o oponente?\');">';
      echo '</form><br>';

}
    
    
    
    
    
    
    

    











    //final do if hora > limite
} else {
    $passarves = 0;
    
}


                
        } catch (PDOException $e) {
            echo "Erro na consulta do jogo selecionado: " . $e->getMessage();
        }
?>








<?php
echo "<hr><br><br>";

//Botoes e msg




if ($turn == $jogador && $vencedor == '') {
    $msgmove = $_SESSION['movemsg'];
echo $msgmove;


// Verifique se a variável de sessão existe e se passou um determinado tempo (aqui alteramos de 5 para 10 segundos)
if (isset($msgmove) && time() - $_SESSION['tempo_criacao'] > 4) {
    // Limpe a variável de sessão
    unset($msgmove);
}

// Select para escolher a peça
echo '<form action="enviarpeca.php" method="post">';
echo '<label for="pecaSelecionada">Escolha uma peça:</label><br>';
echo '<select name="pecaSelecionada" id="pecaSelecionada"><br><br>';

try {
    $stmt = $pdo->prepare("SELECT * FROM tabuleiro WHERE player = :player AND game = :game ORDER BY peca DESC");
    $stmt->bindParam(':player', $jogador, PDO::PARAM_STR);
    $stmt->bindParam(':game', $game, PDO::PARAM_STR);
    $stmt->execute();
    $pecaRows = $stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($pecaRows as $pecaRow) {
        $pecaId = $pecaRow['id'];
        $game = $pecaRow['game'];
        $id2 = $pecaRow['id2'];
        $pecaNome = $pecaRow['peca'];
        $player = $pecaRow['player'];
        $n = $pecaRow['n'];
        $s = $pecaRow['s'];
        $l = $pecaRow['l'];
        $o = $pecaRow['o'];

        echo "<option value='$pecaId' data-game='$game' data-id2='$id2' data-player='$player' data-n='$n' data-s='$s' data-l='$l' data-o='$o'>$pecaNome</option>";
    }
}


    catch (PDOException $e) {
        echo "Erro na consulta: " . $e->getMessage();
    }

    echo '</select><br><br>';

    // Select para escolher a direção
    echo '<label for="direcao">Escolha a direção:</label><br>';
    echo '<select name="direcao" id="direcao"><br><br>';
    echo '<option value="n">Norte</option>';
    echo '<option value="l">Leste</option>';
    echo '<option value="s">Sul</option>';
    echo '<option value="o">Oeste</option>';
    echo '</select><br><br>';




    // Botão para enviar
echo '<input type="submit" value="Enviar" onclick="return confirm(\'Tem certeza que deseja enviar a peça?\');">';
echo '</form>';
}
?>

<?php
if ($vencedor != '') {
echo "<font size='7px'><b>O player $vencedor venceu</b></font><br><br>";
echo "<font size='7px'>$msggame</font><br><br>";



if ($vencedor == $jogador && $pg == '') {
echo "<button>Receber recompensa</button><br><br>";
}

if ($vencedor == $jogador && $pg != '') {
echo "<font size='7px'>Prêmio do jogo já recolhido</font><br><br>";
}
}

echo "<br><br>";
?>









<?php
echo "<br><br><font color='red'><b>$p1<b></font><br><br>";
?>

<center>
    <!-- Div que contém o tabuleiro -->
    <div class="map">
        <?php
        
        include 'conexao.php';
        try {
            $stmt = $pdo->query("SELECT game, id2, peca, player, n, l, s, o, tipo FROM tabuleiro WHERE game = $gameselect");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

            foreach ($rows as $row) {
                $game = $row['game'];
                $id2 = $row['id2'];
                $peca = $row['peca'];
                $player = $row['player'];
                $n = $row['n'];
                $l = $row['l'];
                $s = $row['s'];
                $o = $row['o'];
                $tipo = $row['tipo'];
                
                if ($player == $p1) {$corpeca = 'red';}
                elseif ($player == $p2) {$corpeca = 'blue';}
                elseif ($player == 0) {$corpeca = 'black';}
                
                echo "<div class='square type-$tipo' data-peca='$peca' data-game='$game' data-id2='$id2' data-player='$player' data-n='$n' data-l='$l' data-s='$s' data-o='$o'><font color='$corpeca'>$peca</font></div>";
            }
        } catch (PDOException $e) {
            echo "Erro na consulta do tabulheiro: " . $e->getMessage();
        }
        
        
        ?>
    </div>
    
    
    
   
</div>
<?php
echo "<br><font color='blue'><b>$p2<b></font><br><br>";
?>

<?php
if ($turn == $jogador) {$nvturn = $oponente; $_SESSION['nvturn'] = $nvturn; $nvturnss = $_SESSION['nvturn'];}
    if ($turn == $oponente) {$nvturn = $jogador; $_SESSION['nvturn'] = $nvturn;$nvturnss = $_SESSION['nvturn'];}
?>


<?php
if ($turn == $jogador && $vencedor == '') {
    
// Botão desistir
echo '<br><br>';
    echo '<form id="desistirForm" action="desistir.php" method="post">';
    
    echo '<input type="hidden" name="jogador" value="<?php echo $jogador; ?>">';
    echo '<input type="hidden" name="gameselect" value="<?php echo $game; ?>">';
    echo '<input type="hidden" name="dataehora" value="<?php echo $dataHoraFormatada; ?>">';
    echo '<input type="submit" value="Desistir do jogo" onclick="return confirmDesistir();">';
    
    echo '</form>';
    echo '<br><br>';
}
?>


<script>
function confirmDesistir() {
    return confirm('Tem certeza que deseja desistir?');
}
</script>

<script>
    // Função que atualiza a página a cada 10 segundos quando $turn == $oponente
    function atualizarPagina() {
        if ('<?php echo $turn; ?>' === '<?php echo $oponente; ?>') {
            setTimeout(function() {
                location.reload(); // Recarrega a página
            }, 5000); // 5000 milissegundos = 5 segundos
        }
    }

    // Inicializa a função de atualização
    atualizarPagina();
</script>
</script>



</body>
</html>
