Tu DOWNLOAD
Breakout
Klasyczna gra z 1976 będzie pierwszym sprawdzianem dla waszych umiejętności pisania botów. Każdy zna grę, w której gracz porusza paletką i odbija kulkę w stronę klocków. W Breakout jedynym zadaniem gracza jest zniszczenie wszystkich klocków, aby jednak nie zanudzić programistów, gra różni się od oryginału - zawiera niektóre bonusy wzorowane na grze DX-ball. Bonusy mogą być przydatne dla gracza/bota lub utrudniające mu grę.
Jak są liczone punkty?
W grze liczone są dwa parametry. Pierwszy to punkty - za każdy zbity klocek gracz otrzymuje 100 punktów. Drugim parametrem jest czas. Ostatecznym wynikiem, który zadecyduje o miejscu, które zajmie gracz jest jednak ilość punktów podzielona na czas - ilość punktów na sekundę. Więcej punktów - lepszy wynik.
Poziom trudności
Jest raczej niski. Sprawdźcie najprostszego bota
GML
x = obj_ball.x + random_range(-20,20)który wykręca wyniki w okolicach 60 punktów. Dla bardziej zaawansowanych ciekawymi zadaniami mogą okazać się takie rzeczy jak odbijanie wielu piłek, unikanie złych a łapanie dobrych bonusów i precyzyjne ustawianie paletki.
Zasady gry
Gra kończy się, kiedy bot:
zbije wszystkie klocki lub
straci wszystkie życia lub
czas przekroczy cztery minuty
Paletka ma ograniczoną prędkość - nie będzie sytuacji w której przy kilku piłkach paletka będzie się teleportowała do najniższej lub unikała w ten sposób złych bonusów.
Średnia jest liczona jak gracz będzie miał więcej niż 1000 punktów.
Piłka po odbijaniu się od czegokolwiek minimalnie przyspiesza, ale jej prędkość jest ograniczona.
Utrata wszystkich piłek znajdujących się na mapie kończy się utratą życia i wstawieniu nowej piłki, która jest wolniejsza - znowu musi się rozpędzić.
Piłka jest odbijana od paletki w inny sposób niż w klasycznym breakoucie, przypomina bardziej współczesne odsłony.
Bonusy nie są pochowane w klockach, a pojawiają się co 6 zbitych bloków - unikamy w ten sposób sytuacji, gdy ktoś miał więcej szczęścia i trafił na ''szczęśliwy bloczek'' w którym był przydatny bonus.
Ustawienie klocków będzie inne w grze rankingowej.
Stracenie wszystkich żyć eliminuje gracza i jego wynik nie jest brany pod uwagę.
Zasady pisania kodu
Cały kod umieszczajcie w skryptach bar_int i bar_ai, możecie tworzyć własne skrypty
Nie można tworzyć nowych instancji i wpływać na nie lub na istniejące.
Nie można modyfikować żadnych zmiennych wbudowanych dla żadnej instancji z wyjątkiem pozycji x obiektu obj_bar. Oczywiście wszystkie zmienne można odczytywać.
Jeżeli nastąpi próba zmiany zmiennej x obiektu obj_bar to zostanie ona obcięta do dozwolonej wartości, gra sama tego pilnuje. Uniemożliwia to przeskakiwanie paletki
Nie można wpływać na zmienne globalne, szczególnie na global.game_rank_score :P
Dopilnujcie, żeby kod nie powodował błędów i był wydajny. Jeżeli coś takiego się zdarzy to autor zostanie o tym poinformowany i będzie miał szansę na poprawkę.
Jeżeli autor użyje czegoś co zostanie przeze mnie uznane za nieuczciwe a nie zostało podane to w tym regulaminie, skontaktujemy się i dojdziemy do tego jak to naprawić - bądźcie wyrozumiali, jesteśmy tu po to aby się dobrze bawić :)
Jeżeli ktoś prześle pracę przed terminem, nie będzie miał możliwości dosłania ''lepszej wersji''. Ma to zapobiec codziennym aktualizacją. Zastanówcie się więc dwa razy zanim prześlecie pracę.
Bonusy
Bonusy są identyfikowane po image_index
0 - +1000 punktów
1 - -1000 punktów
2 - Węższa paletka o 33%
3 - Szersza paletka o 33%
4 - Rozdwojenie każdej piłki
Wyniki
Każdy bot będzie miał trzy szanse, aby zdobyć jak najwyższy wynik. Boty innych graczy będą grały na tych samych seedach.
Przebieg zawodów będzie opublikowany na YouTubie.
Uczestnicy nie muszą (ale mogą) przesyłać całego projektu. Wystarczy kod z bar_int i bar_ai
Na prace czekam do 28 lutego
Przesyłajcie je na Prywatną Wiadomość.
(wyniki powinny pojawić się w ciągu tygodnia.)
Łatwe? Łatwe.
Tu DOWNLOAD