Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP + HTML + ?]Szachy na WWW
Forum PHP.pl > Forum > PHP
arogant
Witam.
Jestem uczniem 2 Gim i muszę zrobić projekt.
Wybrałem z kolegą projekt informatyczny.
Nasz nauczyciel informatyki powiedział żebyśmy sobie wybrali jakiś temat. Po długim namyśle stwierdziliśmy że zrobimy szachy przez WWW. Oto mój plan:

1. Normalne szachy 8 x 8 pól czarno białe

2. Figury tak samo. Jaśniejsza czerń i ciemniejsza biel.

3. Szachy będą online:

a) 2 graczy:

- 1 gracz przy jednym PC

- 2 gracz przy drugim PC

b) logowanie do swojego konta, aby zapisywały się wyniki

- proste logowanie na stronę

c) ranking rozegranych rund:

- dniowy

- tygodniowy

- całkowity

d) może coś więcej

4. Szachy w PHP + HTML + SQL (jeśli to możliwe)

5. Możliwe że w ta gra będzie dostępna dla wszystkich uczniów szkoły i chciałbym zakodować (darmowo) skrypt


i teraz mam do Was pytanie (mam Was za ekspertów):

- Czy te Szachy będzie dało zrobić się w samym PHP + HTML czy muszę dodać do swojej głowy jakieś języki?

- Jakie to będą języki?

- Czy jest to dobry pomysł?

- Co muszę zrobić aby 2 gracze na różnych komputerach grali przeciwko sobie?


Jakby co mam mocny serwer VPS ale mój nauczyciel powiedział, że jak projekt będzie fajny to postawi mi te Szachy na szkolnym serwerze dedykowanym.


Jeśli mi się uda to dodam skrypt do ogólnego dostępu :)


Pozdrawiam i prosze o pomoc :)
SmokAnalog
Porywasz się na duży projekt. Teoretycznie PHP + HTML wystarczy, ale wtedy gracze będą musieli odświeżać stronę, żeby sprawdzić czy przeciwnik już wykonał ruch. Niezbyt to wygodne, powinieneś do tego włączyć JavaScript.
arogant
aha dzięki. No wiesz. Mam czas do czerwca a nie mam co robić. Własny hosting juz zrobiłem, serwer MC też smile.gif to teraz jak jest okazja a to ma mi pomóc dostać się do technikum informatycznego to czemu nie. A jaki ma to być ten skrypt JS? Odświeża całą strone czy tylko okno gry?
kamil4u
Cytat
- Czy te Szachy będzie dało zrobić się w samym PHP + HTML czy muszę dodać do swojej głowy jakieś języki?

Da się. Ale przydałoby się coś jeszcze.

Cytat
- Jakie to będą języki?

CSS - wygląd
JavaScript - AJAX + wybór konkretnego ruchu za pomocą myszki( "przesuwanie figur")

Cytat
- Co muszę zrobić aby 2 gracze na różnych komputerach grali przeciwko sobie?

Najłatwiej będzie jak poczytasz jak się robi chat-y - zasada jest identyczna
Warto dodać, że w HTML 5 możesz operować na socket-ach -> websocket

Generalnie projekt dość trudny( biorąc pod uwagę Twój wiek ). Masz dość ogólne pytania to dostałeś ogólne odpowiedzi. Jak coś zadaj konkretne pytanie. Powodzenia!
arogant
aż taki tępy nie jestem smile.gif
jak widać strone fajną zrobiłem -> polishhost.pl
tylko będzie najtrudniej z tym odświeżaniem i żeby 2 komputery mogły grać ;/
pomysle z panem i kolegą jeszcze nad tym dokładniej bo Pan może nam pomagać. Dzięki za pomoc. Później się odezwe
em1X
Nie takie znowu trudne. Tworzysz rekord w tabeli GRA, blokujesz go dla dwóch konkretnych użytkowników i do przodu. JavaScriptem "ping" do serwera AJAXem, żeby sprawdzić czy były jakieś zmiany.

Nadchodzące problemy:
1) Będzie sporo walidacji, figury można przesunąć tylko w określony sposób.
2) Algorytm obliczenia czy mamy doczynienia z "szachem" oraz "szach matem".
3) Sposób zapisu ruchów do bazy, przechowywanie ruchów w bazie.

1) Przydałoby się trochę porządnego programowania obiektowego. Martwię się, że porywasz się z motyką na słońce, ale powodzenia.
2) Co do Twojej wspaniałej strony, zainteresuj się w Google co to HTML INJECTION.
com
tak jak już powiedziano bez JS i Ajaxa to raczej tak jak powiedziano porywanie z motka na słońce... zawsze można podpatrzeć u innych, nie jesteś pierwszym który na to wpadł necie jest pełno szachów w html i js wink.gif
em1X
Struktura bazy:


Jeżeli chcesz zmniejszyć skalę skomplikowania, doradzałbym wstawić dwa przyciski SZACH oraz SZACH MAT, gracze sami by o tym decydowali kiedy gra powinna się zakończyć. Pozostaje tak czy siak walidacja ruchu każdej z figur.
arogant
Cytat(em1X @ 27.09.2013, 20:39:38 ) *
2) Co do Twojej wspaniałej strony, zainteresuj się w Google co to HTML INJECTION.


HTML INJECTION?? Slyszalem o php injection ale o html nie, dzięki za pomoc

A co do reszty to tak:

1. Zrobiłem już skrypt, który generuje plansze
2. Mam już zrobione pionki, i tak:
a)
  1. <td bgcolor=silver width=50> <img src="<? $bionek ?>"/> <font color=yellow></font></td>

- co zrobić aby ten skrypt pokazywał pionek? Próbowałem już wielu sposobów
- $bpionek = "pionki/biale/pionek.gif"; to zmienna która poklazuje gdzie jest obrazek pionka
cool.gif powiadacie zrobić to razem z SQL? Coś da się wykombinować
c) AJAX i JS?? będzie mały problem bo nie ogarniam AJAXa smile.gif ale sie poucze smile.gif

Są jeszcze jakieś zatwierdzenia do tego?
SmokAnalog
Kolego, nie chcę Ci podcinać skrzydeł, ale Twój powyższy post tylko potwierdza, że nie ukończysz tych szachów. Też byłem w wieku gimnazjalnym i pamiętam, że też wszystkie projekty wydawały mi się wykonalne, ale tak nie było. Mówiąc krótko, nie masz jeszcze wystarczających umiejętności.

Ale jeśli koniecznie chcesz zrobić grę, może jakaś prostsza gra jednoosobowa? Wisielec lub Saper są stosunkowo łatwe w implementacji (Wisielec łatwy, Saper w miarę łatwy).
em1X
Cytat(arogant @ 28.09.2013, 08:50:55 ) *
- co zrobić aby ten skrypt pokazywał pionek? Próbowałem już wielu sposobów
- $bpionek = "pionki/biale/pionek.gif"; to zmienna która poklazuje gdzie jest obrazek pionka


pionki/biale/pionek.gif? Ty masz przecież figury wyświetlać, począwszy od zwykłych pionków, po konie, wieże, króla, królową itd.
Poza tym adres, który podałeś w zmiennej to adres relatywny, do tego trzeba na początku dołożyć ścieżkę bezwzględną katalogu, z którego uruchamiasz skrypt. Jeżeli jest to folder /gra, to cała ścieżka powinna wyglądać /gra/pionki/biale/pionek.gif.

Cytat(arogant @ 28.09.2013, 08:50:55 ) *
cool.gif powiadacie zrobić to razem z SQL? Coś da się wykombinować


A jak inaczej chcesz zapisywać stan pionków na planszy? Jeżeli bez bazy to chyba Tobie chodzi o zrobienie szachów stricte client-side za pomocą JavaScriptu. Wtedy do czego Ci PHP potrzebny?


Cytat(arogant @ 28.09.2013, 08:50:55 ) *
c) AJAX i JS?? będzie mały problem bo nie ogarniam AJAXa smile.gif ale sie poucze smile.gif


Sporo nauki przed Tobą.

Cytat(arogant @ 28.09.2013, 08:50:55 ) *
Są jeszcze jakieś zatwierdzenia do tego?


Nie rozumiem pytania.
arogant
dobra czyli widze że tego nie zrobie ;(

Macie może jakieś pomysły na projekt informatyczny, pomijając Wisielca i Sapera?
SmokAnalog
A co jest nie tak z wisielcem i saperem? smile.gif

Napisz co Cię kręci, najlepiej zahaczyć o jakieś Twoje zainteresowania, żeby Ci się przyjemnie tworzyło. Lepiej też zrobić projekt mniejszy, ale go dopracować. Przy Twoim obecnym stanie wiedzy stworzenie szachów zajęłoby Ci jakiś rok.
yayco
Duzo łatwiej by było użyć warstw do stworzenia szachownicy (mozesz wykorzystac jakiś grid system) następnie nadać każdemu polu #id i .klase. Dzięki #id możesz się odwoływać do biblioteki jquery co sprawi że wystarczą tylko podstawy jezyka javascipt. Zas dzieki klasie mozesz nadac styl szachownicy (kod bedzie duzo bardziej przejrzysty).

Kod
.blackfield {
background-color: #000;
}
.whitefield {
background-color: #fff;
}
buliq
  1. <? $bionek ?>

To nie to samo co:
  1. <?= $bionek ?>

Czy też:
  1. <?php echo $bionek ?>



Cytat
a to ma mi pomóc dostać się do technikum informatycznego

Co to za wał?
Wazniak96
1. Tak jak napisali powyżej. Nie masz wystarczającej wiedzy.
2. Strona twojego hostingu jezt skąpa i mało bogata w treść. Nie wykupiłbym usługi na takim hostingu patrząc choćby na regulamin. Na zagranicznych stronach można znaleźć znacznie lepsze style dla hostingu za free. Na pewno będzie lepiej to wyglądać.
3. Spróbuj stworzyć coś w stylu serwisu społecznościowego twojej szkoły/ własną interpretację dziennika elektronicznego / coś w stylu dysku online. Możesz działać tutaj tylko na PHP, HTML/CSS i SQL. Nie są też takie proste także na projekt się nadają smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.