00000001 - Jednoduchá kalkulačka
00000010 - Odebírání zápalek
00000100 - Gregoriánský kalendář
00001000 - Hádání kombinace
00010000 - Vigenérova šifra
00100000 - Hledání min
01000000 - Házení kostkou
10000000 - Conway's Game of Life
Měsíc uběhl, a je čas si zase trochu pohrát. V minulém dílu jsme si připomněli z čeho pojmenování počítače pochází a k čemu byl původně určený, proto jsme si také trochu započítali. Tentokrát se budeme věnovat spíš tomu hraní, ale začneme zase malým náhledem do historie.
Počítač? Kdo by proboha dneska chtěl počítač?
V první polovině sedmdesátých let vznikly první mikroprocesory, a počítačoví nadšenci konečně měli možnost pořídít si vlastní počítač domů. Vynecháme mnoho podivností a stavebnic, kterých vzniklo většinou jenom pár kusů (jako například Apple 1), a vrhneme se na sériově vyráběné stroje. První takový byl francouzský Micral, po něm se objevil americký Altair, a několik dalších, ale to všechno byly pořád bedny se spoustou přepínačů a světýlek inspirované tehdejšími minipočítači, sice úchvatné pro geeky, ale nic pro běžného smrtelníka.
To se změnilo na jaře roku 1977, kdy se objevil první počítač určený pro spotřebitele, Commodore PET. Několik týdnů po něm se představil i legendární Apple II, a ještě o něco později Tandy TRS-80, první skutečně levný mikropočítač.
Ovšem co bylo levné pro Američany, nebylo levné pro průměrného (západního) Evropana, takže na naší straně Velké louže si tyhle zámořské zázraky mohl pořídit jenom málokdo. To měl brzy napravit Clive Sinclair, britský vynálezce a génius spotřební elektroniky, který už v šedesátých letech vyráběl nejmenší tranzistorová rádia na světě, menší než krabička zápalek, v sedmdesátých potom nejlevnější kalkulačky a nejjednodušší náramkové digitální hodinky, které si mohl člověk sám sestavit ze stavebnice, když nechtěl připlatit pár liber za hotové.
Na konci sedmdesátých let sice v Anglii existovalo přes 300 firem vyrábějicích počítače, ale jedině ta jeho dokázala sestrojit ten nejmenší, nejjednodušší a nejlevnější, první na světě s cenou pod 100 liber - ZX80. Začal se vyrábět v roce 1980, takže právě letos slaví své pětatřicáté narozeniny.
Poslechněme si co o něm říká Michal Rybka z Alza Muzea:
https://www.youtube.com/watch?v=o43GHFDhaoo
Jeden kilobajt paměti RAM (1024 bajty) ale skutečně nebyl moc, velmi brzy k němu vzniklo rozšíření na 4 KiB (později až 16 KiB), malá krabička zasunutá zezadu do systémového konektoru, a s tím už se dostal na úroveň například toho TRS-80, se stejným procesorem Zilog Z80. Jenže Sinclair ZX80 běžel na téměř třikrát větší frekvenci! Nevýhodou zase bylo, že většinu času procesor strávil vytvářením obrazu, a program prováděl jen ve volných chvilkách mezi zpracováním jednotlivých řádků televizního signálu. Takové finty byly tehdy běžné, například Apple II vůbec neobsahoval řadič disketové mechaniky, obsluhoval jí přímo procesor počítače.
Do čtyř kilobajtů se už daly i v BASICu naprogramovat složitější programy, které dokázaly víc než jenom požádat o jméno člověka a potom ho slušně pozdravit, nebo hádat myšlené číslo, a nastala doba kdy si pomalu každý školák vymýšlel svoje hry, a porovnával je se spolužáky. Ty hry se samozřejmě nemohly technickou úrovní rovnat dnešním hrám, dokonce ani tehdejším arkádovým automatům, protože tyhle počítače uměly zobrazit jenom velká písmena, číslice, pár dalších znaků, navíc jen černobíle, a se zvukem se vůbec nepočítalo. Zato se při hraní muselo o dost víc přemýšlet.
Taková jednoduchá hra je známá pod názvem NIM. Hraje se po celém světě, často v barech a hospodách, a spočívá v odebírání nějakých předmětů, například zápalek, podle určitých pravidel. Jedna z nejjednodušších verzí je tahle:
- Počáteční počet zápalek je náhodné liché číslo od 17 do 27, v každé hře jiné.
- Hráči se střídají, každý může vzít jednu až X zápalek.
- Maximální počet X je v každé hře jiný, od 2 do 5.
- Prohrává ten, na koho zbyde poslední zápalka.
A s tím se můžeme pustit do dalšího bitu: 00000010
Takže úkol pro tento měsíc je naprogramovat hru NIM, kde bude hrát člověk proti počítači podle výše uvedených pravidel. Jenom je ještě trochu rozvedu:
- Každé kolo hry začíná s náhodným počtem zápalek, vždy lichým (17,19,21,23,25,27), a náhodným maximem (2,3,4,5).
- První odběr v každém kole provede buď hráč který minule prohrál, nebo se člověk a počítač pravidelně střídají.
- Pro takhle jednoduchou hru jde snadno najít vítězná strategie, která z počítače udělá neporazitelného soupeře.
- Při vypisování zpráv o počtu zápalek je dobré věnovat pozornost pravidlům skloňování číslovek a koncovek!
Na závěr zase ukázkové video, takhle hra NIM vypadá na nástupci ZX80, ZX81, s téměř shodnými parametry:
https://youtu.be/R64AyuT9wu4
Program vyžaduje rozšíření paměti, protože potřebuje necelé 3 KiB, ale pro základní 1 KiB RAM vznikly dokonce Šachy, které ho ani nezaberou celou! Samozřejmě ne v BASICu, jsou naprogramované ve strojovém kódu, a přes třicet let, až do letoška, držely světové prvenství jako nejmenší šachový program.
Titulní nadpis je výrok Charlese Tandyho, po tom co se dozvěděl že v jeho firmě tajně vyvinuli TRS-80 a chtějí mu předvést funkční prototyp. Vypůjčil jsem si ho z článku Pavla Tronnera: http://pctuning.tyden.cz/multimedia/hry ... ndy-trs-80