Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mateusz.viste
Dołączył: 10 Mar 2015 Posty: 6
|
Wysłany: Wto Mar 17, 2015 9:02 pm Temat postu: OpenKropki - gra w kropki pod Linux i Windows |
|
|
Witam,
Stworzyłem niedawno grę w "kropki", jest to gra na licencji open-source, działa pod Linux, Windows, i wszelkimi BSD. Jako że forum jest właśnie w tematyce "kropek", pomyślałem że to dobre miejsce by podzielić się grą - jeśli to błąd, z góry przepraszam i uniżenie się wycofuję :)
Gra jest jeszcze w wersji "Alpha", sporo zostało do zrobienia, ale uruchamia się, i można pograć z komputerem.
http://openkropki.sourceforge.net
Ostatnio zmieniony przez mateusz.viste dnia Czw Lis 19, 2020 2:40 pm, w całości zmieniany 4 razy |
|
Powrót do góry |
|
|
kubusio
Dołączył: 08 Sty 2003 Posty: 391 Skąd: Warszawa
|
Wysłany: Sro Mar 18, 2015 1:24 pm Temat postu: |
|
|
Gratulacje Taka inicjatywa jest zawsze mile widziana. My aktualnie gramy online na zagram.org. Chętnie obejrzymy twój program jak już będzie gotowy. |
|
Powrót do góry |
|
|
mateusz.viste
Dołączył: 10 Mar 2015 Posty: 6
|
Wysłany: Sro Mar 18, 2015 1:27 pm Temat postu: |
|
|
kubusio napisał: | Gratulacje :) Taka inicjatywa jest zawsze mile widziana. My aktualnie gramy online na zagram.org. Chętnie obejrzymy twój program jak już będzie gotowy. |
Program już jest "gotowy", nawet jeśli tylko w wersji alfa - można toczyć rozgrywki przeciw AI (gra przez internet jeszcze brakująca). niestety widzę że moj wcześniejszy post został ocenzurowany, i odnośnik do strony gry usunięty...
// edit
po sugestii kubusio iż może to być kwestia uprawnień do wystawiania linków, a nie cenzury, sprawdziłem mój pierwotny post i edytując go widzę link. Nie wyświetla się on jednak w "publicznej" wiadomości, co potwierdza domysł kubusio - nie ma i nie było żadnej cenzury, a forum widocznie filtruje linki :)
strona gry to openkropki.sourceforge.net |
|
Powrót do góry |
|
|
zagram_org
Dołączył: 04 Lut 2013 Posty: 33
|
Wysłany: Pią Mar 20, 2015 3:21 pm Temat postu: |
|
|
Bardzo się cieszę, że znalazł się jakiś zapaleniec chcący pisać programy kropkowe
Obejrzałem sobie kod źródłowy, wygląda porządnie, co dobrze rokuje na przyszłość Sam programik na razie dość ubogi, ale w końcu to wersja 0.2.
Mam kilka uwag/rad na przyszłość. Mam trochę wątpliwości, czy się nimi wszystkimi dzielić od razu, bo nie chciałbym zabić Twojego entuzjazmu -zignoruj te uwagi jeśli miałyby Ci przeszkadzać
1. Myślę, że bardzo by się w kropkach przydało, żeby był program, w którym interfejs jest oddzielony od AI. Np. w go jest Go Text Protocol, protokół do komunikacji z AI. To ma wiele zalet:
a) można łatwo rozgrywać turnieje między różnymi AI,
b) łatwiej pisać boty,
c) a przede wszystkim, ktoś, kto chce napisać nowe AI, nie musi pisać od nowa interfejsu.
Z tego co mi wiadomo, w kropkach w ogóle nie ma czegoś takiego. Warto byłoby zaprojektować protokół, moim zdaniem najlepiej na bazie istniejącego GTP z możliwie małymi zmianami uwzględniającymi specyfikę kropek. No i napisać interfejs i silnik komunikujące się za pomocą tego protokołu.
2. Wcześniej czy później warto zrobić import i eksport sgf: http://www.red-bean.com/sgf/. A tutaj są uwagi nt. sgf w kropkach: http://eidokropki.reaktywni.pl/kropki-sgf.html.
3. Jeśli chodzi o AI, może znasz, a jak nie, to warto poznać:
http://chessprogramming.wikispaces.com -- wiki nt. programowania AI w szachach. Dużo cennych informacji nt. algorytmów minimaksowych, hashtables, itp., do wykorzystania i u nas.
W go najlepsze obecnie programy używają algorytmów Monte Carlo, można np. poszukać 'monte carlo go' (niestety, znajdzie się dużo linków niegoistycznych ). Wydaje się, że zrobienie sensownego AI z Monte Carlo jest łatwiejsze niż z minimaksem, do Monte Carlo trzeba przede wszystkim umieć szybko rozgrywać gry, a nie potrzeba pisać funkcji oceniającej pozycję. Monte Carlo łatwo też napisać równolegle (tj. z wykorzystaniem wielowątkowości).
4. A na koniec taki trochę nieoczywisty drobiażdżek: na planszę x*y wystarczy przydzielić tablicę na (x+2)*(y+1)+1 elementów (albo (x+1)*(y+2)+1), zamiast na (x+2)*(y+2), np. dla 2x3 --
* * * * * *
* x x x *
* x x x *
(x = pola planszy, *=puste elementy ułatwiające np. sprawdzanie, czy sąsiednie pole jest na planszy, czy już na zewnątrz). Takiej reprezentacji używa(ło?) Gnu Go. Ta drobna oszczędność przekłada się ostatecznie na nieco szybsze wykonywanie programu, bo często trzeba kopiować tablicę z planszą. |
|
Powrót do góry |
|
|
mateusz.viste
Dołączył: 10 Mar 2015 Posty: 6
|
Wysłany: Pon Wrz 21, 2020 1:14 pm Temat postu: |
|
|
Szybka informacja: dziś, po kilkuletniej przerwie, opublikowałem kolejną wersję programu OpenKropki. Program jest do ściągnięcia ze strony projektu:
http://openkropki.sourceforge.net
Z widocznych zmian, nowa wersja to, m.in:
- możliwość wyboru wielkości planszy
- szybszy moduł AI
- udźwiękowienie (bardzo podstawowe)
- nieco ładniejszy interfejs
Program dostępny jest w wersji dla Windows oraz Linux. Powinien dać się skompilować również na każdej innej platformie która dysponuje biblioteką SDL2. |
|
Powrót do góry |
|
|
zagram_org
Dołączył: 04 Lut 2013 Posty: 33
|
Wysłany: Czw Wrz 24, 2020 11:38 am Temat postu: |
|
|
Bardzo estetycznie wygląda!
Kompilacja pod linuksem udała się bez problemów.
Czekamy na dalszy rozwój |
|
Powrót do góry |
|
|
mateusz.viste
Dołączył: 10 Mar 2015 Posty: 6
|
Wysłany: Czw Wrz 24, 2020 12:20 pm Temat postu: |
|
|
zagram_org napisał: | Bardzo estetycznie wygląda!
Kompilacja pod linuksem udała się bez problemów.
Czekamy na dalszy rozwój |
ha, jednak ktoś tu jeszcze zagląda! Super.
Moje najbliższe plany wiążą się z obsługą kilku języków - chciałbym dodać przynajmniej wersję polską i rosyjską - oraz z rozwojem AI, tylko chciałem najpierw mniej więcej ogarnąć stronę estetyczną interfejsu, żeby w oczy aż tak bardzo nie kłuło.
Obecne AI jest bardzo słabe (oparte na prymitywnym minmax o mocno ograniczonej rekurencji oraz z kilkoma sztywnymi zasadami). Mam nadzieję, że w następnej wersji uda mi się zaproponować dwa różne AI do wyboru, ale to temat dla mnie jeszcze nowy więc powoli odkrywam co i jak. Podoba mi się siła gry AI z "kropek" których autorem jest Bartek Dyda. Co prawda autor twierdzi że jego program gra słabo, ale mnie skutecznie ogrywa - może po prostu źle gram (swoją drogą, w jego AI denerwuje mnie to natrętne parcie na tworzenie baseników, nieco uprzykrza to wg. mnie rozgrywkę). |
|
Powrót do góry |
|
|
mateusz.viste
Dołączył: 10 Mar 2015 Posty: 6
|
Wysłany: Czw Lis 19, 2020 2:39 pm Temat postu: |
|
|
Dziś opublikowałem kolejną wersję programu OpenKropki. Główne zmiany to obsługa wielu języków (polski, rosyjski, czeski i francuski) oraz nowy (nieco silniejszy) silnik AI. Poniżej changelog.
Kod: | OpenKropki v0.4 [19 Nov 2020]
- human vs human (on same computer) and AI vs AI games are possible
- new AI engine available: Tigran
- new "settings" menu
- bases are shaded so it's clear who owns them (can be disabled in settings)
- sound can be disabled through the settings menu
- resumable games survive an application restart
- menu width & height limited to avoid stretching it too much on huge screens
- default zoom increased because I'm old (can be changed with mouse scroll)
- right click centers view on last move (instead of playfield's center)
- right click no longer resets zoom: middle click does that now
- playfield is never allowed to be swept completely outside the screen
- invalid moves trigger a buzzer sound
- multilingual UI: Czech, English, French, Polish, Russian
- using zlib for deflate operations instead of embedded tinfl code
- mouse cursor stays at the same place of the playfield when zooming
- AI is slightly delayed to not answer faster than 0.5s (feels more natural)
- program communicates with AI using OKP (OpenKropki Protocol) strings
- optimizations in playfield processing routines
|
|
|
Powrót do góry |
|
|
kapen
Dołączył: 31 Paź 2011 Posty: 4 Skąd: Łowicz Surrey BC
|
Wysłany: Pią Gru 04, 2020 4:40 am Temat postu: |
|
|
Próbowałem skompilować pod OS X Catalina i system od razu płacze i chce zaciągać xcode z internetu żeby to uruchomić. Internet mam limitowany więc pobrałem wersje na win. Odpaliłem pod Wine i powiem, że AI troche myśli i potrafi rozpędzić wiatraki w laptopie. Chyba trzeba AI jeszcze zoptymizować bo obciąża to procesor a ruchy robi nie najlepsze. Rozdzielczość też pasowało by podkręcić, interfejs bardziej żywszy i kolorowszy.
Fajnie, że takie coś rozwijasz |
|
Powrót do góry |
|
|
mateusz.viste
Dołączył: 10 Mar 2015 Posty: 6
|
Wysłany: Pią Gru 04, 2020 9:28 am Temat postu: |
|
|
kapen napisał: | Próbowałem skompilować pod OS X Catalina i system od razu płacze i chce zaciągać xcode z internetu żeby to uruchomić. |
Nie znam OS X, ale z tego co rozumiem to xcode jest całym środowiskiem programistycznym. Nie powinno być to potrzebne do kompilacji OpenKropkek - wystarczy, że masz zainstalowany sam kompilator C (typowo gcc lub clang), narzędzie "make" oraz nagłówki bibliotek SDL2 i zlib. Wówczas powinno wystarczeć uruchomienie polecenia "make" z katalogu z kodem źródłowym gry, aby ją zbudować.
kapen napisał: | AI troche myśli i potrafi rozpędzić wiatraki w laptopie. Chyba trzeba AI jeszcze zoptymizować bo obciąża to procesor a ruchy robi nie najlepsze. |
Tak, AI zdecydowanie wymaga dalszego rozwoju. Tigran jest już dużo lepszy od poprzedniego algorytmu (Dumbo), ale droga jeszcze długa. Niewykluczone też, że Tigran działa wolniej kiedy działa przez Wine. No ale tak czy inaczej, siła gry wymaga usprawnienia. Wersja 1.0 jeszcze daleko za horyzontem.
kapen napisał: | Rozdzielczość też pasowało by podkręcić |
To kwestia delikatna, bo dużo zależy od tego, kto jaki ma sprzęt... Na moim laptopie OpenKropki wyświetlają się bardzo ładnie, ale jeśli ktoś ma duży stacjonarny ekran to faktycznie okeinko może wydawać się małe. Przy czym podczas rozgrywki można zoomować grę poprzez scroll myszki, aby sobie dopasować wielkość kropek do własnych upodobań, a wielkość samego okienka można dowolnie zmienić. |
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|