Hra Logik v Pythone

Pravidlá hry Logik:

  • Hráč 1 si myslí štvorciferné číslo bez opakovania číslic
  • Hráč  2 toto číslo háda tak, že povie štvorciferné číslo, bez opakovania číslic  a hráč 1 odpovie koľko číslic  je na správnom mieste a koľko číslíc do čísla patrí, ale nie sú na svojom mieste. Číslice na správnom mieste sú označené počtom A, číslice na nesprávnom mieste počtom B.

Za štvociferné číslo v Logiku  pokladáme aj trojciferné čísla, tie začínajú nulou.

Ak si Hráč 1 myslí číslo 4790 a otázka bude 1234, odpoveď bude:

1234| 0A 1B
5678| 0A 1B

Z týchto odpovedí vyplýva, že určite sú v myslenom čísle číslice 0 a 9.

9015| 0A 2B

Z tejto odpovede vieme, že 1 a 5 tam nepatria a 9 ani 0 nie sú na svojom mieste.

0926| 0A 2B

2 ani 6 tam nepatria a 09 sú na posledných miestach.

3790| 3A 0B

9 a 0 sú na svojich miestach a buď tam patrí 3 alebo 7, a správna číslica je na svojom mieste.

3890| 2A 0B

3 a 8 tam nepatria, 7  a 4 tam patria a 7 bola v 3790 na správnom mieste, takže povieme

4790|4A 0B

K správnemu výsledku sme dospeli po siedmych otázkach.

Projekt Logik 1:  Naprogramujeme v Pythone hru Logik tak, že počítač si bude myslieť číslo a človek ho háda.

Projekt Logik 2: Človek si myslí číslo a počítač ho háda.

Projekt Logik 3: Obaja si myslia číslo a súťažia, kto sķôr uhádne číslo súpera. Hra končí remízou, ak uhádnu čísla, po rovnakom počte otázok.

Logik Net: Po sieti hrajú Logik dvaja hráči – ľudia

Súťaž programov

Žiaci vytvoria programy na hádanie čísla a v projekte Logik  Net, namiesto ľudí súťažia tieto programy na 5 víťazstiev.

Logik 1

Algoritmus

  1. Vygenerovanie čísla, pričom sa nesmú opakovať číslice
  2. Zadanie čísla hráčom
  3. Kontrola, či číslo zadané hráčom je v povolenom tvare: je štvorciferné, číslice sa neopakujú, sú v ňom len číslice. Ak nebolo v povolenom tvare návrat na bod 2.
  4. Vyhodnotenie zadaného čísla a vypísanie odpovede v tvare nA mB
  5. Ak odpoveď nebola 4A 0B, návrat na bod 2.
  6. Vypísanie počtu pokusov
  7. Otázka, či chce hráč hrať znova. Ak Áno, návrat na bod 1.

Vygenerovanie „náhodného“ čísla

Na prácu so pseudonáhodnými číslami slúži modul random. Na začiatok programu dáme príkaz: import random

a sprístupnia sa všetky funkcie tohto modulu. Voláme ich v tvare: random.funkcia(parametre)

kde random. symbolizuje, že voláme funkciu z modulu random.

Funcie modulu random

rnadom.random() generuje pseudonáhodné číslo z intervalu <0;1). Perióda opakovania je 2^{19937}-1

 

 

 

print

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *