Search
Knihovna textgame.py (0.0.6a)
from textgame import *
state = "zacatek" while state != "konec": if state == "zacatek": print("") print("Jsi sladkem ve znamem pivovaru. Je rano a zvoni ti budik.") print("Co udelas?") print("1: Pujdu do prace.") print("2: Zustanu doma.") choice = input("Tvoje volba: ") if choice == 1: state = "vyhra" if choice == 2: state = "prohra" if state == "vyhra": print("") print("Sel jsi do pivovaru a odvedl jsi dobrou praci. Vyhral jsi!") state = "konec" if state == "prohra": print("") print("Zustal jsi doma a z prace te vyhodili. Prohral jsi.") state = "konec" print("Konec hry.")
import random pocet = input("Zadejte pocet otazek: ") for i in range(1, pocet+1): otazka = random.randint(1, 2) print("") if otazka == 1: print("Jake je hlavni mesto Australie?") print("1. Canberra") print("2. Sydney") print("3. Praha") odpoved = input("Vase odpoved: ") if odpoved == 1: print("Spravne!") else: print("Spatne!") if otazka == 2: print("V jakem roce byl zalozen Plzensky Prazdroj?") print("1. 1841") print("2. 1842") print("3. 1843") odpoved = input("Vase odpoved: ") if odpoved == 2: print("Spravne!") else: print("Spatne!")
V této sekci se lehce seznámíme s dalším odvětvím informatiky, známým pod pojmem počítačová grafika, a hlavně si tu zopakujeme vše, co se dosud probíralo a co už byste měli ovládat (větvení programu, cykly, funkce, moduly, seznamy).
Každý obrázek v počítači se skládá z mnoha malých čtverečků, kterým se říká pixely. Pixely tvoří pravoúhlou mřížku (označme ji jako bitmapu), která pokrývá celý obrázek (Ano. I tenhle obrázek, který na vás svítí z monitoru!) Jeden pixel typicky v paměti počítače popíšeme pomocí tří čísel. Tato trojice je známá jako RGB. Jedná se o tři základní barvy (červená, zelená a modrá). Každé z těchto tří čísel vyjadřuje, jak moc daná barva ovlivní výslednou barvu celého pixelu. Kombinací hodnot jednotlivých barev (což za nás dělá displej), pak dostaneme výslednou barvu, kterou nám náš monitor odpovídající pixel obarví.
V následujícím cvičení si zkusíme zapsat do paměti počítače posloupnost čísel a necháme počítač, aby tato čísla interpretoval jako hodnoty RGB. Uvidíme, jestli se nám podaří tímto postupem nakreslit nějaký pěkný obrázek.
Paměť počítače pro nás bude jednoduše pythonovský seznam. Do seznamu budeme zapisovat postupně RGB všech pixelů na obrázku, který se snažíme vytvořit. Tento seznam pak uložíme do souboru a počítači řekneme, že tento soubor je obrázek.
Zní to složitě?
Nebojte se, část práce jsme již udělali za vás. Stáhněte si modul libbitmap.py, ve kterém jsou již uložené RGB některých základních barev a který nabízí funkci na zápis seznamu s daty do souboru .PPM, což je jednoduchý obrázkový soubor (mnohem jednodušší než například .PNG, .JPG či jiné, které pravděpodobně znáte).
Ufff. To už je ale textu. Rychle sem hodíme nějaký ukázkový kód, který nakreslí třeba žlutý čtverec o délce strany 50 pixelů.
""" bitmap_test.py created by Jan Toth (c) 2017 Ukazka pouziti knihovny 'libbitmap.py' """ # Importujeme vse z knihovny 'libbitmap.py' from libbitmap import * # Nastavime si pocatecni hodnoty nasich dat rozmer = 50 obrazek = [] # Zapiseme data do seznamu # Colours.<barva> nam poskytuje importovana knihovna # Pro prehled vsech dostupnych barev nahlednete do knihovny for i in range(rozmer**2): obrazek.extend(Colours.YELLOW) # Ulozime vytvorena data do souboru # save_image(obrazek, jmeno, sirka, vyska) nam poskytuje importovana knihovna save_image(obrazek, "zluty_ctverec", rozmer, rozmer)
Zdá se vám to jednoduché? Pokud ano, zkuste nakreslit vlastní obrázky a pochlubte se ostatním. Zajímavé mohou být státní vlajky. Začněte například polskou, pak můžete přejít na německou či francouzskou. No a samozřejmě by byla také hezká vlajka česká!
from libbitmap import* moje_barva = Colours.get_colour_from_hex(66ffe0) # A muzete pouzivat novou barvu!
Pokud se budete chtít svými výtvory pochlubit, pravděpodobně je budete chtít zobrazit ve Windows. Tento operační systém však bohužel tak jednoduchý formát, jako je .PPM, nezvládá interpretovat. Pro převod na např. .PNG můžete použít tento online konvertor.
— Martin Křížek 2021/09/08 15:01
Jako první získáme požadovanou výšku domu a zkontrolujeme, zda splňuje obě podmínky (liché číslo, větší nebo rovno 5).
vyska = int(input("Zadej vysku domu: ")) if (vyska < 5) or (vyska%2==0): print("Vyska musi byt liche cislo vetsi nez 5")
else: print((vyska//2)*" " + "#")
for a in range (0, int((vyska//2)-1)):
print(((vyska//2)-1-a)*" ", end="")
print("#", end="")
Vytvoříme mezeru uprostřed (štít střechy).
print((2*a+1)*" ", end="")
print("#")
print("#"*vyska)
for c in range (vyska-2): print("#" + " "*(vyska-2) + "#")
# Vojta vyska = int(input("Zadej vysku domu: ")) if (vyska < 5) or (vyska%2==0): print("Vyska musi byt liche cislo vetsi nez 5") else: print((vyska//2)*" " + "#") for a in range (0, int((vyska//2)-1)): print(((vyska//2)-1-a)*" ", end="") print("#", end="") print((2*a+1)*" ", end="") print("#") print("#"*vyska) for c in range (vyska-2): print("#" + " "*(vyska-2) + "#") print("#"*vyska)