-
Pętla
Chciałbym zrobić takie coś, zeby zapisało mi się do tablicy wszystkie możliwe wyniki tj :
mam kwadrat 7x7
xxxxxxx
xxxxxxx
xxxxxxx
xxxYxxx
xxxxxxx
xxxxxxx
xxxxxxx
jestem na pozycji Y, jest to (0,0)
Jak napisać pętlę, dzięki której uzyskam wszystkie 48 współrzędnych "x" ? tj np
x[0]=-3; y[0] = -3
x[1]=-2; y[1] = -3
...
x[...]=0; y[...]=1;
...
x[...]=1; y[...]=0;
...
x[46]=2; y[46]=3;
x[47]=3; y[47]=3;
etc.
Pętla obojętnie jaka, język docelowy - delphi, ale to bez różnicy, bo pętle wszędzie takie same praktycznie, może być też pehap..
-
Kod:
<?php
function generuj_wspolrzedne_tablicy($border_length) {
$center = ceil($border_length/2);
$tablica = array();
for ($y=0; $y < $border_length; $y++) {
for ($x=0; $x < $border_length; $x++) {
$tablica[$y*$border_length+$x][0] = $center - $border_length + $x;
$tablica[$y*$border_length+$x][1] = $center - $border_length + $y;
}
}
return $tablica;
}
$tab = generuj_wspolrzedne_tablicy(7);
echo '<pre>';
var_dump($tab);
echo '</pre>';
?>
W tym momencie działa tylko dla nieparzystych liczb. Co ma robic w przypadku parzystych? Wtedy taka tablica nie ma srodkowego elementu.
-
Skoro Y ma offset 3,3 (liczac od indeksu 0) to mozna zacząć liczyć zaczynając od x[i]=i-3; y[j]=j-3;
i puszczasz takie dwa fory dla x i y i masz arraya ladnego