Strona główna

Fab-Hack

Zasady FabHacku

W każdą pierwszą sobotę miesiąca o 9:00 startuje nasz FAB-HACK! Co to oznacza?


Na podanego podczas zapisów maila dostajesz zadanie programistyczne, które można wykonać w dowolnym z trzech języków: C++, Java, Python. W mailu dostaniesz wszelkie instrukcje dotyczące wykonania zadania. Po rozwiązaniu zadania należy je załadować na publiczne repozytorium GitHub, a następnie umieścić link do niego w odpowiedzi na wysłanego przez nas maila do końca wyznaczonego czasu.


Zapisy trwają do końca piątku poprzedzającego datę FAB-HACK.




Przykład: Graficzna symulacja działania skrzyżowania wraz z sygnalizacją świetlną


  1. Środowisko symulacji
    • Wybrać język programowania: C++, Java albo Python.
    • Utworzyć aplikację z graficzną wizualizacją skrzyżowania (np. GUI, biblioteka graficzna).
    • Przedstawić na ekranie skrzyżowanie z sygnalizacją świetlną i pojazdami.
  2. Model pojazdu
    • Każdy pojazd jest osobnym wątkiem.
    • Pojazd porusza się w stronę skrzyżowania.
    • Dla każdego pojazdu losowany jest kierunek ruchu: jazda na wprost, skręt w lewo, skręt w prawo.
  3. Zasady ruchu
    • Pojazdy muszą przestrzegać sygnalizacji świetlnej.
    • Pojazdy zatrzymują się na czerwonym świetle, ruszają na zielonym.
    • Ruch powinien być płynny i zsynchronizowany z czasem zmiany świateł.
  4. Sygnalizacja świetlna
    • Zaimplementować system świateł na skrzyżowaniu.
    • Światła powinny zmieniać się w cyklach (np. zielone → żółte → czerwone).
    • Cykl musi obowiązywać wszystkie pasy ruchu.
  5. Symulacja ruchu
    • Nowe pojazdy powinny być generowane losowo.
    • Symulacja powinna pokazywać wiele pojazdów jednocześnie.
    • Powinno być widoczne, że pojazdy „czekają” przed światłami i wjeżdżają na skrzyżowanie dopiero przy odpowiednim sygnale.
  6. Techniczne wymagania
    • Użyć wielowątkowości do reprezentacji niezależnych pojazdów.
    • Użyć wybranej biblioteki graficznej (np. Python: tkinter, pygame, PyQt, Java: JavaFX, Swing, C++: SFML, Qt).
    • Zadbać o synchronizację wątków, aby pojazdy nie wjeżdżały na skrzyżowanie wbrew zasadom.
  7. Kryteria ukończenia
    • Symulacja działa do momentu jej zatrzymania przez użytkownika.
    • Na ekranie widoczne są: skrzyżowanie, sygnalizacja, pojazdy.
    • Pojazdy poruszają się zgodnie z wylosowanym kierunkiem i zatrzymują się na czerwonym świetle.
  8. Termin realizacji
    • Do dziś, godz. 24:00.
  1. Środowisko symulacji
    • Wybrać język programowania: C++, Java albo Python.
    • Utworzyć aplikację z graficzną wizualizacją skrzyżowania (np. GUI, biblioteka graficzna).
    • Przedstawić na ekranie skrzyżowanie z sygnalizacją świetlną i pojazdami.
  2. Model pojazdu
    • Każdy pojazd jest osobnym wątkiem.
    • Pojazd porusza się w stronę skrzyżowania.
    • Dla każdego pojazdu losowany jest kierunek ruchu: jazda na wprost, skręt w lewo, skręt w prawo.
  3. Zasady ruchu
    • Pojazdy muszą przestrzegać sygnalizacji świetlnej.
    • Pojazdy zatrzymują się na czerwonym świetle, ruszają na zielonym.
    • Ruch powinien być płynny i zsynchronizowany z czasem zmiany świateł.
  4. Sygnalizacja świetlna
    • Zaimplementować system świateł na skrzyżowaniu.
    • Światła powinny zmieniać się w cyklach (np. zielone → żółte → czerwone).
    • Cykl musi obowiązywać wszystkie pasy ruchu.
  5. Symulacja ruchu
    • Nowe pojazdy powinny być generowane losowo.
    • Symulacja powinna pokazywać wiele pojazdów jednocześnie.
    • Powinno być widoczne, że pojazdy „czekają” przed światłami i wjeżdżają na skrzyżowanie dopiero przy odpowiednim sygnale.
  6. Techniczne wymagania
    • Użyć wielowątkowości do reprezentacji niezależnych pojazdów.
    • Użyć wybranej biblioteki graficznej (np. Python: tkinter, pygame, PyQt, Java: JavaFX, Swing, C++: SFML, Qt).
    • Zadbać o synchronizację wątków, aby pojazdy nie wjeżdżały na skrzyżowanie wbrew zasadom.
  7. Kryteria ukończenia
    • Symulacja działa do momentu jej zatrzymania przez użytkownika.
    • Na ekranie widoczne są: skrzyżowanie, sygnalizacja, pojazdy.
    • Pojazdy poruszają się zgodnie z wylosowanym kierunkiem i zatrzymują się na czerwonym świetle.
  8. Termin realizacji
    • Do dziś, godz. 24:00.

Nadchodzące FabHacki

Temat: Wodne zagadki
Data: 06.12.2025
Godzina startu: 09:00
Limit czasu: 2 godzin
Liczba uczestników: 12
Zapisz się
Temat: Kalejdoskop
Data: 03.01.2026
Godzina startu: 09:00
Limit czasu: 3 godzin
Liczba uczestników: 6
Zapisz się

Historia FabHacków

Tabela wyników
`
Data Fabhacku Temat Fabhacku Liczba uczestników Zwycięzca
08.11.2025 Dron w kosmosie 14
04.10.2025 System czasu 18 Kamila J.