<?php

/*
 * Soubor:   ctecka-myslenek.php
 * Datum:    15. 1. 2009 (poslední úprava: 26. 8. 2009)
 * Autor:    Ondra Geršl, ondra.gersl@gmail.com
 * Projekt:  Čtečka myšlenek (kouzená tabulka)
 * Popis:    Jednoduchý program, který "uhodne" číslo, které si myslíte.
 *           Číslo si vyberete podle předem určeného algoritmu.
 *           Výsledkem je zobrazení čísla, které si myslíte.
 */



define('VERZE''0.1.8');  /**< verze skriptu */
define('POSLEDNI_UPRAVA''26. 8. 2009');  /**< poslední úprava */



/** uživatelská nastavení */

define('RADKU'10);  /**< počet řádků tabulky */
define('SLOUPCU'20);  /**< počet sloupců tabulky */


/** ošetření uživatelských nastavení */

if ((RADKU SLOUPCU) < 9)  // pokud je počet buněk v tabulce menší než index první buňky, do které můžeme vepsat uhodnotelný znak
  
die('Pro nastavené uživatelské hodnoty by se vygenerovala špatná data. Pro správné fungování je nuté tyto údaje opravit.');



/** nastavení skriptu */

$priklad rand(10RADKU SLOUPCU);  /**< číslo příkladu výpočtu */

/** vytvoření ukázkového odečtení jednotlivých cifer od čísla */
$prikladOdecteni $prikladMezivypocet $priklad;
$prikladDelka strlen($priklad);  /**< počet znaků čísla */
for ($i 0$i $prikladDelka$i++) {  // postupně projdeme všechny cifry čísla
  
$prikladCislo substr($priklad$i1);  /**< zpracovávaná cifra */
  
$prikladOdecteni .= ' &minus; ' $prikladCislo;  // postupné sestavování řetězce
  
$prikladMezivypocet -= $prikladCislo;  // mezivýpočet pro určení výsledného čísla
}
$prikladOdecteni .= ' = ' $prikladMezivypocet;  /**< příklad odečtení jednotlivých cifer od čísla */



/*
 * Vrací náhodný alfanumerický znak
 * @return vrací náhodné písmeno (malé nebo velké) či číslici
 */
function vratNahodnyZnak()
{
  do
    
$c rand(48122);
  while (!
ctype_alnum($c));  // dokud číslo náhodného znaku nereprezentuje v ASCII alfanumerický znak

  
return chr($c);
}




$obsah '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="cs">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta http-equiv="content-language" content="cs">
  <title>Čtečka myšlenek (kouzelná tabulka)</title>
  <meta name="author" content="Ondra Geršl; mailto:ondra.gersl@seznam.cz">

<style type="text/css" media="all">

body {
  background-color : #eee;
  color : #000;
  font-family : Verdana, "Geneva CE", lucida, sans-serif;
  font-size : 85%;
  line-height : 1.6;
  text-align : center;
}

a {
  color : #036;
}
a:hover, a:focus {
  text-decoration : none;
}

h1 {
  font-size : 200%;
}

ol {
  margin : 2em 1em;
  text-align : left;
}

hr {
  border : 1px solid #777;
  width : 90%;
}

p {
  width : 80%;
  margin : 1em auto;
}

table {
  margin : 0 auto;
  text-align : right;
}
td {
  background-color : #ccc;
  border : 1px solid #aaa;
  height : 1.5em;
  width : 3em;
}
td small {
  display : block;
  margin-right : 0.2em;
}
td big {
  background-color : #000;
  color : #fff;
  display : block;
  float : left;
  text-align : center;
  width : 1.2em;
}

big#znak {
  font-size : 1000%;
}

p.copyright {
  font-size : 60%;
}

</style>

</head>
<body>


<h1>Čtečka myšlenek (kouzelná tabulka)</h1>

<ol>
  <li><strong>Vyberte si číslo od 10 do ' 
RADKU SLOUPCU '</strong> (např. ' $priklad ')</li>
  <li><strong>Odečtěte jednotlivé cifry od původního čísla</strong> (např. ' 
$prikladOdecteni ')</li>
  <li><strong>Výsledné číslo vyhledejte v tabulce a zapamatujte si znak uvedený vedle čísla</strong></li>
  <li><strong>Soustředění můžete vynechat, není zapotřebí :-)</strong></li>
  <li><strong>Podívejte se na znak pod tabulkou a měl by to být ten samý, který jste našli u vypočítaného čísla</strong></li>
</ol>


<table>' 
"\n\n";



$i 0;  /**< čítač počtu znaků v tabulce */
$z vratNahodnyZnak();  /**< náhodný znak, který si má uživatel myslet */

for ($x 0$x <= RADKU 1$x++) { // prochází řádky tabulky
  
$obsah .= "  <tr>\n";

  for (
$y 0$y <= SLOUPCU 1$y++) { // prochází sloupce tabulky
    
$i++;  // načítáme další znak
    
if (($i 9) != 0)  // pokud není bezezbytku dělitelné 9 (číslo 9 protože buňky pole jsou označeny číslem v desítkové soustavě)
      
$znak vratNahodnyZnak();  // vrátí náhodný znak
    
else  // jinak myšlený znak
      
$znak $z;

    
$obsah .= "    <td><small>" $i "</small> <big>" $znak "</big></td>\n";
  }

  
$obsah .= "  </tr>\n\n";
}



$obsah .= '</table>


<p>
Znak, který jste našli, by měl být:<br>
<big id="znak">' 
$z '</big>
</p>


<hr>


<p><small>Díky <a href="http://ctecka-myslenek.main.cz/">http://ctecka-myslenek.main.cz/</a> za nápad :-)</small></p>


<h2>Upravte si tento skript podle sebe!</h2>

<p><small>Tento PHP skript je licencován jako svobodný software podle licence
<abbr title="GNU General Public Licence">GNU GPL</abbr> verze 3
anebo kterékoliv pozdější verze.<br>
To v&nbsp;praxi znamená, že jej můžete používat, studovat, šířit,
upravovat a vydávat modifikované verze, pokud zachováte licenci.<br>
(znění licence v&nbsp;<a href="licence.txt">textovém formátu</a> dostupném lokálně nebo v <a
href="http://www.gnu.org/licenses/licenses.html#GPL">dalších formátech</a> dostupných
na internetu)</small></p>


<h2>Kompletní zdrojový kód skriptu</h2>

<p><a href="ctecka-myslenek.phps">Zobrazit</a> (.phps) nebo
<a href="ctecka-myslenek.tar.gz">stáhnout</a> (.tar.gz) nebo
<a href="ctecka-myslenek.zip">stáhnout jinak</a> (.zip)</p>


<p><small>Verze ' 
VERZE ' (poslední úprava: ' POSLEDNI_UPRAVA ')
| Valid <a href="http://validator.w3.org/check?uri=' 
rawUrlEncode($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) . '">HTML 4.01 Transitional</a>
| Valid <a href="http://jigsaw.w3.org/css-validator/validator?uri=' 
rawUrlEncode($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) . '">CSS 2.1</a></p>

<p>Pokud máte chuť mi něco sdělit, můžete mi napsat na e-mail
<a href="mailto:ondr&#97;&#46;gersl&#64;gm&#97;il&#46;com">
ondr&#97;&#46;gersl&#64;gm&#97;il&#46;com</a> nebo se podívat na můj
<a href="http://itty.cz/">weblog</a>.</small></p>


<hr>


<p class="copyright"><small>
Copyright (C)2009 Ondra Geršl
</small></p>

<p class="copyright"><small>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
</small></p>

<p class="copyright"><small>
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
</small></p>

<p class="copyright"><small>
You should have received a copy of the GNU General Public License
along with this program.  If not, see
<a href="http://www.gnu.org/licenses/">&lt;http://www.gnu.org/licenses/&gt;</a>.
</small></p>


</body>
</html>'
;


echo 
$obsah;


/* konec souboru ctecka-myslenek.php */
?>