Rada, kostka

42 views
Skip to first unread message

Marek Žabčík

unread,
Jan 1, 2019, 1:07:33 PM1/1/19
to django-cs

Marek Žabčík marek....@gmail.com

18:56 (před 2 minutami)

Zdravím, jsem začátečník a při plnění jednoho z úkolů na stránkách jsem se dostal s níže uvedeným úkolem trochu do křeče 😊 tudíž bych potřeboval nakopnout.

Pro info, úkol je tento:

Napiš program, který simuluje tuto hru:

První hráč hází kostkou (t.j. vybírají se náhodná čísla od 1 do 6), dokud nepadne šestka. Potom hází další hráč,

dokud nepadne šestka i jemu. Potom hází hráč třetí a nakonec čtvrtý. Vyhrává ten, kdo na hození šestky

potřeboval nejvíc hodů. (V případě shody vyhraje ten, kdo házel dřív.)

Program by měl vypisovat všechny hody a nakonec napsat, kdo vyhrál.

 

Předpokládám, že bych měl využít pouze to, co dosud v rámci kurzu a řazení znám (po f-ce) ale:

1)Jak udělám, aby mi to vlastně generovala náhodně čísla až po padnutí šestky?

Když použiju for i in range a randrange, tak vlastně si stanovím počet, do kdy to mám hodit a to není ono.

2)Jak program vlastně vypíše všechny hozené hodnoty


 

Nechci řešení, spíš čeho se chytnout. Je to asi jednoduchý úkol, ale tady jsem se dostal do tunelu a strávil na tom víc času, než nad ostatníma dosud dohromady 😊

 

Díky

 

Marek

Honza Král

unread,
Jan 1, 2019, 1:11:18 PM1/1/19
to djan...@googlegroups.com
On Tue, Jan 1, 2019 at 7:07 PM Marek Žabčík <marek....@gmail.com> wrote:

Marek Žabčík <marek....@gmail.com>

18:56 (před 2 minutami)

Zdravím, jsem začátečník a při plnění jednoho z úkolů na stránkách jsem se dostal s níže uvedeným úkolem trochu do křeče 😊 tudíž bych potřeboval nakopnout.

Pro info, úkol je tento:

Napiš program, který simuluje tuto hru:

První hráč hází kostkou (t.j. vybírají se náhodná čísla od 1 do 6), dokud nepadne šestka. Potom hází další hráč,

dokud nepadne šestka i jemu. Potom hází hráč třetí a nakonec čtvrtý. Vyhrává ten, kdo na hození šestky

potřeboval nejvíc hodů. (V případě shody vyhraje ten, kdo házel dřív.)

Program by měl vypisovat všechny hody a nakonec napsat, kdo vyhrál.

 

Předpokládám, že bych měl využít pouze to, co dosud v rámci kurzu a řazení znám (po f-ce) ale:

1)Jak udělám, aby mi to vlastně generovala náhodně čísla až po padnutí šestky?

Když použiju for i in range a randrange, tak vlastně si stanovím počet, do kdy to mám hodit a to není ono.

2)Jak program vlastně vypíše všechny hozené hodnoty


 

Nechci řešení, spíš čeho se chytnout. Je to asi jednoduchý úkol, ale tady jsem se dostal do tunelu a strávil na tom víc času, než nad ostatníma dosud dohromady 😊


for cyklus je super, pokud chces neco opakovat X-krat kde znas to X, pripadne pokud chces neco provest pro kazdy prvek z nejake skupiny (list, mnozina, slovnik, ...).

Pokud nevis jak dlouho to ma trvat je lepsi misto toho pouzit while a pak ten cyklus explicitne prerusit but tou podminkou v tom while statementu a nebo pomoci prikazu break ktery prerusi cyklus.

takze neco jako:

while True:
    # (hod kostkou, vypis hodu)
    if padla sestka:
        break


snad to pomuze, hodne stesti!

 

Díky

 

Marek

--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/a105cebd-c486-48db-9fa3-2fa676940816%40googlegroups.com.
Další možnosti najdete na https://groups.google.com/d/optout.

Petr Messner

unread,
Jan 1, 2019, 1:28:12 PM1/1/19
to djan...@googlegroups.com
Ahoj,

tohle je docela hustá úloha (pro začátečníky). Technicky vzato ti opravdu stačí to, co se v kurzu probralo do té doby, tedy proměnné, podmínky a cykly. Dokonce nepotřebuješ žádné listy, slovníky ani funkce (vlastní a kromě print a randint/randrange ani cizí).

Honza K. už ti poradil s cykly. Předpokládám, že za chvíli budeš řešit právě to, jak zjistit, kdo vyhrál :) Kdyby sis nevěděl rady, tak sem potom pošli tvůj kód.

PM


út 1. 1. 2019 v 19:07 odesílatel Marek Žabčík <marek....@gmail.com> napsal:

>
>
> Marek Žabčík <marek....@gmail.com>
>
> 18:56 (před 2 minutami)
>
> Zdravím, jsem začátečník a při plnění jednoho z úkolů na stránkách jsem se dostal s níže uvedeným úkolem trochu do křeče  tudíž bych potřeboval nakopnout.

>
> Pro info, úkol je tento:
>
> Napiš program, který simuluje tuto hru:
>
> První hráč hází kostkou (t.j. vybírají se náhodná čísla od 1 do 6), dokud nepadne šestka. Potom hází další hráč,
>
> dokud nepadne šestka i jemu. Potom hází hráč třetí a nakonec čtvrtý. Vyhrává ten, kdo na hození šestky
>
> potřeboval nejvíc hodů. (V případě shody vyhraje ten, kdo házel dřív.)
>
> Program by měl vypisovat všechny hody a nakonec napsat, kdo vyhrál.
>
>  
>
> Předpokládám, že bych měl využít pouze to, co dosud v rámci kurzu a řazení znám (po f-ce) ale:
>
> 1)Jak udělám, aby mi to vlastně generovala náhodně čísla až po padnutí šestky?
>
> Když použiju for i in range a randrange, tak vlastně si stanovím počet, do kdy to mám hodit a to není ono.
>
> 2)Jak program vlastně vypíše všechny hozené hodnoty
>
>
>  
>
> Nechci řešení, spíš čeho se chytnout. Je to asi jednoduchý úkol, ale tady jsem se dostal do tunelu a strávil na tom víc času, než nad ostatníma dosud dohromady
>
>  
>
> Díky
>
>  
>
> Marek
>

Marek Žabčík

unread,
Jan 1, 2019, 1:31:18 PM1/1/19
to djan...@googlegroups.com

pomohlo, s while jsem to taky zkoušel, ale zbytečně to překombinoval s dalšími podmínkami a pak to nejelo, jak mělo.

 

Díky,

Marek

 

Odesláno z aplikace Pošta pro Windows 10

 

Od: Honza Král
Odesláno:úterý 1. ledna 2019 19:11
Komu: djan...@googlegroups.com
Předmět: Re: [django-cs] Rada, kostka

 

On Tue, Jan 1, 2019 at 7:07 PM Marek Žabčík <marek....@gmail.com> wrote:

Marek Žabčík <marek....@gmail.com>

18:56 (před 2 minutami)

https://mail.google.com/mail/u/0/images/cleardot.gif

https://mail.google.com/mail/u/0/images/cleardot.gif

Marek Žabčík

unread,
Jan 3, 2019, 1:54:10 PM1/3/19
to djan...@googlegroups.com
Ahoj, tak došlo na předpověď :) jak zjistit, kdo vyhrál. Dosud zjišťuji spíš co nefunguje :), takže bych potřeboval bych opět indicii, na co se zaměřit.
Ta první část pro hody a výpis(zatím pro jednoho hráče), ale třeba stanovit pořadí hodu, nevím. Možná na to koukám blbě. Díky za radu. Marek

from random import randrange

hrac1 = input('Hází hráč 1:')
while True:
    n1 = randrange(1, 7)
    print('hod kostkou', n1)
    if n1 == 6:
        break

út 1. 1. 2019 v 19:28 odesílatel Petr Messner <petr.m...@gmail.com> napsal:
--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+...@googlegroups.com.

Petr Messner

unread,
Jan 3, 2019, 2:10:36 PM1/3/19
to djan...@googlegroups.com
Stanovit pořadí hodu, jakože kolikátý hod to je? Udělej si na to proměnnou :) Nejdřív do ní dej nulu a na zacatku toho hazeciho while cyklu (přesněji řečeno - na zacatku každé iterace toho while cyklu) tu proměnnou zvyš o jedničku (přičti k ní jedničku).

Jak řešit tuto úlohu:

1) zkus pro jednoduchost jen jednoho hrace, a zjistit, kolik hodů měl - to vlastně teď řešíš

2) zobecni to na víc hráčů. Prostě kód z 1) dej do cyklu :)

3) zkus zjistit, jaký byl nejvyšší počet hodů - jenom tohle, pro jednoduchost. Zkus třeba na konci každého hráče vypsat, jaké je zatím nejvyšší skóre.

4) a teď už se nad tím jen ještě trochu zamyslet :)

Petr Messner

3. 1. 2019 v 19:53, Marek Žabčík <marek....@gmail.com>:

Marek Žabčík

unread,
Jan 5, 2019, 2:50:49 PM1/5/19
to djan...@googlegroups.com

Ahoj, vracím se ke kostce 😊, malinko se to posouvá mimo zadání, ale to nevadí, mě se to aspoň líp chápe “za chodu“. Mám opět dotazy 😊. Představu jsem měl takovou, že když je to pro 4 hráče, pak vítěze by určovalo porovnání různých proměnných(každá proměnná na každého hráče) na počet kol potřebných na hození 6 a nejvyšší bere vše. Když to ale zobecním na libovolný počet hráčů, zacyklím, tak se sice vypíšou jednotlivé hody, kdy padla 6 jednotlivým hráčům, ale mám problém, jak je v tomto případě srovnat a určit nejvyšší…takže tady by se hodila první rada 😊

A mám druhý dotaz, to je trošku blbost a navíc, ale aby se to nevypisovalo celé najednou, ale třeba na kliknutí klávesy po jednotlivých hráčích?

Tady zatím kód:

from random import randrange

N = int(input('Zadej počet hráčů:'))

for x in range(1, N + 1):

    print('Hraje hráč číslo', x)

    hod = 0

    while True:

        n = randrange(1, 7)

        hod = hod + 1

        print('Hod číslo', hod, '- padlo číslo', n)

        if n == 6:

            print('Šestka padla v', hod, '.kole')

            break

 

díky,

Marek

 

Odesláno z aplikace Pošta pro Windows 10

 

Od: Petr Messner
Odesláno:čtvrtek 3. ledna 2019 20:10
Komu: djan...@googlegroups.com
Předmět: Re: [django-cs] Rada, kostka

 

Stanovit pořadí hodu, jakože kolikátý hod to je? Udělej si na to proměnnou :) Nejdřív do ní dej nulu a na zacatku toho hazeciho while cyklu (přesněji řečeno - na zacatku každé iterace toho while cyklu) tu proměnnou zvyš o jedničku (přičti k ní jedničku).

Petr Messner

unread,
Jan 5, 2019, 3:09:32 PM1/5/19
to djan...@googlegroups.com
so 5. 1. 2019 v 20:50 odesílatel Marek Žabčík <marek....@gmail.com> napsal:

Ahoj, vracím se ke kostce 😊, malinko se to posouvá mimo zadání, ale to nevadí, mě se to aspoň líp chápe “za chodu“. Mám opět dotazy 😊. Představu jsem měl takovou, že když je to pro 4 hráče, pak vítěze by určovalo porovnání různých proměnných(každá proměnná na každého hráče) na počet kol potřebných na hození 6 a nejvyšší bere vše. Když to ale zobecním na libovolný počet hráčů, zacyklím, tak se sice vypíšou jednotlivé hody, kdy padla 6 jednotlivým hráčům, ale mám problém, jak je v tomto případě srovnat a určit nejvyšší…takže tady by se hodila první rada 😊

 
Porovnání se v Pythonu dělá přes if :)

if pocet_hodu > nejvyssi_pocet_hodu:
    nejvyssi_pocet_hodu = pocet_hodu

A mám druhý dotaz, to je trošku blbost a navíc, ale aby se to nevypisovalo celé najednou, ale třeba na kliknutí klávesy po jednotlivých hráčích?


No, pokud tou klávesou může být Enter, tak si tam dej input(), ne? :)

PM
Reply all
Reply to author
Forward
0 new messages