Gra w kółko krzyżyk

0

Cześć, ostatnio postanowiłem sobie napisać kółko krzyżyk, uprzedzam, że jestem newbie i kod nie jest najwyższej jakości. Mam problem, otóż na click wywołuje się funkcja, która wrzuca X w kliknięte miejsce i randomowo losuje i wkleja kółko w wolne miejsce. Wszystko jest okej do czasu, gdy dochodzi się do ostatniego wolnego pola, wtedy strona się wysypuje. Załączam pełny plik .js
https://paste.ofcode.org/ym4GJhFR8rcKEYKcJAB6gS

0
let isOccupied = [8];

tablica na jeden element

for(i=0; i<=8; i++)

petla ktora wykona sie 9 razy

teraz analogicznie tam gdzie masz

<=8

zapewne masz blad

  1. wszystkie liczby (jak np 8 czy 9) daj do zmiennej
  2. nie rob porownania <= przerob kod na <
    3*) nie latwiej bedzie Ci przerobic to na kod z tablica dwuwymiarowa?
0
fasadin napisał(a):
let isOccupied = [8];

tablica na osiem elementow

for(i=0; i<=8; i++)

petla ktora wykona sie 9 razy

teraz analogicznie tam gdzie masz

<=8

zapewne masz blad

  1. wszystkie liczby (jak np 8 czy 9) daj do zmiennej
  2. nie rob porownania <= przerob kod na <
    3*) nie latwiej bedzie Ci przerobic to na kod z tablica dwuwymiarowa?

Rzeczywiście, tablica powinna być 9 a nie 8 elementowa, pomyliłem z indeksem, zmieniłem w pętli i nadal nie działa

0
Nindzia napisał(a):

Załączam pełny plik .js
https://paste.ofcode.org/ym4GJhFR8rcKEYKcJAB6gS

Daj całą stronę (nie tylko js) jako js fiddle - https://jsfiddle.net/ . Używasz narzędzi developerskich w przeglądarce? W konsoli powinieneś dostać info, w której linijce kod się wysypuje ;)

0

Inne podejście bez sprawdzania zwycięzcy, może podejrzysz jakieś techniki: http://jsfiddle.net/aumjqowL/ - wykorzystałem jQuery bo mi się nie chciało z palca pisać tego w czystym.

0
Markuz napisał(a):

Inne podejście bez sprawdzania zwycięzcy, może podejrzysz jakieś techniki: http://jsfiddle.net/aumjqowL/ - wykorzystałem jQuery bo mi się nie chciało z palca pisać tego w czystym.

Chciałem dokończyć ten swój

0

Właśnie... tylko co dokładnie chciałeś dokończyć?
Na razie nie działa nawet tak jak napisałeś w pierwszym poscie:

Mam problem, otóż na click wywołuje się funkcja, która wrzuca X w kliknięte miejsce i randomowo losuje i wkleja kółko w wolne miejsce

Przerobiłem, żeby bez obrazków wyświetlało alt tekst, no i żeby Twój js działał trzeba było przestawić load type:
https://jsfiddle.net/JasonSpine/98we5oqk/14/

Klikam na X, klikam na O, gdzie randomowe O?
Niby moglibyśmy napisać całe kółko i krzyżyk jak należy, ale nie wiadomo jaki jest Twój cel. Co dla Ciebie by było końcem projektu :) ?

Zamiast alertów przydałby się div informacyjny, bo w Firefoxie po kilku alertach łatwo sobie zablokować alerty dla strony.
Przydałby się przycisk reset, żeby nie trzeba było odświeżać strony. Przydałyby się jeszcze 2 przyciski: start z AI oraz start dla 2 graczy.
Jest trochę takich dupereli i można to wszystko zrobić, ale to Twój projekt, więc pisz z czym nie możesz ruszyć i co chcesz osiągnąć...

Tablica powinna mieć 9 elementów, pętla powinna być taka jaka jest, albo (preferowany przeze mnie zapis): for (i = 0; i < 9; i++)

0
Spine napisał(a):

Właśnie... tylko co dokładnie chciałeś dokończyć?
Na razie nie działa nawet tak jak napisałeś w pierwszym poscie:

Mam problem, otóż na click wywołuje się funkcja, która wrzuca X w kliknięte miejsce i randomowo losuje i wkleja kółko w wolne miejsce

Przerobiłem, żeby bez obrazków wyświetlało alt tekst, no i żeby Twój js działał trzeba było przestawić load type:
https://jsfiddle.net/JasonSpine/98we5oqk/14/

Klikam na X, klikam na O, gdzie randomowe O?
Niby moglibyśmy napisać całe kółko i krzyżyk jak należy, ale nie wiadomo jaki jest Twój cel. Co dla Ciebie by było końcem projektu :) ?

Zamiast alertów przydałby się div informacyjny, bo w Firefoxie po kilku alertach łatwo sobie zablokować alerty dla strony.
Przydałby się przycisk reset, żeby nie trzeba było odświeżać strony. Przydałyby się jeszcze 2 przyciski: start z AI oraz start dla 2 graczy.
Jest trochę takich dupereli i można to wszystko zrobić, ale to Twój projekt, więc pisz z czym nie możesz ruszyć i co chcesz osiągnąć...

Tablica powinna mieć 9 elementów, pętla powinna być taka jaka jest, albo (preferowany przeze mnie zapis): for (i = 0; i < 9; i++)

Zgadza się, wrzuciłem nie ten kod xd Tutaj jest właściwy: https://jsfiddle.net/sjqbv20p/ Podczas gry, gdy zostaje jedno wolne, puste miejsce to nie można go użyć. Te alerty itd to póki co tylko do testów, gdy już uda mi się przekroczyć ten problem to będę zajmował się sprawami drugorzędnymi, trybami gry itd

0

W tym co podesłałem teraz nie ma systemu walidacji, tylko funkcja odpowiedzialna za wstawianie X i randomowo O w wolne miejsce

0

Dobra, już sam wpadłem na to jak to rozwiązać, jak zwykle okazało się trywialnie proste. Temat do zamknięcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1