[php] generator |
Autor |
Wiadomość |
gaku

Pomógł: 109 razy Posty: 1095
|
Wysłany: 14-12-2007, 15:13
|
|
|
picer, Kod: | <img src="img/b_w.gif>"</td></tr></table> | coś tu nie pasuję ? |
_________________ Pisanie do mnie na gg w sprawie forum mocno nie wskazane
<Cvbge> A szkolisz sie na jakiego informatyka?
http://webmastera.republika.pl/
<QSi> na zajebistego |
|
|
|
 |
Gadatliwa Kasia
|
|
|
|
Widmo


Pomógł: 180 razy Posty: 2435
|
|
|
|
 |
gaku

Pomógł: 109 razy Posty: 1095
|
Wysłany: 15-12-2007, 08:57
|
|
|
przyglądnąłem się temu kodowi jeszcze raz i często pojawiają się takie błędy. Popraw je |
_________________ Pisanie do mnie na gg w sprawie forum mocno nie wskazane
<Cvbge> A szkolisz sie na jakiego informatyka?
http://webmastera.republika.pl/
<QSi> na zajebistego |
|
|
|
 |
picer
Posty: 12
|
Wysłany: 09-09-2008, 20:57
|
|
|
Witam ponownie
Jeśli mam taki ciąg znaków:
Cytat: | rnbqkbnr/pp1ppppp/6p1/8/8/8/PPPPPPPP/RNBQKBNR |
I chciałbym to poupychać do 64 zmiennych począwszy od $a8, $b8,(...)$h8 aż do $a1, $b1,(...)$h1. Pragnę gdy jest literka aby zmienna przyjmowała jej wartość, natomiast gdy w ciągu znaków znajduje się cyfra oznaczała ona ilość kolejnych zmiennych o wartości np. 'none'
Wiemtylko , że mogę podzielić ten ciąg znaków na porcje które powinny się znaleźć w kolejnych liniach.
Kod: | list($linia[8],$linia[7], $linia[6], $linia[5], $linia[4], $linia[3], $linia[2], $linia[1]) = explode("/", $ciagznakow); |
Nie wiem w jaki sposób nadać te wartości. Wiecie jak mi pomóc?
[ Dodano: 11-09-2008, 23:55 ]
To może inne pytanie. Jak podzielić wyraz na litery, tak aby każda litera miała swoją zmienną? |
|
|
|
 |
Seraphe

Pomógł: 38 razy Posty: 606
|
Wysłany: 12-09-2008, 13:58
|
|
|
picer napisał/a: | To może inne pytanie. Jak podzielić wyraz na litery, tak aby każda litera miała swoją zmienną? |
Żeby podzielić używasz explode().
Co do przyporządkowania, zapewne trza foreach() użyć. |
_________________ "Dostałem warna i teraz obniżone zachowanie będę miał na semestr" |
|
|
|
 |
gaku

Pomógł: 109 razy Posty: 1095
|
Wysłany: 12-09-2008, 15:03
|
|
|
teoretycznie jeżeli masz np
$zmienna="wartosc";
to
$zmienna[0] odpowiada pierwszej literce, $zmienna[1] odpowiada drugiej... i tak dalej |
_________________ Pisanie do mnie na gg w sprawie forum mocno nie wskazane
<Cvbge> A szkolisz sie na jakiego informatyka?
http://webmastera.republika.pl/
<QSi> na zajebistego |
|
|
|
 |
picer
Posty: 12
|
Wysłany: 12-09-2008, 19:02
|
|
|
No tak ale jeśli moja zmienna to: $wyraz[1] a chcę przypisać nowym zmiennym każdą literkę?
explode() tu nie zadziała, bo nie ma separatora(delimiter) |
|
|
|
 |
gaku

Pomógł: 109 razy Posty: 1095
|
Wysłany: 12-09-2008, 20:22
|
|
|
wybacz, ale możesz mi rozrysować to ? |
_________________ Pisanie do mnie na gg w sprawie forum mocno nie wskazane
<Cvbge> A szkolisz sie na jakiego informatyka?
http://webmastera.republika.pl/
<QSi> na zajebistego |
|
|
|
 |
Radek


Pomógł: 955 razy Posty: 4614
|
Wysłany: 12-09-2008, 22:04
|
|
|
picer, co Ty chcesz osiagnac? do czego Ci to? Chcesz zapelniac pamiec przypisujac kazdej literce ze stringa zmienna? Bez sensu. Ale sprobuj tego:
Kod: |
$string = 'asaakn3en32db3dbsdf3dvasdXSDHsdsd';
$alfa = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
for ( $i = 0, $l = strlen($string); $i < $l; $i++ )
{
eval('$'.$alfa[$i].' = ' . $string[$i] . ';');
}
echo $a;
echo $b;
|
pisane na sucho. |
|
|
|
 |
picer
Posty: 12
|
Wysłany: 13-09-2008, 02:18
|
|
|
Co chcę osiągnąć?
Skrypt przerabiający notację szachową FEN na obraz pozycji(ułożenia pionków).
Krótko z czym to sie je:
Mamy tabele z kwardratów 8x8. Kwadraty mają naprzemian dwa kolory: biały i czarny. Jest 8 lini, które są oddzielane znakiem "/". Jeśli odczytujemy literę to odpowiada ona jakiemuś obrazkowi pakowanemu do kwadratu, jeżeli natomiast odczytamy cyfrę, to oznacza ona ilość kolejnych pustych kwadratów.
Przykładowy zapis FEN: rnbq1bnr/2pppp2/8/7p/8/8/PPPPPPPP/RNBQKBNR
Póki coś to spłodziłem coś takiego:
Kod: |
<?php
$kolor = 0;
$fen = 'rnbq1bnr/2pppp2/8/7p/8/8/PPPPPPPP/RNBQKBNR';
list($linia8, $linia7, $linia6, $linia5, $linia4, $linia3, $linia2, $linia1) = explode('/', $fen);
echo '<table border="0">';
for($nr = 8; $nr > 0; $nr--) //powtarza czynność dla każdej linii
{
echo '<tr>';
for($nr2 = 7; $nr2 >= 0; $nr2--) //powtarza czynność dla każdej wartości z linii
{
if(is_numeric('$linia' . $nr . '[' . $nr2 . ']') and '$linia' . $nr . '[' . $nr2 . ']' > 0 and '$linia' . $nr . '[' . $nr2 . ']' <= 8) //jeśli wartość należy do zbioru liczb od 1 do 8
{
while('$linia' . $nr . '[' . $nr2 . ']' == 0)
{
if($kolor == 0)
{
echo '<td bgcolor="E8CEA5" width="32" height="32"></td>'; //białe
$kolor++;
}
elseif($kolor == 1)
{
echo '<td bgcolor="A58B5A" width="32" height="32"></td>'; //czarne
$kolor--;
}
else{break; echo'błąd';}
'$linia' . $nr . '[' . $nr2 . ']' - 1;
}
}
elseif(is_numeric('$linia' . $nr . '[' . $nr2 . ']') and '$linia' . $nr . '[' . $nr2 . ']' < 0 or '$linia' . $nr . '[' . $nr2 . ']' > 8) //jeśli wartość nie należy do zbioru od 1 do 8
{
break; echo 'błąd';
}
else //jeżeli wartść nie jest liczbą
{
if($kolor == 0)
{
echo '<td bgcolor="E8CEA5" width="32" height="32"><img src="img/' . '$linia' . $nr . '[' . $nr2 . ']' . '.gif"></td>'; //białe
$kolor++;
}
elseif($kolor == 1)
{
echo '<td bgcolor="A58B5A" width="32" height="32"><img src="img/' . '$linia' . $nr . '[' . $nr2 . ']' . '.gif"></td>'; //czarne
$kolor--;
}
else{break; echo 'błąd';}
}
}
echo '</tr>';
}
echo '</table>';
|
Jak możecie się domyśleć to nie działa tak jak bym chciał. - Tworzy się tabelka a do każdego pola ładuje się <img src="img/' . '$linia' . $nr . '[' . $nr2 . ']' . '.gif">(w źródle widać np. <img src="img/$linia8[7].gif">) |
|
|
|
 |
Radek


Pomógł: 955 razy Posty: 4614
|
Wysłany: 13-09-2008, 12:29
|
|
|
bo obejmujesz zmienne w ' i ' - a tak się nie robi.
Kod: | echo '<img src="img/' . $linia . $nr[$nr2] . '.gif" />'; |
|
|
|
|
 |
Gadatliwa Kasia
|
|
|
|
picer
Posty: 12
|
Wysłany: 14-09-2008, 22:02
|
|
|
no fakt...
Ale jak cały proces przejdzie wychodzi teraz tak:
Kod: | <img src="img/.gif"> |
[ Dodano: 15-09-2008, 00:22 ]
Ale jeśli wywołam przez echo np. $linia8[7] to pokaże mi odpowiednia wartość.
[ Dodano: 22-09-2008, 00:20 ]
Wiem co jest nie tak. Jeśli wywołuję:
Kod: | $linia . $nr . '[' . $nr2 . ']' |
to wynik jest taki że: zmienna $linia jest pusta bo nie jest zdefiniowana.
Ja chcę wywoływać zmienną o postaci:
Kod: | $linia + $nr + [$nr2] |
Czyli np. zmienną
I moje pytanie teraz: jak zrobić żeby $linia nie oznaczało wartości zmiennej $linia tylko żeby było elementem w nazwie zmiennej. |
|
|
|
 |
|