##### IB113 skupina 05 #####
##### cvičení 07


### HÁDEJ ČÍSLO

# UKOL 1

# Napište funkci guess_number_human(upper_bound), která umožňuje hrát s počítačem
# hru na hádání čísla: počítač si myslí číslo (celé číslo v intervalu [1, upper_bound]),
# hráč se ho snaží uhodnout. Po každém pokusu dostane hráč od počítače informaci, zda
# je hledané číslo menší nebo větší než to, které si tipnul.

>>> guess_number_human(10)
--- pokus c. 1 ---
Zadej svuj tip: 5
Moje cislo je mensi.

--- pokus c. 2 ---
Zadej svuj tip: 3
Moje cislo je vetsi.

--- pokus c. 3 ---
Zadej svuj tip: 4
Jo, to je ono!

# ÚKOL 2

# Napište funkci guess_number_pc(upper_bound), která umožňuje hrát s počítačem
# hru na hádání čísla, tentokrát si však číslo myslí uživatel a počítač hádá.
# Po každém pokusu si počítač vyžádá od uživatele informaci, zda je myšlené číslo
# větší nebo menší než to, které si počítač tipnul.

>>> guess_number_pc(10)
Mysli si cislo od 1 do 10.
Je cislo 5 mensi (0), rovno (1), nebo vetsi (2) nez tvoje cislo?
2
Je cislo 2 mensi (0), rovno (1), nebo vetsi (2) nez tvoje cislo?
2
Tvoje cislo je 1.


# UKOL 3

# Napište funkci guess_number_pc_pc(upper_bound), která vykoná hru v hádání
# myšleného čísla počítače proti počítači. Na závěr vypíše počet pokusů potřebných
# k uhádnutí čísla.

>>> guess_number_pc_pc(10)
A: Myslim si cislo od 1 do 10

--- pokus c. 1 ---
B: Tipuji 5
A: Moje cislo je mensi.

--- pokus c. 2 ---
B: Tipuji 2
A: Moje cislo je vetsi.

--- pokus c. 3 ---
B: Tipuji 3
A: Jo, to je ono!

Uhadnuto na 3 pokusu


### BINÁRNÍ VYHLEDÁVÁNÍ


# ÚKOL 4
# Napište funkci binary_search(needle, haystack), která zjistí, zda se hodnota needle
# nachází ve vzestupně uspořádaném seznamu haystack. Funkce musí mít logaritmickou
# časovou složitost.

>>> print(binary_search(5, [1, 2, 5, 8]))
True
>>> print(binary_search(4, [1, 2, 5, 8]))
False


https://www.khanacademy.org/computer-programming/guess-my-number-2/6095780544249856
