function manageIndice($carteIndice, $carteMotif) { $contenu = ''; $contenu .= '<div class="question"><p>Carte indice choisi : ' . $carteIndice . '</p>'; $contenu .= '<p>Carte motif choisi : ' . $carteMotif . '</p></div>'; $contenu .= '<h2>Réponse</h2>'; $matrix = $_SESSION['matrix']; switch ($carteMotif) { // Dans quel quadran case 'Q': if ($matrix[1][0] == $carteIndice || $matrix[1][1] == $carteIndice || $matrix[2][0] == $carteIndice || $matrix[2][1] == $carteIndice) { $matrixAnswer = Matrix::init(); $matrixAnswer[1][0] = 'X'; $matrixAnswer[1][1] = 'X'; $matrixAnswer[2][0] = 'X'; $matrixAnswer[2][1] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } else { if ($matrix[1][2] == $carteIndice || $matrix[1][3] == $carteIndice || $matrix[2][2] == $carteIndice || $matrix[2][3] == $carteIndice) { $matrixAnswer = Matrix::init(); $matrixAnswer[1][2] = 'X'; $matrixAnswer[1][3] = 'X'; $matrixAnswer[2][2] = 'X'; $matrixAnswer[2][3] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } else { if ($matrix[3][0] == $carteIndice || $matrix[3][1] == $carteIndice || $matrix[4][0] == $carteIndice || $matrix[4][1] == $carteIndice) { $matrixAnswer = Matrix::init(); $matrixAnswer[3][0] = 'X'; $matrixAnswer[3][1] = 'X'; $matrixAnswer[4][0] = 'X'; $matrixAnswer[4][1] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } else { if ($matrix[3][2] == $carteIndice || $matrix[3][3] == $carteIndice || $matrix[4][2] == $carteIndice || $matrix[4][3] == $carteIndice) { $matrixAnswer = Matrix::init(); $matrixAnswer[3][2] = 'X'; $matrixAnswer[3][3] = 'X'; $matrixAnswer[4][2] = 'X'; $matrixAnswer[4][3] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } } } } break; // Au centre // Au centre case 'C': $matrixCenter = Matrix::init(); $matrixCenter[2][1] = 'X'; $matrixCenter[2][2] = 'X'; $matrixCenter[3][1] = 'X'; $matrixCenter[3][2] = 'X'; if ($matrix[2][1] == $carteIndice || $matrix[2][2] == $carteIndice || $matrix[3][1] == $carteIndice || $matrix[3][2] == $carteIndice) { $matrixAnswer = $matrixCenter; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } else { $matrixAnswer = Matrix::reverseMatrix($matrixCenter); $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } break; // Colonne impair // Colonne impair case 'I': $matrixImpair = Matrix::init(); $matrixImpair[1][0] = 'X'; $matrixImpair[2][0] = 'X'; $matrixImpair[3][0] = 'X'; $matrixImpair[4][0] = 'X'; $matrixImpair[1][2] = 'X'; $matrixImpair[2][2] = 'X'; $matrixImpair[3][2] = 'X'; $matrixImpair[4][2] = 'X'; if ($matrix[1][0] == $carteIndice || $matrix[1][2] == $carteIndice || $matrix[2][0] == $carteIndice || $matrix[2][2] == $carteIndice || $matrix[3][0] == $carteIndice || $matrix[3][2] == $carteIndice || $matrix[4][0] == $carteIndice || $matrix[4][2] == $carteIndice) { $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixImpair); } else { $matrixAnswer = Matrix::reverseMatrix($matrixImpair); $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } break; // Diagonale // Diagonale case 'D': if ($matrix[1][0] == $carteIndice || $matrix[2][1] == $carteIndice || $matrix[3][2] == $carteIndice || $matrix[4][3] == $carteIndice) { $matrixDiag = Matrix::init(); $matrixDiag[1][0] = 'X'; $matrixDiag[2][1] = 'X'; $matrixDiag[3][2] = 'X'; $matrixDiag[4][3] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixDiag); } else { if ($matrix[1][3] == $carteIndice || $matrix[2][2] == $carteIndice || $matrix[3][1] == $carteIndice || $matrix[4][0] == $carteIndice) { $matrixDiag = Matrix::init(); $matrixDiag[1][3] = 'X'; $matrixDiag[2][2] = 'X'; $matrixDiag[3][1] = 'X'; $matrixDiag[4][0] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixDiag); } else { $matrixDiag = Matrix::init(); $matrixDiag[1][1] = 'X'; $matrixDiag[1][2] = 'X'; $matrixDiag[2][0] = 'X'; $matrixDiag[3][0] = 'X'; $matrixDiag[4][1] = 'X'; $matrixDiag[4][2] = 'X'; $matrixDiag[2][3] = 'X'; $matrixDiag[3][3] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixDiag); } } break; // Moitié de gauche / droite // Moitié de gauche / droite case 'M': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); if ($col <= 1) { $matrixAnswer = Matrix::init(); for ($line = 1; $line <= 4; $line++) { for ($c = 0; $c <= 1; $c++) { $matrixAnswer[$line][$c] = 'X'; } } $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } else { $matrixAnswer = Matrix::init(); for ($line = 1; $line <= 4; $line++) { for ($c = 2; $c <= 3; $c++) { $matrixAnswer[$line][$c] = 'X'; } } $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } break; // Moitié de haut / bas // Moitié de haut / bas case 'N': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); if ($line <= 2) { $matrixAnswer = Matrix::init(); for ($line = 1; $line <= 2; $line++) { for ($c = 0; $c <= 3; $c++) { $matrixAnswer[$line][$c] = 'X'; } } $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } else { $matrixAnswer = Matrix::init(); for ($line = 3; $line <= 4; $line++) { for ($c = 0; $c <= 3; $c++) { $matrixAnswer[$line][$c] = 'X'; } } $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixAnswer); } break; // Forme de L // Forme de L case 'G': if ($matrix[2][0] == $carteIndice || $matrix[3][0] == $carteIndice || $matrix[4][0] == $carteIndice || $matrix[4][1] == $carteIndice || $matrix[4][2] == $carteIndice) { $matrixL = Matrix::init(); $matrixL[2][0] = 'X'; $matrixL[3][0] = 'X'; $matrixL[4][0] = 'X'; $matrixL[4][1] = 'X'; $matrixL[4][2] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixL); } else { if ($matrix[1][1] == $carteIndice || $matrix[1][2] == $carteIndice || $matrix[1][3] == $carteIndice || $matrix[2][3] == $carteIndice || $matrix[3][3] == $carteIndice) { $matrixL = Matrix::init(); $matrixL[1][1] = 'X'; $matrixL[1][2] = 'X'; $matrixL[1][3] = 'X'; $matrixL[2][3] = 'X'; $matrixL[3][3] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixL); } else { $matrixL = Matrix::init(); $matrixL[1][0] = 'X'; $matrixL[4][3] = 'X'; $matrixL[2][1] = 'X'; $matrixL[2][2] = 'X'; $matrixL[3][1] = 'X'; $matrixL[3][2] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixL); } } break; // Ligne // Ligne case 'L': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); $matrixLine = Matrix::init(); $matrixLine[$line][0] = 'X'; $matrixLine[$line][1] = 'X'; $matrixLine[$line][2] = 'X'; $matrixLine[$line][3] = 'X'; $contenu .= LL::prefixTableIndice; $contenu .= print_table($matrixLine); break; // Autour de // Autour de case 'A': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); if ($matrix[$line][$col + 1]) { $listSide[] = $matrix[$line][$col + 1]; } if ($matrix[$line][$col - 1]) { $listSide[] = $matrix[$line][$col - 1]; } if ($matrix[$line + 1][$col]) { $listSide[] = $matrix[$line + 1][$col]; } if ($matrix[$line - 1][$col]) { $listSide[] = $matrix[$line - 1][$col]; } shuffle($listSide); $contenu .= '<p class="answer">Autour de ' . $carteIndice . ' se trouve <strong>' . $listSide[0] . '</strong></p>'; break; // Sur la même ligne se trouve // Sur la même ligne se trouve case 'X': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); for ($i = 0; $i <= 3; $i++) { if ($i == $col) { continue; } $listLine[] = $matrix[$line][$i]; } shuffle($listLine); $contenu .= '<p class="answer">Sur la même ligne que ' . $carteIndice . ' se trouve <strong>' . $listLine[0] . '</strong></p>'; break; // Sur la même colonne se trouve // Sur la même colonne se trouve case 'Y': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); for ($i = 1; $i <= 4; $i++) { if ($i == $line) { continue; } $listCol[] = $matrix[$i][$col]; } shuffle($listCol); $contenu .= '<p class="answer">Sur la même colonne que ' . $carteIndice . ' se trouve <strong>' . $listCol[0] . '</strong></p>'; break; // Symétrie // Symétrie case 'S': list($line, $col) = Matrix::searchInMatrix($matrix, $carteIndice); // Symétrie horizontal if ($line == 1) { $check[] = array(4, $col); } else { if ($line == 2) { $check[] = array(3, $col); } else { if ($line == 3) { $check[] = array(2, $col); } else { if ($line == 4) { $check[] = array(1, $col); } } } } // Symétrie vertical if ($col == 0) { $check[] = array($line, 3); } else { if ($col == 1) { $check[] = array($line, 2); } else { if ($col == 2) { $check[] = array($line, 1); } else { if ($col == 3) { $check[] = array($line, 0); } } } } shuffle($check); $coord = $check[0]; $randomAnswer = $_SESSION['matrix'][$coord[0]][$coord[1]]; $contenu .= '<p class="answer">En symétrie vertical ou horizontal avec ' . $carteIndice . ' se trouve <strong>' . $randomAnswer . '</strong></p>'; break; } return $contenu; }