TheGame: Era Botów
Prowadzący: Marcin Kalinowski
Opis
TheGame to napisana przeze mnie i mojego kolegę Janka Maruchę gra zręcznościowa. Wygląda tak:
Boty w trakcie walki (gif)
Na warsztatach wykorzystamy tę grę i będziemy pisać programy walczące.
Pomimo prostoty reguł i grafiki, gra pozwala na pisanie bardzo zaawansowanych botów.
Postaramy się zaprogramować uniki, dynamiczne namierzanie przeciwnika czy też bardziej rozbudowane strategie wykorzystujące te prymitywy.
Z założenia uczestnicy będą od pierwszych chwil walczyć między sobą.
Każdy będzie realizował swój pomysł na najlepszego bota a ja będę służył pomocą.
Dzięki temu trzeba będzie zrównoważyć i wziąć pod uwagę sporo czynników by osiągnąć zwycięstwo:
- Skomplikowanie algorytmu (np. namierzania) a czas w jakim można to napisać i uruchomić
- Planowanie ogólnej strategii a szybkie poprawki stopniowo usprawniające bota
- Które zdolności bota są najważniejszy by przetrwać?
- Jak wykorzystać sposób punktacji? (Zasady te pojawią się kiedyś wraz ze szczegółową dokumentacją faz jednej klatki gry i API serwerowego)
- I wiele innych...
Ponadto poza algorytmicznymi wyzwaniami będą też problemy programistyczne związane z zarządzaniem danymi otrzymywanymi od serwera czy wygodnym systemem planowania i wykonywania komend. Przyda się też podstawowa znajomość geometrii analitycznej.
Jest to forma bardzo zbliżona do zawodów Deadline24
Po ostatnim dniu zrobimy potyczkę kilku najlepszych botów na rzutniku - ostatecznie starcie na oczach wszystkich.
Będzie oczywiście masa nagród nie tylko za zwycięstwo ale i w wielu specjalnych kategoriach.
Wymagania
Tak naprawdę wystarczą podstawy programowania w Pythonie i trochę ogarniania komunikacji przez sieć (wysyłanie/odbieranie).
Będą sprawdzać czy ktoś da radę:
- W prosty sposób rozmawiać na bieżąco przez sieć
- Analizować i jakoś obrabiać proste dane od niego otrzymywane
- Wykorzystać geometrię analityczną w prostych przykładach (np. pod jakim kątem ustawić lufę by trafić poruszający się punkt)
Potrzebny sprzęt i oprogramowanie
- Komputer
- Python
- PyGame (moduł do Pythona) jeżeli chcemy rysować stan gry u siebie