Skocz do zawartości

Bot do ponga


Rekomendowane odpowiedzi

Zrobiłem sobie bota do ponga.

Step:

GML
if y>room_height-70 then y=room_height-70

if y<0 then y=0

if x>room_width-30 then x=room_width-30

if distance_to_object(o_pilka)<250

{

if y=o_pilka.y then speed=0

else

{

speed=4

}

}

else

{

speed=2

}

direction=point_direction(x,y,x,o_pilka.y)

 

 

Jest troche nie dociągnięty - paletka trzęsie się, czasami na siłę wali w ściane i tylko w 60% symuluje prawdziwego gracza.

 

Jeżeli macie lepsze pomysły na bota do ponga (napewno ;)) piszcie bede wdzieczny!

Odnośnik do komentarza
Udostępnij na innych stronach

Przede wszystkim paletka komputera powinna poruszać się za piłką. Obierz sobie jej środek, czy bok i niech za nią leci. Dalej, jeżeli piłka odbija się od ściany, to komputer oczywiście już wcześniej może to zauważyć. Łatwo też wyznaczyć przeciwny wektor ruchu piłki (wypadkowy można po prostu policzyć z dodawania wektoru piłki i wektoru ściany, a najlepiej uprościć to wyliczając wektor prostopadły...] . Jednakże liczenie tego jeszcze dużo przed kolizją ze ścianą i szybkie wykorzystanie do AI, nie będzie ani szybkie, ani dobre, bo komputer będzie miał od razu przewagę. Dlatego warto wyznaczyć odpowiednie progi odległości na osi X [najlepiej], ściany od piłki, i wtedy mając odpowiedni kąt, wycofać się paletą w kierunek przeciwny. Wkońcu przy dużych prędkościach, bez tego komp po prostu nie zdąży...

 

24c6ps1.jpg

 

 

To takie podstawy, możesz też potem oprócz taktyki defensywnej, obmyślić strategię ofensywną [walenie bokami pod ostrym kątem?]

Odnośnik do komentarza
Udostępnij na innych stronach

Paletka może conajwyżej zrównać swoją pozycje na osi X do pozycji na osi X piłki, gdy jej samej X przekroczy X zielonej linii (ufff?).

 

Tak, paletka może wtedy być pod piłką, ale najlepiej żeby pomału cofała do przewidywalnego miejsca "lądowania" piłki.

Odnośnik do komentarza
Udostępnij na innych stronach

progio, nie czytałem całej Twojej wypowiedzi, ale chyba przegiąłeś :D

 

http://eportal.boo.pl/files/public/ponger_01rc3.zip <- hasło: kostek8 <- musisz se to zdekompilować, bo ja nie mam źródła na kompie, a nie chce mi się laptopa po to włączać. Pozwalam jakby co xP

 

Włączasz dwa okna gry naraz, w jednym klikasz Host, w drugim Connect i pozostawiając adres 127.0.0.1 klikasz OK. Przesuwasz oba okna tak, abyś widział, które jest serwem, a które clientem (pisze to na pasku tytułowym gry (tej grubej niebieskiej belce, na której są guziki do zamykamia/minimalizowania programu xd)). W cliencie wpisujesz "[ENTER], [bACKSPACE], "BOT:1", [ENTER]".

Minimalizujesz clienta, przesuwasz sobie okno serwa na środek ekranu, i możesz grać :D (serwis - spacja).

 

Hmmm...

A kij. Dam to zaraz jako przykład xP

 

Ed: Oczywiście, masz tam dobre AI :P

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...