Snake 12

Treść poniższego regulaminu może ulec drobnym zmianom, które będą wprowadzane sukcesywnie na wniosek komitetu organizacyjnego lub uczestników konkursu.

1. Snake

1.1 Opis

Celem konkurencji jest zaprojektowanie i zaprogramowanie robota zdolnego do wyszukania i przejechania możliwie najdłuższej ścieżki po planszy 6×6 pól omijając przy tym przeszkody.

1.2 Regulamin

  • Maksymalny czas wykonania zadania to 4 minuty,
  • Przez pole planszy rozumie się każde skrzyżowanie linii planszy,
  • Robot porusza się po białej kwadratowej planszy podzielonej, za pomocą czarnej linii grubości 2cm, na 25 kwadratów (w układzie 5×5), o wymiarze 20x20cm każde, tworzących 36 pól (w układzie 6×6). Na zewnątrz planszy znajduję się strefa o szerokości 20cm, po której robot może się swobodnie poruszać,
  • Przez znajdowanie się na polu rozumie się, że pole (skrzyżowanie) jest pod kostką NXT (w kwestiach spornych w tej materii ostateczną decyzję podejmuje jury),
  • Robot zaczyna konkurencje w prawym dolnym rogu mapy (w taki sposób, że kostka znajduje się nad prawym dolnym polem), zwrócony do góry (orientację robota definiujemy jako kierunek w którym zacznie się on poruszać w przypadku włączenia silników – jeśli ta definicja jest niewystarczająca za obowiązującą przyjmuje się zadeklarowaną przez kapitana drużyny),
  • Na mapie znajdują się 3 sześciany wykonane z klocków lego (dowolnego koloru), stojące na niektórych skrzyżowaniach linii planszy,
  • Układ mapy będzie taki sam dla wszystkich drużyn i zostanie wylosowany bezpośrednio przed rozpoczęciem konkurencji,
  • Poprzez zadeklarowanie pola rozumie się wydanie sygnału dźwiękowego (pojedyncze piknięcie) podczas znajdowania się na nim,
  • Robot sygnalizuje zakończenie konkurencji wydaniem dźwięku (2 szybkie piknięcia)
  • Robot może zostać zdyskwalifikowany w następujących momentach:
    • Łamanie zasad konkursu,
    • Przekroczenie murku bezpieczeństwa jakąkolwiek swoją częścią,
    • Wykonywanie dalszych czynności po zasygnalizowaniu zakończenia,
    • Wykonywanie dalszych czynności po upływie czasu konkurencji.
  • Zadaniem robota jest:
    • Zeskanowanie mapy (wykrycie 3 przeszkód) i wyświetlenie jej na ekranie,
    • Znalezienie możliwie najdłuższej ścieżki po polach planszy (nie przechodzącej przez przeszkody)
    • Przejechanie znalezionej ścieżki
  • Definicja ścieżki przejechanej przez robota:
    • Na początku konkurencji ścieżka robota jest pusta
    • Za każdym razem, gdy robot próbuje zadeklarować pole:
      • Jeśli znajduje się na jakimś polu (kostka jest nad skrzyżowaniem), pole to nie występuje jeszcze na ścieżce, nie znajduje (znajdowała) się na nim przeszkoda, a pole jest spójne z dotychczasową ścieżką (jest 4-spójne z ostatnio dodanym polem do ścieżki) – to jest ono dodawane do ścieżki,
      • Jeśli robot nie znajduje się na żadnym polu, nie jest ono 4-spójne z ostatnim polem na ścieżce lub pole jest już na ścieżce – nic się nie dzieje (poza naliczeniem odpowiednich punktów karnych)
      • Jeśli robot znajduje się na polu zajmowanym (pierwotnie) przez przeszkodę – przejazd uznawany jest za zakończony w tym miejscu

1.3 Punktacja

  • +5 punktów za każde wyświetlenie poprawnie lokalizacji przeszkody
  • -5 punktów za każde wyświetlenie przeszkody tam, gdzie jej nie ma
  • -1 punkt za każde zadeklarowanie pola, które nie może być (ze względu na regulamin) dodane do ścieżki (ale nie więcej niż -5 punktów w sumie)
  • +1 punkt za każdy punkt ciągłej, poprawnej ścieżki wyświetlonej na LCD (poprawnej w sensie – bez samoprzecięć oraz nie przechodzącej przez żadną z prawdziwych przeszkód)
  • +2 punkty za każdy punkt ciągłej, poprawnej (i zgodnej z wyświetloną na LCD) ścieżki przejechanej przez robota (poprawnej w sensie – bez samoprzecięć oraz nie przechodzącej przez żadną z prawdziwych przeszkód)
  • +1 punkt za każdy punkt ciągłej, poprawnej (ale nie zgodnej z wyświetloną na LCD) ścieżki przejechanej przez robota (poprawnej w sensie – bez samoprzecięć oraz nie przechodzącej przez żadną z prawdziwych przeszkód)

Ścieżki analizowane są pole po polu, więc jeśli w którymś miejscu przechodzi ona przez przeszkodę/ma samoprzecięcie to naliczane są punkty za ten odcinek, który był poprawny

1.4 Opis planszy

  • Plansza jest kwadratem o boku 152cm na którym centralnie umieszczona jest krata 5×5.
  • Krata składa się z 25 pól o wymiarach 20x20cm rozdzielonych czarną linią o grubości 2cm (linia nie wlicza się w rozmiar pola).
  • Na zewnątrz kraty znajduję się strefa o bezpieczeństwa o szerokości 20cm. Robot może opuścić planszę na własną odpowiedzialność.
  • Przeszkodami są prostopadłościany z klocków Lego o podstawi 6×6 pinów i wysokości 10 klocków (około 10cm).

1.5 Opis wyświetlania informacji na LCD

Zważywszy na ograniczone miejsce na LCD (8×16 znaków) używamy następującej konwencji:

Pola ponumerowane są od lewego górnego rogu od lewej do prawej a następnie z góry na dół, czyli

1__2__3__4__5__6
7__8__9__10_11_12
13_14_15_16_17_18
19_20_21_22_23_24
25_26_27_28_29_30
31_32_33_34_35_36

Format odpowiedzi:

a1,a2,a3|b1,b2,...,b33

gdzie:
a1,a2,a3 – lokalizacje przeszkód (numery, albo „_”, jeśli robot nie chce ich deklarować)
b1,b2,…,b33 – numery kolejnych elementów ścieżki po której robot zamierza jechać (kolejne numery, jeśli ścieżka jest krótsza niż 33 pola, to po prostu kolejnych nie wyświetla)

Przykłady:

------
XX----
------
----X-
------
------

LCD: 7,8,23|1,2,3,4,5,6,12,11,10,9,15,14,13,19,20,21,22,16,17,18,24,30,29,28,27,26,25,31,32,33,34,35,36

Zakładając, że robot poprawnie przejechał po planszy daje mu to:
15pkt (za poprawnie oznaczone przeszkody) + 33pkt (za wyświetloną ścieżkę) + 66pkt (za poprawny przejazd) = 114pkt

Przykładowo ten sam przejazd, jeśli robot niczego nie wyświetli na LCD:
33pkt (za poprawny przejazd, ale bez pokrycia na LCD)