• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[JS] Tic Tac Toe AI - api do kółko i krzyżyk oparte na algorytmie minimax

Object Storage Arubacloud
+4 głosów
1,428 wizyt
pytanie zadane 23 września 2016 w Nasze projekty przez pietrzakacper Mądrala (7,480 p.)
edycja 23 września 2016 przez pietrzakacper

Cześć!

Chciałbym prosić o ocenę kodu oraz wydajności mojego ostatniego projektu.

Na pomysł na ten projekt wpadłem, gdy męczyłem się z implementacją 'komputera' w kółko i krzyżyk.

Pomyślałem, że dużo łatwiej będzie mi to zrobić jeśli rozdzielę całą abstrakcję tego algorytmu i zamknę w oddzielnym module. Uznałem, że to co mi wyszło może być dla kogoś użyteczne dlatego opakowałem to w ładne API i mini-dokumentację w pliku README.

Tutaj można przetestować jak sprawuje się AI w mojej implementacji TicTacToe: link

A tutaj link do repozytorium tic-tac-toe-ai na GitHubie: link

Pozdrawiam i z góry dzięki za odpowiedź!

komentarz 23 września 2016 przez niezalogowany
Mam dziwnego laga przez chwilę gdy wybiorę kółko na początku. Taka drobna wada. Nie znam się na js, więc nie mogę więcej powiedzieć :) No może jeszcze, że ładnie schludnie wygląda.
komentarz 23 września 2016 przez pietrzakacper Mądrala (7,480 p.)
Tak, też to zauważyłem, żeby pozbyć się tego efektu muszę, napierw ładować planszę a potem liczyć ruch AI

3 odpowiedzi

+1 głos
odpowiedź 24 września 2016 przez Magicone Nałogowiec (45,100 p.)

Dlaczego zrezygnowałeś z ES6? Kod do ES5 możesz zrzucać, minifikować i przy okazji używać składni modułów ES6 przy użyciu narzędzia, jakim jest rollup. Tutaj masz książkowy przykład, jak to działa w praktyce. :P

komentarz 24 września 2016 przez pietrzakacper Mądrala (7,480 p.)

Głównie dlatego, że potrzebowałem moduł (AI) rozdzielić na parę plików z mniejszymi modułami (miniMax, Validation... )i udostępniać tylko wybrane metody. A z tego co wiem to moduły ES6 nie działają w przeglądarce. Dlatego skorzystałem z tego IMO brzydkiego pattern-a : 

var AI = (function(module){ 
  module.newProperty = ... 

  return module; 
})(AI || {});

Gdybyś zaproponował lepsze rozwiązanie byłbym bardziej niż wdzięczny ;)

komentarz 24 września 2016 przez Magicone Nałogowiec (45,100 p.)
Modularyzacja jest jak najbardziej ok, napisałem, że rollup zrzuca moduły do jednego pliku i w dodatku przy użyciu presetów/pluginów możesz mieć czysty, zminifikowany kod pod przeglądarkę (es5).
komentarz 24 września 2016 przez pietrzakacper Mądrala (7,480 p.)
Ok, nie wiedziałem co robi rollup. Dzięki, poczytam i na dniach przejdę na es6 :)
+1 głos
odpowiedź 24 września 2016 przez Mlody89 Mądrala (6,920 p.)

Jak się szybko klika to AI nie ma szans :D

komentarz 24 września 2016 przez pietrzakacper Mądrala (7,480 p.)
xD Dzieje się tak, bo event kliknięcia  mimo tego, że zostaje przechwycony w trakcie "procesu myślowego" AI to jest obsłużony dopiero gdy AI skończy liczyć.

Zwykła flaga wskazująca czyja kolei teraz jest powinna rozwiązać sprawę :)
–1 głos
odpowiedź 24 września 2016 przez pietrzakacper Mądrala (7,480 p.)
Podbijam

Podobne pytania

0 głosów
0 odpowiedzi 201 wizyt
pytanie zadane 16 czerwca 2021 w Systemy operacyjne, programy przez Maren Nowicjusz (120 p.)
+1 głos
0 odpowiedzi 2,022 wizyt
+4 głosów
1 odpowiedź 2,257 wizyt

92,543 zapytań

141,386 odpowiedzi

319,500 komentarzy

61,929 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...