2011-07-12 6 views
0
PHPを通じて

Explinationは私がのdivのの8x8のグリッドを生成していますPHP

に8x8のグリッドを生成します。問題はこれが起こらないようにしています(私のメソッドは変更する必要があるかもしれませんが)ブロックの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] 

。ありがとう!

+1

'$ y'の代わりに' $ max_y - $ y'と言うだけです。 –

+0

um、あなたの例では、それらの数字が正しいことを確信していますか? (特に2,1と3,1) – BenGC

+0

これは単なる例です。 – grep

答えて

3

私はこれがに変化するのと同じくらい簡単だと思う:あなたの コードを使用して変更し、

for($y=8; $y>=1; $y--) 
1
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

しかし($ y = 8; $ y> 2; $ y--)はfor($ y = 8; $ y> 0; $ y--)である必要があります。 – grep

+0

申し訳ありませんが、編集 – genesis

+0

が完了しました。それはまさにあなたが探していたものですか? – genesis

0

は、PHPでのグリッドの構築に関するいくつかのコードを探していた終わりましたそれ...

クラスグリッド{ function __construct() { $ i = 0; $ w = 'white'; $ b = 'black'; $ 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++; 
    }    
    } 

}の書式設定のための

申し訳ありませんが、私は後で書式設定を修正します。

関連する問題