예제 #1
0
 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;
 }