Changeset 54509 in spip-zone


Ignore:
Timestamp:
Nov 15, 2011, 11:06:54 PM (8 years ago)
Author:
patfr@…
Message:

Echecs : ajout d'un séparateur [coloration] afin de coloriser certaines cases
TODO : utilisation de ce paramètre...

Location:
_plugins_/jeux
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/jeux/jeux/diag_echecs.php

    r54506 r54509  
    6868        flip=non                // Faut-il retourner l'echiquier ?
    6969        coords=oui              // Afficher les coordonnees ?
    70 
     70        truecolor=non   // Image finale en 24bit ?
     71        cache=30                // Nombre de jour avant le recalcul de l'image (0 : pas de cache)
    7172*/
    7273require("diag_echecs_init.php");
     
    7475
    7576// creation du diagramme d'echecs
    76 function calcul_diagramme_echecs($position, $indexJeux) {
     77function calcul_diagramme_echecs($position, $coloration, $indexJeux) {
    7778        // qq initialisations
    7879        global $diag_echecs_globales, $jeux_couleurs;
    7980        $flip = jeux_config('flip');
    8081        $taille = intval(jeux_config('taille'));
    81         $nbjour = intval(jeux_config('cache')); //nombre de jour avant recalcul
    82         // ************* case en surbrillance *************
     82        $nbjour = intval(jeux_config('cache')); // nombre de jour avant recalcul
     83        $bordure = intval(jeux_config('bordure'));
     84        $board_size = intval(jeux_config('board_size'));
     85        $font = intval(jeux_config('police'));
     86        $img = jeux_config('img_img');
     87
     88        // ************* cases en surbrillance ************* (obsolète ??)
    8389        $caserouge = jeux_config('rouge');
    8490        $casebleu = jeux_config('bleu');
     
    8692        $casejaune = jeux_config('jaune');
    8793       
    88         $bordure = intval(jeux_config('bordure'));
    89         $board_size = intval(jeux_config('board_size'));
    90         $font = intval(jeux_config('police'));
    91         $img = jeux_config('img_img');
    92        
     94        // dechiffre la surbrillance eventuelle des cases
     95         $surbrillance = array();
     96         $coloration = preg_split("/[\r\n]+/", $coloration);
     97         foreach ($coloration as $ligne)
     98                if ($regs = jeux_parse_ligne_config($ligne))
     99                        $surbrillance[] = array($regs[1], $regs[2]); // (couleur, valeur)
     100
    93101        // dechiffre le code source du diagramme place dans $position
    94102        $position = preg_replace("/\s*[\r\n]+\s*/", '/', trim($position));
     
    131139        // *************** CASE A COLORIER *************************
    132140        // *************** LIGNE A TRACER  *************************
    133         // l'ordre des couleurs peut poser des problèmes dans les superpositions
    134         // pour une gestion plus fine il faudrait gérer l'odre avec un paramètre du genre
     141        // l'ordre des couleurs peut poser des problemes dans les superpositions
     142        // pour une gestion plus fine il faudrait gerer l'odre avec un parametre du genre
    135143        // encouleur=R,a1,a2,c2-c8,B,e4-e5,g8
    136         // qui permetrais de choisir l'ordre de création
     144        // qui permetrais de choisir l'ordre de creation
    137145       
    138146        if (strlen($casejaune)>0 )      {
     
    141149                                $square=$lescases[$j];
    142150                                $hilite = "hjaune";
    143                                 if (strlen($square)==2) { diag_echecs_hilite_square($chessboard,$square,$hilite,$flip); };      //case de couleur
     151                                if (strlen($square)==2) { diag_echecs_hilite_square($chessboard,$square,$hilite,$flip); };      // case de couleur
    144152                                if (strlen($square)==5) { diag_echecs_hilite_line($chessboard, $square, $hilite,$flip); };      // ligne de couleur
    145153                        }
     
    284292        // qq initialisations
    285293        $html = false;
     294        $coloration = $diagramme = '';
    286295       
    287296        // decodage du texte
     
    290299        foreach($tableau as $i => $valeur) if ($i & 1) {
    291300         if ($valeur==_JEUX_TITRE) $html .= "<div class=\"jeux_titre diag_echecs_titre\">{$tableau[$i+1]}</div>";
    292           elseif ($valeur==_JEUX_DIAG_ECHECS) $html .= calcul_diagramme_echecs($tableau[$i+1], $indexJeux);
    293           elseif ($valeur==_JEUX_TEXTE) $html .= $tableau[$i+1];
    294         }
     301          elseif ($valeur==_JEUX_DIAG_ECHECS) {
     302                  if($diagramme) {
     303                          $html .= calcul_diagramme_echecs($diagramme, $coloration, $indexJeux);
     304                          $coloration = $diagramme = '';
     305                  }
     306                  $diagramme = $tableau[$i+1];
     307                  if($coloration) {
     308                          $html .= calcul_diagramme_echecs($diagramme, $coloration, $indexJeux);
     309                          $coloration = $diagramme = '';
     310                  }
     311          } elseif ($valeur==_JEUX_COLORATION) {
     312                  if($coloration && $diagramme) {
     313                          $html .= calcul_diagramme_echecs($diagramme, $coloration, $indexJeux);
     314                          $coloration = $diagramme = '';
     315                  }
     316                  $coloration .= "\n".$tableau[$i+1];
     317                  if($diagramme) {
     318                          $html .= calcul_diagramme_echecs($diagramme, $coloration, $indexJeux);
     319                          $coloration = $diagramme = '';
     320                  }
     321          } elseif ($valeur==_JEUX_TEXTE) $html .= $tableau[$i+1];
     322        }
     323    if($diagramme)
     324          $html .= calcul_diagramme_echecs($diagramme, $coloration, $indexJeux);
    295325       
    296326        return $html;
  • _plugins_/jeux/jeux_config.php

    r54469 r54509  
    5050define('_JEUX_PENDU', 'pendu');
    5151define('_JEUX_DIAG_ECHECS', 'diag_echecs');
     52define('_JEUX_COLORATION', 'coloration');
    5253define('_JEUX_CHESSSTUFF', 'chesstuff');
    5354define('_JEUX_MULTI_JEUX', 'jeu');
     
    7374        'trous' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_TROU, _JEUX_CONFIG, _JEUX_SCORE),
    7475        'pendu' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_PENDU, _JEUX_CONFIG),
    75         'diag_echecs' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_DIAG_ECHECS, _JEUX_CONFIG),
     76        'diag_echecs' => array(_JEUX_TITRE, _JEUX_TEXTE, _JEUX_DIAG_ECHECS, _JEUX_COLORATION, _JEUX_CONFIG),
    7677        'chesstuff' => array(_JEUX_CHESSSTUFF, _JEUX_CONFIG),
    7778  ),
Note: See TracChangeset for help on using the changeset viewer.