kajacx

krizovka_v3

Jan 17th, 2012
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.05 KB | None | 0 0
  1. <html>
  2.     <head>
  3.         <style>
  4.             .tab1 tr td {
  5.                 min-width: 20px;
  6.             }
  7.             .viditelne {
  8.                 border: 1px solid black;
  9.                 text-align: center;
  10.             }
  11.             .tajenka {
  12.                 background-color: yellow;
  13.             }
  14.         </style>
  15.     </head>
  16.     <body>
  17. <?php
  18. class Krizovka
  19. {
  20.  private $radky = array();
  21.  public $zobrazuj = true;
  22.  
  23.  public function pridej($ot,$od,$taj)
  24.  {
  25.   $this->radky[] = new Radek($ot,$od,$taj);
  26.  }
  27.  
  28.  private function pred()
  29.  {
  30.   $pole = array();
  31.   foreach($this->radky as $r) $pole[] = $r->posun;
  32.   return max($pole);
  33.  }
  34.  
  35.  private function za()
  36.  {
  37.   $pole = array();
  38.   foreach($this->radky as $r) $pole[] = $r->delka() - $r->posun - 1;
  39.   return max($pole);  
  40.  }
  41.  
  42.  public function tabulka()
  43.  {
  44.   $text = "<table class=\"tab1\">";
  45.   foreach($this->radky as $r) $text .= $r->vypis($this->pred(),$this->za());
  46.   $text .= "</table>";
  47.   return $text;
  48.  }
  49. }
  50.  
  51. class Radek
  52. {
  53.  public $otazka = "";
  54.  public $odpoved = "";
  55.  public $posun = 0;
  56.  
  57.  public function delka()
  58.  {
  59.   return strlen($this->odpoved);
  60.  }
  61.  
  62.  public function __construct($ot, $od, $pos)
  63.  {
  64.   $this->otazka = $ot;
  65.   $this->odpoved = $od;
  66.   $this->posun = $pos;
  67.  }
  68.  
  69.  public function vypis($pr,$z)
  70.  {
  71.   $text = "<tr><td>";
  72.   $text .= $this->otazka;
  73.   $text .= "</td>";
  74.   // mezery pred
  75.   for($i = 0; $i < $pr - $this->posun; $i++)
  76.    $text .= "<td></td>";
  77.   // odpoved po pismenech
  78.   $slovo = str_split($this->odpoved);
  79.   for($i = 0; $i<count($slovo); $i++) {
  80.       if($i==$this->posun) $text .= "<td class=\"viditelne tajenka\">";
  81.       else $text .= "<td class=\"viditelne\">";
  82.       $text .= $slovo[$i];
  83.       $text .= "</td>";
  84.   }
  85.   // mezery za
  86.  
  87.   $text .= "</tr>";
  88.   return $text;
  89.  }
  90. }
  91.  
  92. //$r = new Radek("Jaká auta se vyrábí v Mladé Boleslavi?","Škoda",3);
  93. //echo $r->delka();
  94.  
  95.  
  96. $kriz = new Krizovka();
  97. $kriz->pridej("Jaká auta se vyrábí v Mladé Boleslavi?","Skoda",3);
  98. $kriz->pridej("Kde sídlí SPŠSE?","Liberec",0);
  99. $kriz->pridej("smrdi to","hovno",1);
  100. echo $kriz->tabulka();
  101. //var_dump($kriz);
  102.  
  103. ?>
  104. </html>
  105. </body>
Add Comment
Please, Sign In to add comment