Autorské riešenie
[stiahni]

Najskôr priradíme akciu tlačidlu nová hra. Po stlačení tlačidla "Nová hra" sa vykoná procedúra "novahra"

viem novaHra
  nahodneNahodne
  urob "cislo 1+nahodne 127
  urob "pokus 0
  pocet_pokusov'nechhodnota 0
  odpoved_pocitaca'nechhodnota "
  hadane_cislo'nechhodnota "
koniec
  • Inicializujeme generátor náhodných čísel (nahodneNahodne).
  • Potom si počítač vymyslí náhodné číslo (urob "cislo 1+nahodne 127).
  • Počet pokusov nastavíme na 0 (urob "pokus 0)
  • Vypíšeme počet pokusov do textového políčka pocet_pokusov (pocet_pokusov.nechhodnota 0)
  • Vyčistíme políčko pre odpoveď počítača (odpoved_pocitaca'nechhodnota ")
  • Vyčistíme políčko pre zadávanie čísla (hadane_cislo'nechhodnota ") 

Teraz môžeme priradiť akciu tlačidlu "myslis_si_cislo". Po stlačení sa vykoná procedúra kontrola.

viem kontrola
  ak2 hadane_cislo'hodnota=:cislo
      [odpoved_pocitaca'nechhodnota "uhadol_si]
      [ ak2 hadane_cislo'hodnota>:cislo
            [odpoved_pocitaca'nechhodnota "menej]
            [odpoved_pocitaca'nechhodnota "viac ]
      ]
  urob "pokus :pokus + 1
  pocet_pokusov'nechhodnota :pokus
koniec

  Porovnáme hádané číslo (hadane_cislo'hodnota) s číslo, ktoré si vymyslel počítač (cislo). Podľa toho, či je väčšie, menšie alebo rovné vypíšeme do textového políčka (odpoved_pocitaca) jedntu z troch odpovedí. Nezabudneme ešte zvýšiť a vypísať počet pokusov.

V druhej časti tejto úlohy ste mali zistiť, koľko najmenej pokusov potrebujeme na to, aby sme číslo, ktoré vymyslel počítač určite uhádli. Občas sa nám podarí číslo uhádnuť na prvý pokus. Ale je to len náhoda. Koľko teda potrebujeme pokusov na to, aby sme číslo určite uhádli? Môžeme hádať 1, 2, 3, .. 127. V najhoršom prípade budeme potrebovať 127 pokusov. Ale, dá sa to spraviť aj šikovnejšie. Spýtame sa na číslo, ktoré je v strede (64). Ak počítač odpovie viac, vieme že je niekde medzi 65 až 127. Ak odpovie menej, hádané číslo je medzi 1-63. Ak sme náhodou uhádli, skončíme. V opačnom prípade zoberieme číslo v strede intervalu, ktorý nám zostal a pokračujeme rovnakým spôsobom ďalej. Pokračujeme dovtedy, kým nám nezostane práve jedno číslo. 

pokus číslo 1 ostalo nám 63 čísel
pokus číslo 2 ostalo nám 31 čísel
pokus číslo 3 ostalo nám 15 čísel
pokus číslo 4 ostalo nám 7 čísel
pokus číslo 5 ostali nám 3 čísla
pokus číslo 6 ostalo nám 1 číslo
pokus číslo 7 uhádli sme

Potrebujeme teda 7 pokusov.

Najčastejšie chyby

Pri vymýšľaní čísla počítačom ste často generovali čísla z intervalu 1..126. Našli sa aj "výmyselníci", ktorí nám zaslali namiesto riešenia projekt na hádanie čísla, ktorý je súčasťou vzorových riešení Imaginu. Toto sme samozrejme nemohli uznať.