Skocz do zawartości

Epizod 1 - Breakout


Uzjel
 Udostępnij

Rekomendowane odpowiedzi

  • Odpowiedzi 133
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

datego ja w priorytetyzacji licze trajektorie bonusów i piek i kolejkuje je wedle tego ile stepów mają do uderzenia w horyzontalną pozycję paletki :D

 

EDIT: 175! mam rekord :D

Odnośnik do komentarza
Udostępnij na innych stronach

Nic z tego, wygląda tak jakbym mógł wpisać tylko 9 znaków. Przy tej ilości seed mi działa, jak wpisuję 10 to już nie.

Czy 2147483647 to nie jest czasem koniec zasięgu signed int? Większej liczby nie mogę ustawić a ty i Matrix macie. O co tu chodzi? : o

Mam najnowszy build 1749 gdyby ktoś pytał.

Odnośnik do komentarza
Udostępnij na innych stronach

da.

"Fuck me if you can".

 

nie pytaj, niech po prostu zagra xD

Odnośnik do komentarza
Udostępnij na innych stronach

Ponieważ jestem idiotą i zasnąłem przed końcem czasu i zapomniałem dodać bota...

... postanowiłem go udostępnić tym którzy nie mieli by pomysłu albo chcieliby zobaczyć jak można by było to wykonać prostymi sposobami bez zaawansowanych zachowań :)

 

Zero przewidywania ruchów. I problem ze zniszczeniem ostatniej kostki. Oprócz tego omija złe boosty, zbiera dobre, jeżeli jest większa liczba piłek niż 1 powinien zebrać boost +1000....

 

Kod:

GML
lb = x-bar_width/2-4;//lewa krawedz paletki

rb = x+bar_width/2+4;//prawa krawedz paletki

thelowest=obj_ball;//domyslna losowa pilka

//sprawdzamy ktora pilka jest najnizej

for (i = 0; i < instance_number(obj_ball); i += 1)

{

pilka = instance_find(obj_ball,i);

 

if(thelowest.y<pilka.y || pilka.y>y+2)

{

thelowest=pilka;

}}

//Jak piłka jest za nisko i spada w dol to trzeba ja ratowac.....

if (thelowest.y>y-128 || thelowest.direction=angle_difference(0,180)){

if(instance_number(obj_ball)>1){

if instance_exists(obj_bonus){

myobj = obj_bonus;

if (myobj.image_index==0){

if (myobj.x<x-bar_width/2){

if (myobj.x!=x-bar_width/2){

x=lerp(x,myobj.x,1) }}

if (myobj.x>x+bar_width/2){

if (myobj.x!=x+bar_width/2){

x=lerp(x,myobj.x,1) }}

}}else{

//jak po lewej dojezdzamy lewa krawedzia, zeby uniemozliwic zlapanie przy tym bonusu zlego

if (thelowest.x<bar_width/2){

x=thelowest.x + random_range(-10,10) }

//jak po prawej dojezdzamy prawa krawedzia, zeby uniemozliwic zlapanie przy tym bonusu zlego

if (thelowest.x>bar_width/2){

x=thelowest.x + random_range(-10,10)}}

}else{

//jak po lewej dojezdzamy lewa krawedzia, zeby uniemozliwic zlapanie przy tym bonusu zlego

if (thelowest.x<bar_width/2){

x=thelowest.x + random_range(-10,10) }

//jak po prawej dojezdzamy prawa krawedzia, zeby uniemozliwic zlapanie przy tym bonusu zlego

if (thelowest.x>bar_width/2){

x=thelowest.x + random_range(-10,10)}

}}else{

//jesli pilka nie spada w dol, a jest jakis bonus

if instance_exists(obj_bonus){

myobj = obj_bonus;

//jezeli to dobry bonus

if (myobj.image_index=0 or myobj.image_index=4){

//jak po lewej dojezdzamy lewa krawedzia,

if (myobj.x<x-bar_width/2){

if (myobj.x!=x-bar_width/2){

x=lerp(x,myobj.x,1) }}

//jak po prawej dojezdzamy prawa krawedzia

if (myobj.x>x+bar_width/2){

if (myobj.x!=x+bar_width/2){

x=lerp(x,myobj.x,1) }}

//x = myobj.x;

}else{

//jak jest to zly bonus

//i jest blisko

if (distance_to_object(myobj)<bar_width*1.2){

//jak po lewej

if (myobj.x<x){

if (rb >= room_width){

// chyba ze dotykamy sciany to jedziemy na lewo, ale to nie zawsze dziala

x -= bar_width*2;

}else{

// to uciekamy na prawo

x = myobj.x +bar_width*1.1}}

//jak po prawej

if (myobj.x>x){

if (lb <= 0){

// chyba ze dotykamy sciany to jedziemy na prawo, ale to nie zawsze dziala

x += bar_width*2;

}else{

//to uciekamy na lewo

x = myobj.x -bar_width*1.1; }}}}}}

 

Mam nadzieję że komuś się przyda. Możliwe że jest gdzieś są błędy w komentarzach...

Jak co na PW mogę w czymś pomóc. Prawdopodobnie nie jest to prostsze rozwiązanie, mogą być lepsze, ale taki miałem pomysł i go wykonałem...

Bot ma rank od 90 do 220 zależy jak wlezie seed.

Odnośnik do komentarza
Udostępnij na innych stronach

Mój jest absolutnie źle napisany, przerost treści nad formą :P

http://wklej.org/id/2005074/

W dodatku jest kiepski bo lubi złapać -1000 gdy piłka jest po prawej stronie paletki. Nie chciało mi się tego naprawiać. Jest celowanie ale bez uwzględnienia ścian, przez co trudno mu trafić ostatniego klocka jak jest blisko krawędzi gry.

 

A i ja traktowałem pomniejszenie paletki jako dobry bonus gdy paletka jest dłuższa niż 128

Odnośnik do komentarza
Udostępnij na innych stronach

Dobrym pomysłem było by na początku wybić piłkę nad bloczki żeby się rozpędziła i nabiła punktów, ale obudziłem się o 23 i zabrakło mi czasu :)

Moja sieć neuronowa wyliczyła sobie coś takiego. Nauczyły się że w ten sposób najszybciej nabija punkty i zawsze identycznie zaczyna. Zobaczymy jak to się sprawdzi w praktyce.

 

@Matrix_: mam sporo zastrzeżeń.

 

x=lerp(x,myobj.x,1) jest równoznaczny x=myobj.x

 

if (... thelowest.direction=angle_difference(0,180))

Woot? xD

 

A tworzenie tablicy dla wszystkich piłek jest słabe. U mnie na streamie widziałeś lepsze rozwiązanie szukania obiektu który spełnia warunki. :P

Poza tym podoba mi się.

Odnośnik do komentarza
Udostępnij na innych stronach

Moja sieć neuronowa wyliczyła sobie coś takiego. Nauczyły się że w ten sposób najszybciej nabija punkty i zawsze identycznie zaczyna. Zobaczymy jak to się sprawdzi w praktyce.

 

@Matrix_: mam sporo zastrzeżeń.

 

x=lerp(x,myobj.x,1) jest równoznaczny x=myobj.x

 

if (... thelowest.direction=angle_difference(0,180))

Woot? xD

 

A tworzenie tablicy dla wszystkich piłek jest słabe. U mnie na streamie widziałeś lepsze rozwiązanie szukania obiektu który spełnia warunki. :P

Poza tym podoba mi się.

 

angle_difference(0,180)) -> to miało być że jak spada w dół xD

 

x=lerp(x,myobj.x,1) -> na początku było x=myobj.x ale chciałem zrobić taką ładną animację, ale zauważyłem że ograniczenie powoduje mi obniżenie prędkości paletki...

 

Wiem, ale to było napisane przed oglądaniem twojego streamu :D

 

Poza tym podoba mi się.

Dziękuję za pierwsze miłe słowo od kilku miesięcy :D

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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

×
×
  • Dodaj nową pozycję...