getPiece($i, $j); if (($i === 0 || $i === 6) && ($j === 0 || $j === 6)) { if ($piece->getCouleur() !== PieceSquadro::NEUTRE) { echo "Erreur : la case ($i, $j) devrait être NEUTRE.\n"; $success = false; } } elseif ($i >= 1 && $i <= 5 && $j === 0) { if ($piece->getCouleur() !== PieceSquadro::BLANC) { echo "Erreur : la case ($i, $j) devrait être BLANCHE.\n"; $success = false; } } elseif ($i === 6 && $j >= 1 && $j <= 5) { if ($piece->getCouleur() !== PieceSquadro::NOIR) { echo "Erreur : la case ($i, $j) devrait être NOIRE.\n"; $success = false; } } else { if ($piece->getCouleur() !== PieceSquadro::VIDE) { echo "Erreur : la case ($i, $j) devrait être VIDE.\n"; $success = false; } } } } echo $success ? "Initialisation du plateau vérifiée.\n" : "Échec de l'initialisation du plateau.\n"; return $success; } public static function testCoordDestination() { $plateau = new PlateauSquadro(); $success = true; echo "\nVérification de la destination des coordonnées pour une pièce blanche...\n"; $coordDest = $plateau->getCoordDestination(1, 0); if ($coordDest !== [1, 1]) { echo "Erreur : destination incorrecte pour la pièce blanche.\n"; $success = false; } echo "\nVérification de la destination des coordonnées pour une pièce noire...\n"; $coordDest = $plateau->getCoordDestination(6, 1); if ($coordDest !== [3, 1]) { echo "Erreur : destination incorrecte pour la pièce noire.\n"; $success = false; } echo $success ? "Coordonnées de destination vérifiées avec succès.\n" : "Échec de la vérification des coordonnées de destination.\n"; return $success; } public static function testSerialization() { $plateau = new PlateauSquadro(); $json = $plateau->toJson(); $plateauDeserialized = PlateauSquadro::fromJson($json); $success = true; echo "\nVérification de la sérialisation et désérialisation du plateau...\n"; for ($i = 0; $i < 7; $i++) { for ($j = 0; $j < 7; $j++) { $pieceOriginal = $plateau->getPiece($i, $j); $pieceDeserialized = $plateauDeserialized->getPiece($i, $j); if ($pieceOriginal->getCouleur() !== $pieceDeserialized->getCouleur()) { echo "Erreur : la couleur de la pièce ($i, $j) ne correspond pas après désérialisation.\n"; $success = false; } if ($pieceOriginal->getDirection() !== $pieceDeserialized->getDirection()) { echo "Erreur : la direction de la pièce ($i, $j) ne correspond pas après désérialisation.\n"; $success = false; } } } echo $success ? "Sérialisation et désérialisation vérifiées avec succès.\n" : "Échec de la vérification de la sérialisation et désérialisation.\n"; return $success; } } PlateauSquadroTest::testInitialisationPlateau(); PlateauSquadroTest::testCoordDestination(); PlateauSquadroTest::testSerialization(); ?>