Roboty, wirtualna arena, igrzyska śmierci …

Źródło: pixabay.com
Źródło: pixabay.com

Czy marzysz o tym, aby stworzony przez Ciebie robot był niezniszczalny? Pokonywał przeciwników bez specjalnych uszkodzeń? Czy chcesz zyskać międzynarodową sławę jako „haker(ka) roku” lub „niestraszony(a) coder”? Teraz to wszystko jest w zasięgu ręki, a właściwie obu rąk, którymi tworzysz …..

Aha, czytasz dalej, zatem interesuje Cię ten temat – to dobrze. Przejdę zatem do konkretów.

Wirtualna arena zmagań.

rg_simul

Roboty walczą ze sobą na specjalnej arenie – trochę przypomina ona szachownicę, ale poza tym jest inna. Roboty pojawiają się w losowo wybranych tzw. punktach wejścia (SPAWN points), a następnie mogą poruszać sie po planszy w sposób, jaki zaprogramujemy, tworząc ich inteligencję (AI) – oczywiście kodując ją w Pythonie.

AI – Artificial Intelligence – Inteligencja naszego robota.

rg_kod_robota

To, w jaki sposób „walczy Twój robot”, zależy tylko od Ciebie. Tworzysz kod w Pythonie, który determinuje zachowanie robota. Możesz uczyć się od najlepszych – inni programiści udostępniają swój kod, Ty również możesz. To nazywa się OpenSource – Otwarty Kod.

# snoflake by sne11ius
# http://robotgame.org/viewrobot/1250

import rg

class Robot:

 def num_enemies(self, game):
     enemies = 0
     for location, bot in game.get('robots').items():
         if bot.get('player_id') != self.player_id:
             if 1 == rg.wdist(self.location, location):
                 enemies += 1
 return enemies

 def num_frieds(self, game):
     friends = 0
         for location, bot in game.get('robots').items():
             if bot.get('player_id') == self.player_id:
                 if 1 == rg.wdist(self.location, location):
                     friends += 1
 return friends

 def act(self, game):
     num_enemies = self.num_enemies(game)
     if num_enemies * 9 > self.hp:
         return ['suicide']

 min_distance = float("inf")
 move_to = rg.CENTER_POINT
 for location, bot in game.get('robots').items():
     if bot.get('player_id') != self.player_id:
         if rg.dist(location, self.location) <= 1:
             return ['attack', location]
     if bot.get('player_id') == self.player_id:
         if rg.wdist(location, self.location) < min_distance:
             min_distance = rg.wdist(location, self.location)
 move_to = location
 if min_distance < 2:
     move_to = rg.CENTER_POINT

 if self.location == rg.CENTER_POINT:
     return ['guard']

 if self.num_frieds(game) > 1:
     return ['guard']

 return ['move', rg.toward(self.location, move_to)]

Walka – czy Twój robot jest odważny?

rg_run

W każdej chwili możesz poddać Twojego robota testowi – uruchamiając „walkę” z dowolnym innym robotem. Przeliczenie 100 rund walki (standardowo) na komputerze z procesorem Core2Duo 2 x 2,26 GHz trwa około 15 sekund. Potem możesz sopokojnie zobaczyć wizualizacje walki.

Wyzwanie – dołącz do nas !

Chcesz spróbować nauczyć się programować takie roboty? Nic prostszego – pokaż ten artykuł nauczycielowi/nauczycielce informatyki z Twojej lub zaprzyjaźnionej szkoły. Centrum Edukacji Obywatelskiej prowadzi projekt o nazwie „Koduj z Klasą”, w którym szkoli nauczycieli  organizuje rozgrywki robotów.

Aby dołączyć do programu, po prostu kliknij link – ZAPISY do Koduj z Klasą.

Jestem jednym z Ambasadorów programu, więc może sie zdarzyć, że pojawię się w Twojej szkole….

„Let the challenge begin…”


Adam Jurkiewicz – haker edukacji, absolwent kursów Massachusetts Institute of Technology z języka programowania Python.

Trener technologii Web 2.0 ze szczególnym uwzględnieniem otwartych zasobów edukacyjnych. Programista, administrator systemów UNIX/Linux, twórca remiksu edukacyjnego FREE_Desktop – remiksu systemu operacyjnego dla wolnych ludzi, legalnego i darmowego dla wszystkich.

Prelegent oraz prowadzący warsztaty dla nauczycieli w trakcie wielu konferencji edukacyjnych, m.in: Od Becika Każdy Klika w Kołobrzegu, K@SSK w Nowym Tomyślu, Ogólnopolski Zjazd Opekunów Pracowni Szkolnych w Mrozach, Nowoczesne Technologie dla Edukacji w Radomiu.

Współpracownik Fundacji Wolnego i Otwartego Oprogramowania, w projekcie „Strategie Wolnych i Otwartych Implementacji” twórca części scenariuszy mechatronicznych zajęć pozalekcyjnych z użyciem oprogramowania Scratch i mikrokontrolerów kompatybilnych z Arduino oraz ekspert ds. systemów i współtwórca systemu operacyjnego Szkolny Remiks Uczniowski.

Współpracownik Fundacji Interkl@sa, w projekcie „E-Pasj@ – nowoczesne nauczanie” ekspert ds. otwartego oprogramowania edukacyjnego. Prowadzi spotkania edukacyjne z nauczycielami w całym kraju.

Współpracownik Centrum Edukacji Obywatelskiej, w projekcie „Koduj z Klasą” ambasador i trener nauczycieli w zakresie języka programowania Python.

Propagator Wolnego i Otwartego Oprogramowania, otwartej cyfrowej mapy OpenStreet Map i wszelkich „otwartych” rozwiązań. Prywatnie – miłośnik szant, stateczny mąż i ojciec, zwariowany nauczyciel młodzieży jeśli tylko ma okazję.

Print Friendly

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.