Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> formularz a "szachy", jak tego dokonać?
dutagamo
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 18.06.2009

Ostrzeżenie: (0%)
-----


Witam
Zaczynam się uczyć tego języka i zastanawia mnie pewna sprawa:
Poprzez formularz chciałbym aby wywołało mi tablicę podobną do szachów i na danym polu umieścić punkt lub cokolwiek innego. i zasada jego działania chciałbym aby była podobna do skoczka w szachach. By pokazało miejsca na które on może skoczyć.
Jak to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Witam!

Tabela (szachownica) to tylko sposób prezentacji danych. Zanim zaczniesz ją generować musisz ustalić statusy dla pól. Szachownica w Twoim systemie to tablica ( 8x8 ). Stawiasz skoczka na pierwszym polu
  1. $array[1][1] = 1; // 1 - obecna pozycja skoczka


Teraz wystarczy zmienić wartości 8 innych pól. Tyle jest (w idealnym przypadku) możliwości przesunięcia skoczka (ale normalnie większość wypadnie poza szachownicą).

  1. $x = 1; $y = 1; //pozycja skoczka
  2.  
  3. $array[x+2][y + 1] = 2; // 2 - pole gdzie mogę skoczyć
  4. $array[x+2][y - 1] = 2;
  5.  
  6. $array[x-2][y + 1] = 2;
  7. $array[x-2][y - 1] = 2;
  8.  
  9. $array[x+1][y + 2] = 2;
  10. $array[x+1][y - 2] = 2;
  11.  
  12. $array[x-1][y + 2] = 2;
  13. $array[x-1][y - 2] = 2;


Oczywiście powinieneś sprawdzać czy dane pole na szachownicy istnieje i czy jest wolne itd, ale to taki zarys idei. Z taką tablica bez problemu narysujesz stosowną tabelkę (2 pętelki).

  1. <table>
  2.  
  3. foreach( $array as $row )
  4. {
  5. <tr>
  6. foreach( $row as $one )
  7. {
  8. <td>
  9. if( $one == 1 ) tu stoi skoczek;
  10. if( $one == 2 ) tu może skoczyć;
  11. </td>
  12. }
  13. <tr>
  14. }
  15.  
  16. </table>


Taki pseudo kod, formatowanie do dupy, ale pisałem to bezpośrednio na forum (tab nie działa tak jakbym chciał).



Pozdrawiam!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 10:24