Вход Регистрация
Файл: phpBB3/includes/captcha/captcha_gd_wave.php
Строк: 241
<?php
/**
*
* @package VC
* @version $Id$
* @copyright (c) 2006 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* Wave3D CAPTCHA
*
* @author Robert Hetzler
* @package VC
*/
class captcha
{
    var 
$width        360;
    var 
$height        96;

    function 
execute($code$seed)
    {
        global 
$starttime;

        
// seed the random generator
        
mt_srand($seed);

        
// set height and width
        
$img_x $this->width;
        
$img_y $this->height;

        
// Generate image
        
$img    imagecreatetruecolor($img_x$img_y);
        
$x_grid mt_rand(610);
        
$y_grid mt_rand(610);

        
// Ok, so lets cut to the chase. We could accurately represent this in 3d and
        // do all the appropriate linear transforms. my questions is... why bother?
        // The computational overhead is unnecessary when you consider the simple fact:
        // we're not here to accurately represent a model, but to just show off some random-ish
        // polygons

        // Conceive of 3 spaces.
        // 1) planar-space (discrete "pixel" grid)
        // 2) 3-space. (planar-space with z/height aspect)
        // 3) image space (pixels on the screen)
        // resolution of the planar-space we're embedding the text code in
        
$plane_x    100;
        
$plane_y    30;

        
$subdivision_factor 3;

        
// $box is the 4 points in img_space that correspond to the corners of the plane in 3-space
        
$box = array(
            
'upper_left'    => array(
                
'x' => mt_rand(515),
                
'y' => mt_rand(1015)
            ),
            
'upper_right'    => array(
                
'x' => mt_rand($img_x 35$img_x 19),
                
'y' => mt_rand(1017)
            ),
            
'lower_left'    => array(
                
'x' => mt_rand($img_x 45$img_x 5),
                
'y' => mt_rand($img_y 15$img_y 0),
            ),
        );

        
$box['lower_right'] = array(
            
'x' => $box['lower_left']['x'] + $box['upper_left']['x'] - $box['upper_right']['x'],
            
'y' => $box['lower_left']['y'] + $box['upper_left']['y'] - $box['upper_right']['y'],
        );

        
// TODO
        
$background imagecolorallocate($imgmt_rand(155255), mt_rand(155255), mt_rand(155255));
        
imagefill($img00$background);
        
$black imagecolorallocate($img000);

        
$random = array();
        
$fontcolors = array();

        for (
$i 0$i 15; ++$i)
        {
            
$random[$i] = imagecolorallocate($imgmt_rand(120255), mt_rand(120255), mt_rand(120255));
        }

        
$fontcolors[0] = imagecolorallocate($imgmt_rand(0120), mt_rand(0120), mt_rand(0120));

         
$colors = array();

        
$minr mt_rand(2030);
        
$ming mt_rand(2030);
        
$minb mt_rand(2030);

        
$maxr mt_rand(150230);
        
$maxg mt_rand(150230);
        
$maxb mt_rand(150230);

        for (
$i = -30$i <= 30; ++$i)
        {
            
$coeff1 = ($i 12) / 45;
            
$coeff2 $coeff1;
            
$colors[$i] = imagecolorallocate($img, ($coeff2 $maxr) + ($coeff1 $minr), ($coeff2 $maxg) + ($coeff1 $ming), ($coeff2 $maxb) + ($coeff1 $minb));
        }

        
// $img_buffer is the last row of 3-space positions (converted to img-space), cached
        // (using this means we don't need to recalculate all 4 positions for each new polygon,
        // merely the newest point that we're adding, which is then cached.
        
$img_buffer = array(array(), array());

        
// In image-space, the x- and y-offset necessary to move one unit in the x-direction in planar-space
        
$dxx = ($box['upper_right']['x'] - $box['upper_left']['x']) / ($subdivision_factor $plane_x);
        
$dxy = ($box['upper_right']['y'] - $box['upper_left']['y']) / ($subdivision_factor $plane_x);

        
// In image-space, the x- and y-offset necessary to move one unit in the y-direction in planar-space
        
$dyx = ($box['lower_right']['x'] - $box['upper_left']['x']) / ($subdivision_factor $plane_y);
        
$dyy = ($box['lower_right']['y'] - $box['upper_left']['y']) / ($subdivision_factor $plane_y);

        
// Initial captcha-letter offset in planar-space
        
$plane_offset_x mt_rand(38);
        
$plane_offset_y mt_rand1215);

        
// character map
        
$map $this->captcha_bitmaps();

        
// matrix
        
$plane = array();

        
// for each character, we'll silkscreen it into our boolean pixel plane
        
for ($c 0$code_num strlen($code); $c $code_num; ++$c)
        {
            
$letter $code[$c];

            for (
$x $map['width'] - 1$x >= 0; --$x)
            {
                for (
$y $map['height'] - 1$y >= 0; --$y)
                {
                    if (
$map['data'][$letter][$y][$x])
                    {
                        
$plane[$y $plane_offset_y + (($c 1) ? : -1)][$x $plane_offset_x] = true;
                    }
                }
            }
            
$plane_offset_x += 11;
        }

        
// calculate our first buffer, we can't actually draw polys with these yet
        // img_pos_prev == screen x,y location to our immediate left.
        // img_pos_cur == current screen x,y location
        // we calculate screen position of our
        // current cell based on the difference from the previous cell
        // rather than recalculating from absolute coordinates
        // What we cache into the $img_buffer contains the raised text coordinates.
        
$img_pos_prev    $img_buffer[0][0] = array($box['upper_left']['x'], $box['upper_left']['y']);
        
$cur_height        $prev_height $this->wave_height(00$subdivision_factor);
        
$full_x            $plane_x $subdivision_factor;
        
$full_y            $plane_y $subdivision_factor;

        for (
$x 1$x <= $full_x; ++$x)
        {
            
$cur_height        $this->wave_height($x0$subdivision_factor);
            
$offset            $cur_height $prev_height;
            
$img_pos_cur    = array($img_pos_prev[0] + $dxx$img_pos_prev[1] + $dxy $offset);

            
$img_buffer[0][$x]    = $img_pos_cur;
            
$img_pos_prev        $img_pos_cur;
            
$prev_height        $cur_height;
        }

        for (
$y 1$y <= $full_y; ++$y)
        {
            
// swap buffers
            
$buffer_cur        $y 1;
            
$buffer_prev    $buffer_cur;

            
$prev_height    $this->wave_height(0$y$subdivision_factor);
            
$offset            $prev_height $this->wave_height(0$y 1$subdivision_factor);
            
$img_pos_cur    = array($img_buffer[$buffer_prev][0][0] + $dyxmin($img_buffer[$buffer_prev][0][1] + $dyy $offset$img_y 1));

            
// make sure we don't try to write off the page
            
$img_pos_prev    $img_pos_cur;

            
$img_buffer[$buffer_cur][0]    = $img_pos_cur;

            for (
$x 1$x <= $full_x; ++$x)
            {
                
$cur_height        $this->wave_height($x$y$subdivision_factor) + $this->grid_height($x$y1$x_grid$y_grid);

                
// height is a z-factor, not a y-factor
                
$offset            $cur_height $prev_height;
                
$img_pos_cur    = array($img_pos_prev[0] + $dxx$img_pos_prev[1] + $dxy $offset);

                
// height is float, index it to an int, get closest color
                
$color            $colors[intval($cur_height)];
                
$img_pos_prev    $img_pos_cur;
                
$prev_height    $cur_height;

                
$y_index_old intval(($y 1) / $subdivision_factor);
                
$y_index_new intval($y $subdivision_factor);
                
$x_index_old intval(($x 1) / $subdivision_factor);
                
$x_index_new intval($x $subdivision_factor);

                if (!empty(
$plane[$y_index_new][$x_index_new]))
                {
                    
$img_pos_cur[1]    += $this->wave_height($x$y$subdivision_factor1) - 30 $cur_height;
                    
$color            $colors[20];
                }
                
$img_pos_cur[1] = min($img_pos_cur[1], $img_y 1);
                
$img_buffer[$buffer_cur][$x] = $img_pos_cur;

                
// Smooth the edges as much as possible by having not more than one low<->high traingle per square
                // Otherwise, just
                
$diag_down    = (empty($plane[$y_index_old][$x_index_old]) == empty($plane[$y_index_new][$x_index_new]));
                
$diag_up    = (empty($plane[$y_index_old][$x_index_new]) == empty($plane[$y_index_new][$x_index_old]));

                
// natural switching
                
$mode = ($x $y) & 1;

                
// override if it requires it
                
if ($diag_down != $diag_up)
                {
                    
$mode $diag_up;
                }

                if (
$mode)
                {
                    
//        +-/              /
                    // 1    |/        2     /|
                    //        /            /-+
                    
$poly1 array_merge($img_buffer[$buffer_cur][$x 1], $img_buffer[$buffer_prev][$x 1], $img_buffer[$buffer_prev][$x]);
                    
$poly2 array_merge($img_buffer[$buffer_cur][$x 1], $img_buffer[$buffer_cur][$x], $img_buffer[$buffer_prev][$x]);
                }
                else
                {
                    
//                    -+
                    // 1    |        2     |
                    //        +-              
                    
$poly1 array_merge($img_buffer[$buffer_cur][$x 1], $img_buffer[$buffer_prev][$x 1], $img_buffer[$buffer_cur][$x]);
                    
$poly2 array_merge($img_buffer[$buffer_prev][$x 1], $img_buffer[$buffer_prev][$x], $img_buffer[$buffer_cur][$x]);
                }

                
imagefilledpolygon($img$poly13$color);
                
imagefilledpolygon($img$poly23$color);
            }
        }

        
// Output image
        
header('Content-Type: image/png');
        
header('Cache-control: no-cache, no-store');
        
//$mtime = explode(' ', microtime());
        //$totaltime = $mtime[0] + $mtime[1] - $starttime;

        //echo $totaltime . "<br />n";
        //echo memory_get_usage() - $tmp;
        
imagepng($img);
        
imagedestroy($img);
    }

    function 
wave_height($x$y$factor 1$tweak 0.7)
    {
        
// stretch the wave. TODO: pretty it up
        
$x $x/180;
        
$y $y/4;
        return ((
sin($x / ($factor)) + sin($y / ($factor))) * 10 $tweak);
    }

    function 
grid_height($x$y$factor 1$x_grid$y_grid)
    {
        return ((!(
$x % ($x_grid $factor)) || !($y % ($y_grid $factor))) ? 0);
    }

    function 
captcha_bitmaps()
    {
        return array(
            
'width'        => 9,
            
'height'    => 13,
            
'data'        => array(
                
'A' => array(
                    array(
0,0,1,1,1,1,0,0,0),
                    array(
0,1,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,1,1,1,1,1,1,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'B' => array(
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'C' => array(
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'D' => array(
                    array(
1,1,1,1,1,1,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,1,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'E' => array(
                    array(
0,0,1,1,1,1,1,1,1),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,1,1,1,1,1,1,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
0,0,1,1,1,1,1,1,1),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'F' => array(
                    array(
0,0,1,1,1,1,1,1,0),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'G' => array(
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,1,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'H' => array(
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,1,1,1,1,1,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'I' => array(
                    array(
0,1,1,1,1,1,1,1,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,1,1,1,1,1,1,1,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'J' => array(
                    array(
0,0,0,0,0,0,1,1,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,0,1,0,0,0,0,1,0),
                    array(
0,0,0,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'K' => array(
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,1,0,0,0),
                    array(
1,0,0,0,1,0,0,0,0),
                    array(
1,0,0,1,0,0,0,0,0),
                    array(
1,0,1,0,0,0,0,0,0),
                    array(
1,1,0,0,0,0,0,0,0),
                    array(
1,0,1,0,0,0,0,0,0),
                    array(
1,0,0,1,0,0,0,0,0),
                    array(
1,0,0,0,1,0,0,0,0),
                    array(
1,0,0,0,0,1,0,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'L' => array(
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
0,0,1,1,1,1,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'M' => array(
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,1,1,0,0,0,1,1,0),
                    array(
0,1,0,1,0,1,0,1,0),
                    array(
0,1,0,0,1,0,0,1,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'N' => array(
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,1,0,0,0,0,0,0,1),
                    array(
1,0,1,0,0,0,0,0,1),
                    array(
1,0,0,1,0,0,0,0,1),
                    array(
1,0,0,0,1,0,0,0,1),
                    array(
1,0,0,0,0,1,0,0,1),
                    array(
1,0,0,0,0,0,1,0,1),
                    array(
1,0,0,0,0,0,0,1,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'O' => array(
                    array(
0,0,0,1,1,1,0,0,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,0,0,1,1,1,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'P' => array(
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'Q' => array(
                    array(
0,0,1,1,1,1,0,0,0),
                    array(
0,1,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,1,0,0,1,0),
                    array(
1,0,0,0,0,1,0,1,0),
                    array(
0,1,0,0,0,0,1,0,0),
                    array(
0,0,1,1,1,1,0,1,0),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'R' => array(
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
1,1,1,1,1,1,0,0,0),
                    array(
1,0,1,0,0,0,0,0,0),
                    array(
1,0,0,1,0,0,0,0,0),
                    array(
1,0,0,0,1,0,0,0,0),
                    array(
1,0,0,0,0,1,0,0,0),
                    array(
1,0,0,0,0,0,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'S' => array(
                    array(
0,0,1,1,1,1,1,1,1),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
1,1,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'T' => array(
                    array(
1,1,1,1,1,1,1,1,1),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'U' => array(
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'V' => array(
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,0,0,1,0,1,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'W' => array(
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,1,0,0,0,1),
                    array(
1,0,0,1,0,1,0,0,1),
                    array(
1,0,1,0,0,0,1,0,1),
                    array(
1,1,0,0,0,0,0,1,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'X' => array(
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,0,0,1,0,1,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,1,0,1,0,0,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'Y' => array(
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,0,0,1,0,1,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'Z' => array(
                    array(
1,1,1,1,1,1,1,1,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,1,0,0),
                    array(
0,0,0,0,0,1,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,1,0,0,0,0,0),
                    array(
0,0,1,0,0,0,0,0,0),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,1,1,1,1,1,1,1,1),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'1' => array(
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,1,1,0,0,0,0),
                    array(
0,0,1,0,1,0,0,0,0),
                    array(
0,1,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,1,1,1,1,1,1,1,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'2' => array(
                    array(
0,0,0,1,1,1,0,0,0),
                    array(
0,0,1,0,0,0,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,1,0,0),
                    array(
0,0,0,0,0,1,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,1,0,0,0,0,0),
                    array(
0,0,1,0,0,0,0,0,0),
                    array(
0,1,1,1,1,1,1,1,1),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'3' => array(
                    array(
0,0,0,1,1,1,1,0,0),
                    array(
0,0,1,0,0,0,0,1,0),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,1,1,0,0),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,0,1,0,0,0,0,1,0),
                    array(
0,0,0,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'4' => array(
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,1,1,0),
                    array(
0,0,0,0,0,1,0,1,0),
                    array(
0,0,0,0,1,0,0,1,0),
                    array(
0,0,0,1,0,0,0,1,0),
                    array(
0,0,1,0,0,0,0,1,0),
                    array(
0,1,1,1,1,1,1,1,1),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'5' => array(
                    array(
1,1,1,1,1,1,1,1,1),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
0,1,0,0,0,0,0,0,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'6' => array(
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,0,0,0,0,0,0),
                    array(
1,0,0,1,1,1,1,0,0),
                    array(
1,0,1,0,0,0,0,1,0),
                    array(
1,1,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'7' => array(
                    array(
1,1,1,1,1,1,1,1,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,1,0),
                    array(
0,0,0,0,0,0,1,0,0),
                    array(
0,0,0,0,0,1,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,1,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'8' => array(
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
1,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,0),
                    array(
0,0,1,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
                
'9' => array(
                    array(
0,0,0,1,1,1,1,0,0),
                    array(
0,0,1,0,0,0,0,1,0),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,1,1),
                    array(
0,0,1,1,1,1,1,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,0,0,0,0,0,0,0,1),
                    array(
0,1,0,0,0,0,0,0,1),
                    array(
0,0,1,0,0,0,0,1,0),
                    array(
0,0,0,1,1,1,1,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                    array(
0,0,0,0,0,0,0,0,0),
                ),
            )
        );
    }
}

?>
Онлайн: 0
Реклама