Autor Wątek: AI War Compo  (Przeczytany 2217 razy)

Offline programistagd

  • Użytkownik
    • WeHaveIdea

# Kwiecień 16, 2010, 22:07:02
Witam!
Czytałem ostatnio o Compo'tach i WarCompo.
Nie wiem czy mogę, ale chciałbym zorganizować/zaproponować organizację WarCompo.
Stary pomysł:
Chętnie sam napisałbym aplikację hosta, do krótkiej trasy nie jest to trudne.
Zapewne boty działały by jako DLLe.
Wymyśliłem coś takiego:
-Wczytywanie wszystkich DLLi
-Losowanie pozycji do dojścia oraz przeszkód(być może ułożyłbym je same, bo nie umiem ich generować, jak ktoś użyczy skryptu C++ do tego to zrobię ;))
-Wykonanie funckji init(podane argumenty: x i y celu[startowy=0]), zwracana nazwa BOTa
-"While" nie dojdą wywoływanie funkcji step, podane argumenty: x i y bierzący, zwraca 0,1,2,3 czyli kierunek.
-Sprawdzanie, czy ktoś jest u celu, usunięcie z listy "stepów" i określenie ilości punktów
-Po "While" sprawdzenie kto miał najwięcej punktów i zapisanie do pliku
-Ewentualna dogrywka w przypadku remisu(?), nie wiem czy potrzebna...



Nowy pomysł:
Np. na plikach, strzelanka.
Dostajesz plik z mapką(.-pusto,+-gracz,#-przeszkoda,_-pocisk) i znasz swoją pozycję początkową.
I się strzelasz. HP kontroluje host, a w plikach swoich dodajesz ruchy(int kierunek+bool strzela+int dir strzalu).
Wygrywa ten kto przetrwa najwięcej rund.
Runda kończy się, gdy zostanie tylko jeden bot.
Specyfikacja plików(uwaga zastrzegam sobie prawo do niewielkich zmian):
mapka:nazwa:map.txt,składnia:.-pusto,+-gracz,#-przeszkoda,_-pocisk, nowa linia to y+1, a nowy znak w linii to x+1(chyba się domyślacie)
plik moich czynności:nazwa:nazwa_pliku_exe_bota.txt,składnia:id_tury;kierunek_ruchu;czy_strzela;kierunek_pocisku
plik tury:nazwa:tura.txt,składnia:id_tury

Aktualizacja pomysłu:
Temat: Strzelanka i nie tylko.
Sposób pisania bota: DLL
Specyfikacja i wszystko jest podana na stronie projektu.
Proszę deklarować tu swoje uczestnictwo.
Lista uczestników na stronie projektu.

To tyle. Czy ktoś jest za?
Termin zawodów do ustalenia.
Aplikację host'a jeśli powiecie, że mam udostępnić - to udostępnię.
Dzięki za przeczytanie tego.
-Prorgamistagd z Ludzix Team
P.S.
Co do strzelanki i w ogóle Compo zainspirował Mnie SCCup.  ;D

Do Moderatorów: Jeśli mógłbym dostać trochę miejsca na serwerze na wgrywanie aplikacji hosta, to byłbym wdzięczny. Jesli nie wgram to na jakieś przeklej.pl.
« Ostatnia zmiana: Kwiecień 17, 2010, 16:58:39 wysłana przez programistagd »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline TRSSpy

  • Użytkownik

# Kwiecień 16, 2010, 22:23:16
Znajdowanie drogi w labiryncie już było o ile pamiętam... http://www.warsztat.gd/compo/edycje.php?x=view&id=45

Offline Kos

  • Użytkownik
    • kos.gd

# Kwiecień 16, 2010, 22:26:56
Za proste i nieciekawe - nie bardzo jest miejsce na innowację i pomysłowość. Pokombinuj więcej z tematem ;)

Offline programistagd

  • Użytkownik
    • WeHaveIdea

# Kwiecień 16, 2010, 22:33:12
Hmm...
Macie rację.
Ale mam inny pomysł ;)
Np. na plikach, strzelanka.
Dostajesz plik z mapką(.-pusto,+-gracz,#-przeszkoda,_-pocisk) i znasz swoją pozycję początkową.
I się strzelasz. HP kontroluje host, a w plikach swoich dodajesz ruchy(int kierunek+bool strzela+int dir strzalu).
Wygrywa ten kto przetrwa najwięcej rund.
Runda kończy się, gdy zostanie tylko jeden bot.
Co o tym myślicie?

Offline MichalBe

  • Użytkownik
    • MichalBe's Github

# Kwiecień 16, 2010, 22:37:54
najlepiej by było gdyby tworzenie bota było niezalezne od jezyka w ktorym ktoś pisze - nie kazdy programuje w C, niektorzy lepiej sie czuja w czym innym.

Offline Anonim

  • Użytkownik
    • Anonim's Page!

# Kwiecień 16, 2010, 22:39:44
Strzelanka botów, fajny pomysł! Tylko trzeba by skontrolować, aby nikt sobie godmode'a nie napisał :)
Sam pomysł War Compo jest bardzo fajny, mógłbym to zorganizować - jeśli nikt nie ma do tego uprzedzeń.
Pozdro!
-a

Offline Oti

  • Użytkownik

# Kwiecień 16, 2010, 22:43:37
Najlepiej napisać jakiś prosty interpreter języka skryptowego. Ludzie dawaliby pliki tekstowe z logiką swoich bocików. :)

Offline programistagd

  • Użytkownik
    • WeHaveIdea

# Kwiecień 16, 2010, 22:46:19
Jeśli jest na plikach to teoretycznie masz każdy język programowania.
HP kontrolowałby host, więc chyba byłoby trudno.
Możecie pisać chyba nawet w PHP, bo serwer lokalny mogę użyczyć. ;)
Postaram się napisać hosta w C++, wyświetlanie mapy podczas bitwy itp.
Zastanawiam się tylko jak zrobić jaką synchronizację między botami.
Można by zrobić nr. tury i w nagłówku każdego pliku pisać...
Postaram się coś załatwić.
Pisać można od teraz do czasu, aż zrobię hosta + 1 tydzień.
Specyfikację plików podam w pierwszym poście.
Edit:
Interpretera mi się nie chce ;), a na plikach to prawie każdy język.

Offline MichalBe

  • Użytkownik
    • MichalBe's Github

# Kwiecień 16, 2010, 22:51:20
Jeśli jest na plikach to teoretycznie masz każdy język programowania.
HP kontrolowałby host, więc chyba byłoby trudno.
Możecie pisać chyba nawet w PHP, bo serwer lokalny mogę użyczyć. ;)
Postaram się napisać hosta w C++, wyświetlanie mapy podczas bitwy itp.
Zastanawiam się tylko jak zrobić jaką synchronizację między botami.
Można by zrobić nr. tury i w nagłówku każdego pliku pisać...
Postaram się coś załatwić.
Pisać można od teraz do czasu, aż zrobię hosta + 1 tydzień.
Specyfikację plików podam w pierwszym poście.
Edit:
Interpretera mi się nie chce ;), a na plikach to prawie każdy język.


w sensie ze dostajemy plik z mapa i na podstawie tego co w nim jedn generujemy jakis output w kazdej klejnej rundzie, tak?

Offline programistagd

  • Użytkownik
    • WeHaveIdea

# Kwiecień 16, 2010, 22:56:02
Coś takiego.
Generujesz plik(patrz.specyfikacja):
Cytuj
nazwa:nazwa_pliku_exe_bota.txt,składnia:id_tury;kierunek_ruchu;czy_strzela;kierunek_pocisku
Taki output generujesz, host to przetwarza i uruchamia następną turę(dopiero, jak każdy da output).

Offline Oti

  • Użytkownik

# Kwiecień 16, 2010, 23:26:45
Coś takiego.
Generujesz plik(patrz.specyfikacja):
Cytuj
nazwa:nazwa_pliku_exe_bota.txt,składnia:id_tury;kierunek_ruchu;czy_strzela;kierunek_pocisku
Taki output generujesz, host to przetwarza i uruchamia następną turę(dopiero, jak każdy da output).
Bezsensu. Można aimhacka sobie napisać i cześć(kierunek=atan2(przeciwnik-ja)).

Offline blackhawk

  • Użytkownik

# Kwiecień 16, 2010, 23:31:54
Dlaczego gra ma być turową? A nie można uruchamiać tych botów w jakiejś strzelance czasu rzeczywistego? Każdy gracz by dostawał tyle informacji ile by widział (pole wzroku). I musiałby podjąć decyzję w 1 klatce gry. Gdyby jego czas myślenia byłby za długi, po prostu dostałby kicka i tyle. Ale jak tam uważacie, niekoniecznie musi to w praktyce okazać się ciekawsze.

Offline świrus

  • Użytkownik
    • Tu trolluje

# Kwiecień 16, 2010, 23:32:15
Cienkie, nie lepiej po prostu podpiąć się pod jakaś grę i dać lib'a w C do łatwego portowania na inne języki?

http://battlecode.mit.edu/2010/
« Ostatnia zmiana: Kwiecień 16, 2010, 23:37:16 wysłana przez świrus »

Offline programistagd

  • Użytkownik
    • WeHaveIdea

# Kwiecień 17, 2010, 17:27:26
Witam!
Tymi liniami oddzielam poprzednią część dyskisji:

***

***

;)
Zaktualizowałem pierwszy post i dodałem stronę projektu.
Oto link do projektu AIWC.
Tym razem gra będzie real-time, tyle że gracz będzie ruszał się co 5 klatek, bo pocisk co jedną.
Więcej na stronie projektu.
Tutaj możecie się deklarować jako uczestnicy.
Edit: Aktualizacja specyfikacji mapy!
Zob. strona projektu.
Edit2: Uściślono specyfikację ruchu gracza.
« Ostatnia zmiana: Kwiecień 17, 2010, 17:53:26 wysłana przez programistagd »

Offline lmmilewski

  • Użytkownik
    • Łukasz Milewski - devblog

# Kwiecień 17, 2010, 20:13:17
Celem konkursu jest stworzenie doskonałego AI do gier umiejącego wykonywać nawet złożone zadania.
Ten BOT ma działać jako DLL i można go będzie dołączać do gier.
Pozdrawiam i życzę powodzenia ;-)