Imię i nazwisko:
Adres email:

Poleć treść:


Roboty, wirtualna arena, igrzyska śmierci….

Adam Jurkiewicz, 19 Czerwiec 15 Dodaj komentarz Wyślij Drukuj

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ń


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


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?

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 i 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..."

 


* * *

 
 O autorze:
Adam Jurkiewicz  

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.

 

 

Aktualna ocena

0

Oceń
Podziel się
KOMENTARZE
Aktualnie brak komentarzy. Bądź pierwszy, wyraź swoją opinię

DODAJ KOMENTARZ
Zaloguj się albo Dodaj komentarz jako gość.

Dodaj komentarz:



ZOBACZ TAKŻE
REKLAMA
SPOŁECZNOŚĆ
KATEGORIE
NAJNOWSZE ARTYKUŁY

Szkoły niepubliczne skrzywdzone? STO interweniuje w sprawie dotacji

Redakcja portalu 14 Wrzesień 2019

30 lat wolności - zapraszamy na konferencję dla nauczycieli!

Redakcja portalu 13 Wrzesień 2019

HFPC pyta Ministerstwo Edukacji Narodowej o sytuację uczniów z niepełnosprawnościami

Redakcja portalu 07 Wrzesień 2019

Startuje II edycja Konkursu #cojaczytam

Redakcja portalu 06 Wrzesień 2019

Narodowe Czytanie 2019

Redakcja portalu 05 Wrzesień 2019


OSTATNIE KOMENTARZE

Wychowanie w szkole, czyli naprawdę dobra zmiana

~ Staszek(Gość) z: http://www.parental.pl/ 03 Listopad 2016, 13:21

Ku reformie szkół średnich - część I

~ Blanka(Gość) z: http://www.kwadransakademicki.pl/ 03 Listopad 2016, 13:18

"Takie będą Rzeczypospolite, jakie ich młodzieży chowanie"

~ Gość 03 Listopad 2016, 13:15

"Takie będą Rzeczypospolite, jakie ich młodzieży chowanie"

~ Gość 03 Listopad 2016, 13:14

Presja rodziców na dzieci - Wykład Margret Rasfeld

03 Listopad 2016, 13:09


Powrót do góry
logo_unii_europejskiej