Создание сетки 8x8 в PHP - PullRequest
       17

Создание сетки 8x8 в PHP

0 голосов
/ 13 июля 2011

Explination

Через PHP я генерирую сетку 8x8 элементов div. Проблема заключается не в том, чтобы это произошло (хотя мои методы могут нуждаться в изменении), а в том, что координаты x и y блоков (сохраняются как id).

Код

class Grid
{
    function __construct()
    {
        $i = 0;
        $w = 'white';
        $b = 'black';
        for($y=1; $y<=8; $y++)
        {
            for($x=1; $x<=8; $x++)
            {
                if($i % 2)
                    echo "<div class='$w' id='{$x}{$y}'></div>";
                else
                    echo "<div class='$b' id='{$x}{$y}'></div>";    
                $i++;

            }
            echo "<br clear='all' /> \n";
            $i++; //offset color for next row   
        }            
    }
}

Задача

Хотя этот класс выполняет свою работу по отображению сетки, проблема в том, что координаты не в том, как они мне нужны. Координаты выводятся следующим образом из-за того, как отображается HTML (представьте каждую скобку в качестве позиции div на экране):

note: [x coord, y coord]

[1,1] [2,1] [3,1] 
[1,2] [2,2] [3,2] 
[1,3] [2,3] [3,3]

Мне действительно нужно «обратное», чтобы оно начиналось слева внизу, а координаты напоминали координаты типичной сетки, то есть:

[1,3] [2,3] [3,3] 
[1,2] [2,2] [3,2] 
[1,1] [2,1] [3,1]

Я уверен, что есть много способов сделать это, поэтому ответ пойдет на самое элегантное решение, а не на самое быстрое. Спасибо!

Ответы [ 3 ]

3 голосов
/ 13 июля 2011

Я думаю, что это так же просто, как перейти на:

 for($y=8; $y>=1; $y--)
1 голос
/ 13 июля 2011
class Grid
{
    function __construct()
    {
        $i = 0;
        $w = 'white';
        $b = 'black';
        for($y=8; $y>0; $y--)
        {
            for($x=1; $x<=8; $x++)
            {
                if($i % 2)
                    echo "<div class='$w' id='{$x}{$y}'></div>";
                else
                    echo "<div class='$b' id='{$x}{$y}'></div>";    
                $i++;

            }
            echo "<br clear='all' /> \n";
            $i++; //offset color for next row   
        }            
    }
}

и все готово

0 голосов
/ 20 декабря 2013

Искал какой-то код относительно построения сетки в PHP, использовал ваш код и изменил его ...

класс Сетка { функция __construct () { $ i = 0; $ w = 'white'; $ b = 'черный'; $ y = 1; // размер сетки Y $ y_max = 10; $ x_max = 10;

    while($y <= $y_max){
        $x      = 1; //grid size X 
        while($x <= $x_max){
            $color = ($i % 2 ? $w : $b);

            echo "<div class='".$color."' id='{$x}{$y}'> $x , $y </div>";

            $i++;
            $x++;
        }
        echo "<br clear='all' /> \n";
        $i++; //offset color for next row   
        $y++;
    }            
  } 

}

Извините за форматирование, я исправлю форматирование позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...