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
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Sposobów na to masz wiele... Zrobić tablicę 2-wymiarową i sparsujesz literę w formularzu na indeks, a liczbę z formularza zmniejszysz o 1 i w ten sposób uzyskasz współrzędne start. Sparsować całość z formularza na indeks 1-wymiarowej tablicy. Zrobić na starcie nie formularz ale obrazek gdzie klikasz pokazując to miejsce, a wybór między 1- a 2-wymiarowym zapisem startu masz dowolny. Jak widzisz to niektóre z propozycji na określenie pola startowego.
Co do ruchów możliwych to znów zależy od notacji szachownicy. Jeśli masz tylko 1 ruch pokazać, to 2-wymiarowa jest lepszym rozwiązaniem, bo prościej pokazać możliwe pola na ruch. Wystarczy wybrać wszystkie kombinacje indeksów tablicowych z zakresu: (+/-3, +/-1) oraz (+/-1, +/-3), gdzie wyniki muszą być w przedziale (0,7).
Przykład:
Na początek sprecyzujmy, że litery to kolumny od lewej do prawej, a wiersze to liczby od dołu do góry rosnące, czyli punkt (0, 0) to lewy dolny róg (taki jest zapis szachowy i tego się trzymam).
Pole: B5 to start, co daje nam w macierzy pole o współrzędnych (1,4)
Możliwości:
+3,-1 -> (4, 3)
+3,+1 -> (4, 5)
-3,-1 -> (-2, 3)
-3, +1 -> (-2, 5)
+1,-3 -> (2, 1)
+1,+3 -> (2, 7)
-1,-3 -> (0, 1)
-1,+3 -> (0, 7)
Teraz eliminujemy wszystkie mające choć jedną współrzędną spoza zakresu <0,7>
Wylatują więc propozycja 3 i 4, a pozostałe są w zakresie.
Pozostaje Ci już tylko zwizualizować wynik. Sądzę, że najprościej poprzez zrobienie DIV z szachownicą jako background i wobec niego pozycjonować obrazki majace pokazywać obrazek skoczka oraz możliwych jego posunięć. Jak? Temu DIV nadaj position:relative a wewnątrz niego pozycjonuj img z obrazkami (IMG:style_emoticons/default/smile.gif) To chyba najprostsze rozwiązanie jakie można tu wymyślić (IMG:style_emoticons/default/winksmiley.jpg)

EDIT: Bym zapomniał... Pozycjonowanie na stronie masz zawsze od lewego górnego rogu, a nie lewego dolnego jak w szachach, więc musisz wyniki nieco skonwertować, ale to już banał i powinieneś sobie poradzić.

A poza tym mój pomysł to jedna z wielu możliwych wersji rozwiązania tego problemu, jak sam możesz przeczytać. Więc nie musisz go tak implementować jak napisałem, ale zrobić po swojemu.

Ten post edytował thek 20.10.2009, 21:50:43
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: 5.04.2026 - 19:12