Quine Engine, Pandas, Fullstack
Seznámení se s principy 3D herních enginů
Zimní workshopy byly zaměřené na vývoj her, aplikací a práci s analytickými nástroji. Úhrnem žáci strávili 3 dny pod vedením Ondry, Samuela a Adama.(RenderWaves.com) Při workshopech jim asistovali naši absolventi Jan, Jakub a Elen (nyní studenti SŠ INFOTECH a TRIA).
V rámci workshopu “Seznámení se s principy 3D herních enginů”, měli žáci možnost poznat prostření herního enginu a vyzkoušet si tvorbu hry. Workshop byl určen především pro vybrané žáky 8-mých a 9-tých tříd.
Obsahem workshopu je vytvoření jednoduché vesmírné hry:
Design herní smyčky
Popis herní mapy.
Reprezentace hráče ve 2D prostoru. (Seznámení s vektorem, Středoškolské učivo)
Jednoduchý pohyb bodu po přímce.
Princip využití postupného dělení přímky
Vysvětlení pohybu bodu v čase (cyklická iterace dělícího bodu přímky)
Aplikace lerpu
Detekce hráče nepřítelem.
Vystřelení projektilu nepřítelem na hráče a naopak.
Detekce zásahu projektilem a odebrání hráče nebo nepřítele z mapy.
Stav hry výhra/prohra.
V průběhu workshopu se žáci pod vedením Ondry seznámili se s tvorbou programového kódu, který jim demonstroval praktické příklady užití algoritmizace v prostředí 3D herního enginu QUINE. Herní engine pro svůj chod používá vlastní programovací jazyk zvaný “qscc”, jehož návrh vychází z prolnutí jazyka C++ a Javy.
Obsah workshopu příkladem:
Základ algoritmizace: Generování jednoduché ohraničené herní mapy pomocí náhodného číselného intervalu v jazyce C:
// !/bin/qscc
string buf = "";
int width = 10;
int height = 10;
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (( j == 0 || j == (width -1)) ||
( i == 0 || i == (height-1)))
{
buf += "#";
} else {
int rand = rand(0,8);
switch(rand) {
case 2: // enemy
buf += "@";
break;
case 4: // wall
buf += "#";
break;
default:
buf += " ";
break;
}
}
}
buf += "\n";
}
printf("\n\n%s\n",buf);
Pokročilá ukázka rekurze: Postupné dělení přímky
Zdrojový kód
Výstup enginu
Pokročilá ukázka vektoru v pohybu na vystřelených projektilech z lodě.
Pokročilá ukázka mířidlo hráče a detekce hráče v radiusu nepřítele.
Vývoj moderní webové aplikace
Žáci si zkusisli vyvinout jednoduchou webovou aplikaci založenou na současných postupech vývoje. Naprogramovali si jednoduchý:
backend
frontend
Součásti workshopu byla pokročilejší ukázka s využitím:
node.js - open-source, cross-platformové prostředí založené na JavaScriptu,
Vue - JavaScriptový framework používaný k vývoji uživatelského rozhraní,
Hono - webový framework, který klade důraz na mimořádně rychlý výkon a minimální nároky,
Prisma - open-source sada nástrojů nové generace pro objektově-relační mapování (ORM) navržená pro zjednodušení databázových operací při vývoji aplikací,
Na konci workshopu se účastníci mohli podívat jak vytvořenou aplikaci zprovoznit v Kubernetu (platforma určená k automatizaci nasazování, škálování a provozu aplikačních kontejnerů). Ukázku realizoval náš absolvent Adam, který informatiku studoval na SŠ INFOTECH a nyní ve studiu stejného oboru pokračuje na VŠ.
PyDicom - práce se soubory DICOM
PyDicom
V rámci našich workshopů s skriptovacím jazykem Python si žáci odzkoušeli jak číst a zobrazit data z formátu DICOM pro ukládání medicínských dat. V kombinaci s knihovnou OpenCV a NumPy se nám podařilo data zobrazit. Pro ukázku jsme použili dcm soubory, které jsou volně k dispozici na internetu. Načtená date jsme upravovali s pomocí knihovny NumPy pro zvýraznění kontrastu, apod. Workshop je zároveň zajímavou ukázkou aplikované matematiky. Tenhle workshop pod vedením Samuela byl velmi zajímavý.
Pandas - analytická knihovna
Python je knihovna pro práci s daty, kterou lze využít pro různé analýzy. Žáci si mohli společně se Samuelem takovou jednoduchou analýzu vyzkoušet.