DoDo / Programování

Mirek Kučera - vvendigo@seznam.cz

10. února

Programování bez počítače

Představil jsem počítač LAME 1.0 a zkoušeli jsme vymýšlet programy odpovídající jeho pramalým schopnostem.

Zkusil jsem naprogramovat jakýsi jeho emulator. Knihovna je ke stažení tady. Použití:

from lamemulator import *
  
LAME_ON() # start emulatoru

BOD(1, 0) # nakresli bod
SLEP(2.0) # sleep(x)
MAŽ(1, 0) # nebo MAZ(1, 0)
ČUM(1, 0) # nebo CUM(1, 0) - vrati hodnotu 1 nebo 0 podle toho jestli je na dane pozici bod
INPUT()      # ceka na stisknuti a pak vrati pismeno, ktere bylo stisknuto
INPUT(False) # s parametrem False vrati hodnotu hned, ikdyz nebylo nic stisknuto

LAME_OFF() # vypnuti emulatoru

# zbytek prikazu (smycky, podminky, atd.) doda Python

24. února

Nejjednodušší práce se souborem v PHP

$cislo = file_get_contents('cislo.txt'); // nacte obsah souboru jako text a ten se vlozi do promenne $cislo

if (!$cislo) { // pokud soubor neexistoval, vratila funkce hodnotu false
    $cislo = 0;
}

file_put_contents('cislo.txt', $cislo); // zapise obsah promenne do souboru (prepise ho)

PHP na rozdíl od Pythonu interpretuje textové proměnné obsahující čislice jako číslo, pokud použijeme aritmetickou operaci. Takže např. "10" + 1 == 11.

PHP má celkem pěknou dokumentaci, ale bohužel ne v češtině. Pěkný je třeba přehled funkcí podle toho, co chceme dělat.

3. března

Praktické rady

17. března

Code.org

Na code.org lze zkoušet základy programování třeba v prostředí na motivy minecraftu.

31. března

Funkce jako hodnota

Názvy funkcí lze používat jako hodnotu a přiřazovat je do proměnných. Občas se to může hodit. Funkci pak zavoláme tím, že přidáme závorky. Funguje to i v Javascriptu a jiných jazycích.

Python:

blabla = print

blabla('Ahoj!')
# vytiskne Ahoj!


# pouziji jsme to pro nastaveni typu hrace u Piskvorek,
# zhruba takto:
hrac1 = pocitac # nekde vyse mame funkci pocitac(), ktera obsluhuje tah pocitace
hrac2 = clovek  # to same pro cloveka

while 1:
    zobraz_desku()
    hrac1()
    if dohrano():
        break
    zobraz_desku()
    hrac2()
    if dohrano():
        break
v JS podobne:
var blabla = alert;
blabla('Hola!')
// otevre okenko s textem Hola!

Časované a anonymní funkce v JS

// upne normalni funkce:

function zobraz_cas() {
    document.body.innerHTML = Date();
}

setTimeout(zobraz_cas, 1000); // za vterinu nahradi telo stranky aktualnim datem a casem

setInterval(zobraz_cas, 1000); // kazdou vterinu nahradi telo stranky akt. datem a casem


// za pouziti anonymni funkce (funkci definujeme primo tam, kde ji potrebujem, protoze jinde ji volat neplanujeme)
setInterval(function(){ document.body.innerHTML = Date(); }, 1000);
// a moderni zapis tehoz:
setInterval( ()=>{ document.body.innerHTML = Date(); }, 1000);

// casovaci funkce vraci identifikator, ten muzeme pouzit pro jejich zruseni:
var t = setTimeout(zobraz_cas, 1000);
clearTimeout(t); // ihned jsme timeout zrusili, nestane se nic
// tohle se casto pouziva, pokud cekame treba na nejakou akci uzivatele po omezenou dobu
// podobne clearInterval()

21. dubna

Zabalení pythonového programu

Pokud chceme někomu poslat program v Pythonu, musí mít nainstalován python a potřebné knihovny. Dá se to vyřešit pomocí pyinstalleru.

# instalace:
pip install pyinstaller

# v adresari s programem:
pyinstaller --onefile ten_program.py

# zalozi podslozku dist/ a v ni bude vysledny spustitelny soubor
# pozor, zabali jen program, python a knihovny. Data (obrazky apod) ne.

# program se bude spoustet bez okna konzole: (vhodne pro programy s pygame)
pyinstaller -F -w ten_program.py