<?php


/***********************************/
/* Classe des couleurs exactes des pions (images fournies) pour les assigner au joueur 
/* pour qu'il sache quelle couleur de pion il a
/***********************************/
class CouleurPion
{
	public $couleurs = [
		'4472c4',
		'92d050',
		'eb93e0',
		'ed7d31',
		'ffd966',
		'00fe00',
		'00fff8',
		'ff0000'
	];
}


/***********************************/
/* Affichage des pions des joueurs lors du déroulé de la partie*/
/***********************************/
function afficher_pions($joueurs)
{
	foreach ($joueurs as $joueur) {
		echo '<img src="img/pions/pion' . $joueur['rang'] . '.png" alt="pion' . $joueur['rang'] . '" width="50"/>';
	}
}

/***********************************/
/* Affichage des joueurs lors du déroulé de la partie */
/***********************************/
function afficher_joueurs(int $idpartie)
{
	$joueurs = getJoueursPartie($idpartie);
	echo '<div class="joueurs">';
	echo '<p>Joueurs : </p>';
	for ($i = 0; $i < count($joueurs); $i++) {
		$joueur = $joueurs[$i];
		$couleur_hex = (new CouleurPion())->couleurs[$i];
		echo '<p class="joueur" style="color:#' . $couleur_hex . ';">' . $joueur['pseudo'] . " (" . $joueur['prenom'] . " " . $joueur['nom'] . ')</p>';
	}
	echo '</div>';
}

/***********************************/
/* Affichage d'une carte du plateau*/
/***********************************/
function afficherCarte(string $nomcarte, int $numero, $joueurs): void
{
	echo '<div class="unecarte">';
	echo '<img src="img/cartes/' . $nomcarte . '" alt="' . $nomcarte . '" width="100" height="160"/>';
	if ($numero != 0 && $numero != 13) {
		echo '<p>' . $numero . '</p>';
	} else {
		echo '<p>X</p>';
	}
	afficher_pions($joueurs);
	echo '</div>';
}

/***********************************/
/* Affichage de la carte de départ*/
/***********************************/
function afficher_depart($joueurs): void
{
	afficherCarte("carteDépart.png", 0, $joueurs);
}

/***********************************/
/* Affichage la carte d'arrivée */
/***********************************/
function afficher_arrivee(): void
{
	afficherCarte("carteArrivée.png", 13, []);
}

/***********************************/
/* Affichage de toutes les cartes du plateau */
/***********************************/
function afficherCartes(int $idpartie, int $tour): void
{
	$cartes = getCards($idpartie);

	echo '<div class="plateau">';
	if ($tour == 0) {
		afficher_depart(getJoueursPartie($idpartie));
		for ($i = 0; $i < sizeof($cartes); $i++) {
			afficherCarte($cartes[$i]['img'], $i + 1, []);
		}
	} else {
		afficher_depart(getJoueursPosition($idpartie, $tour, 0));
		for ($i = 0; $i < sizeof($cartes); $i++) {
			afficherCarte($cartes[$i]['img'], $i + 1, getJoueursPosition($idpartie, $tour, $i + 1));
		}
	}
	afficher_arrivee();
	echo '</div>';
}

/***********************************/
/* Formulaire de sélection de la partie à jouer */
/***********************************/
function formulaire_selection_partie()
{
	$parties = get_parties_id();
	echo '<form class="choisir_partie" method="post" action="#">';
	echo '<select id="idpartie" name="idpartie">';
	foreach ($parties as $partie) {
		echo '<option value="' . $partie . '">' . $partie . '</option>';
	}
	echo '</select>';
	echo '<input type="submit" name="soumettre" value="Valider"/>';
	echo '</form>';
}

/***********************************/
/* Formulaire pour lancer la partie */
/***********************************/
function formulaire_lancer_partie(int $idpartie)
{
	echo '<form class="lancer_partie" method="post" action="#">';
	echo '<input type="submit" name="lancerPartie" value="Lancer la partie"/>';
	echo '<input type="hidden" name="idpartie" value="' . $idpartie . '"/>';
	echo '</form>';
}

function afficher_des($des)
{
	if (empty($des))
		return;

	echo '<div class="des">';
	foreach ($des as $nom => $valeurs) {
		foreach ($valeurs as $valeur) {
			echo '<img src="img/des/de' . $nom . $valeur . '.png" alt="' . $nom . $valeur . '" width="50"/>';
		}
	}
	echo '</div>';
}

function formulaire_selection_des_main(int $idpartie)
{
	echo '<form action="#" method="post">
    <div class="tab">
        <label for="desBleus">Nombre de dés bleus :</label>
        <input type="number" id="desBleus" name="desBleus">
    </div>
    <div class="tab">
        <label for="desJaunes">Nombre de dés jaunes :</label>
        <input type="number" id="desJaunes" name="desJaunes">
    </div>
    <div class="tab">
        <label for="desRouges">Nombre de dés rouges :</label>
        <input type="number" id="desRouges" name="desRouges">
    </div>
    <input type="submit" name="lancerDes" value="Enregistrer la main">
	<input type="hidden" name="idpartie" value="' . $idpartie . '"/>
</form>';
}

?>


<div class="panneau_details_3">

	<div>
		<?php

		$idpartie = -1;

		if (isset($_POST['idpartie'])) {
			$idpartie = (int) $_POST['idpartie'];
		} else if (isset($_GET['idpartie'])) {
			$idpartie = (int) $_GET['idpartie'];
		}

		if ($idpartie == -1) {
			formulaire_selection_partie();
			return;
		}

		if (isset($_POST['lancerPartie'])) {
			lancer_partie($idpartie);
		}
		$des = [];
		if (isset($_POST['lancerDes'])) {
			$des = lancer_les_des($idpartie, (int) $_POST['desBleus'], (int) $_POST['desJaunes'], (int) $_POST['desRouges']);
			if (empty($des)) {
				echo 'Tu sais pas compter ?';
			}
		}
		afficher_joueurs($idpartie);
		afficherCartes($idpartie, get_partie_tour($idpartie));
		afficher_des($des);
		if (partie_est_a_venir($idpartie)) {
			formulaire_lancer_partie($idpartie);
		} else {
			echo 'Tour de ' . get_joueur_actuel($idpartie)['pseudo'] . ' Lancers restants : ' . get_lancers_restants($idpartie);
			formulaire_selection_des_main($idpartie);
		}


		?>
	</div>

</div>