Hra
Tato část je určena pro ilustraci základních pricipů použítých ve strukturovaném programování. A navrhl jsem ji jako hru pro její názornost a odlehčení.
Level 1
{
"title": "#1 - příkaz",
"description": "V prostředním okně máte na výběr dva příkazy - krok a rotaci. Jejich přetažením pomocí myši je můžete umístit do rámečku pod příkaz program. Cílem je aby modrá postavička snědla všechny červené kuličky.",
"place": {
"listOfBlocks":[[1,1,1,1,1],
[1,1,0,1,1],
[1,1,0,1,1],
[1,1,0,0,1],
[1,1,1,1,1]]
},
"characterIni": {
"xPos":1,
"yPos":2,
"rotation":0
},
"program": {
"canMove":true,
"canRotate":true,
"canVarX":false,
"canVarY":false,
"canVarRotate":false,
"canVarFrontType":false,
"canVarCurrentType":false,
"canIf":false,
"canIfElse":false,
"canDo": false,
"canWhile":false
},
"diagram": true
}
Level 2
{
"title": "#2 - cyklus",
"description": "V prostředním okně přibýl příkaz do. Cyklus bude opakovat příkazy které do něj vložíte tolikrát, kolikrát nastavíte. Puste se použít cyklus k řešení následujícího bludiště.",
"place": {
"listOfBlocks":[[1,1,1,1,1],
[1,0,0,0,1],
[1,0,1,0,1],
[1,0,0,0,1],
[1,1,1,1,1]]
},
"characterIni": {
"xPos":1,
"yPos":1,
"rotation":0
},
"program": {
"canMove":true,
"canRotate":true,
"canVarX":false,
"canVarY":false,
"canVarRotate":false,
"canVarFrontType":false,
"canVarCurrentType":false,
"canIf":false,
"canIfElse":false,
"canDo": true,
"canWhile":false
},
"diagram": true
}
Level 3
{
"title": "#3 - podmínka",
"description": "V prostředním okně přibýl příkaz if. IF je podmíněný příkaz. To znamená, že příkazy uvnitř se vakonají pouze pokud je podmínka splněna. Zde se podmínka zkládá ze třech částí: proměnná (x, y, rotation, typ, typPred, typZa, typVlevo, typPravo), logický operátor (==, <=, >=, >, <, /=) a hodnota. Význam proměnných je následující: x - pozice postavičky na ose x; y ...; rotation - natocení postavičky, výchozí rotace je 0 a dále může nabývat hodnot 90,180,270; typ - je typ políčka na kterém se postavička aktuálně nachází. Políčko s červenou kuličkou je typ 0, černé políčko je typ 1, políčko kde již červená kulička není je typ 3; typPred, typZa, typVlevo, typVpravo jsou jsou typ políčka nacházející se na pozicích, které naznačuje název proměnné. Pokuste se splnit bludiště s co nejmenším počtem použítých komponent.",
"place": {
"listOfBlocks":[[1,1,1,1,1,1],
[1,0,1,1,1,1],
[1,0,1,0,0,1],
[1,0,1,1,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]]
},
"characterIni": {
"xPos":1,
"yPos":1,
"rotation":0
},
"program": {
"canMove":true,
"canRotate":true,
"canVarX":true,
"canVarY":true,
"canVarRotate":true,
"canVarFrontType":true,
"canVarCurrentType":true,
"canIf":true,
"canIfElse":false,
"canDo": true,
"canWhile":false
},
"diagram": true
}
Level 4
{
"title": "#4 - podmínka 2",
"description": "V prostředním okně přibýl příkaz if..else. Tento příkaz se jako podmínka jen má navíc druhý blok, který se vykoná poduk podmínka není splněna.",
"place": {
"listOfBlocks":[[1,1,1,1,1,1],
[1,0,1,1,1,1],
[1,0,1,0,0,1],
[1,0,1,1,0,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]]
},
"characterIni": {
"xPos":1,
"yPos":1,
"rotation":0
},
"program": {
"canMove":true,
"canRotate":true,
"canVarX":true,
"canVarY":true,
"canVarRotate":true,
"canVarFrontType":true,
"canVarCurrentType":true,
"canIf":true,
"canIfElse":true,
"canDo": true,
"canWhile":false
},
"diagram": true
}
Level 5
{
"title": "#5 - moduly",
"description": "Celou dobu je pod blokem program tlačítko add module. Nyní přišel čas ho použít. Do modulu můžete vkládat příkazy jako do bloku program a následně modul moužít v programu. Moduly se používají pro zvýšení přehlednosti kódu, znovupoužitelnosti, atd.",
"place": {
"listOfBlocks":[[1,1,1,1,1,1,1],
[1,0,0,0,0,0,1],
[1,0,1,0,1,0,1],
[1,0,0,0,0,0,1],
[1,0,1,0,1,0,1],
[1,0,0,0,0,0,1],
[1,1,1,1,1,1,1]]
},
"characterIni": {
"xPos":1,
"yPos":1,
"rotation":0
},
"program": {
"canMove":true,
"canRotate":true,
"canVarX":true,
"canVarY":true,
"canVarRotate":true,
"canVarFrontType":true,
"canVarCurrentType":true,
"canIf":true,
"canIfElse":true,
"canDo": true,
"canWhile":false
},
"diagram": true
}