Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 02. 04. 2016 11:54

Tom711
Místo: Bratislava
Příspěvky: 64
Škola: STU FEI
Pozice: Študent
Reputace:   
 

Pole hodu kocky, hladanie figúr v ňom

Dobrý deň mám takú začiatočnícku otázku pre programovanie v C.

Dostali sme za úlohu urobiť hru s kockami. Hodí sa 6 kociek a následne sa skontroluje či padla nejaká figúra (napríklad tri dvojice, dve trojice, postupka...) No a momentálne som sa zasekol na tom že mám nejaké to Pole kde je zaznamenaný hod napr {1,6,6,3,2,4} no a potrebujem zistiť ako skontrolovať napríklad či sú tam tie tri dvojice. Doteraz som sa dostal k tomu že si spravím ešte jedno pole kde mi vypisuje kolko je ktorých kociek (pre horný hod by pole vyzeralo {1,1,1,1,0,2} takže jedna jednotka, jedna dvojka...)

Mal by niekto nápad ako pokračovať ďalej? Pretože tie ostatné figúry to by som si potom už odvodil jednoducho z tohoto.

Ďakujem veľmi pekne za pomoc,
Príjemný deň.

Offline

 

#2 02. 04. 2016 15:25

check_drummer
Příspěvky: 5513
Reputace:   106 
 

Re: Pole hodu kocky, hladanie figúr v ňom

↑ Tom711:
Ahoj, jestli tě zajímá, kok padlo k-tic, tak je vhodné si to pole hozených kostek utřídit a pak to jde zjistit snadno - tedy pokud se ty stejné kostky nemají být hozeny bezprostředně za sebou. Je např. 2,6,2 dvojice nebo ne?


"Máte úhel beta." "No to nemám."

Offline

 

#3 02. 04. 2016 21:20 — Editoval Tom711 (02. 04. 2016 21:21)

Tom711
Místo: Bratislava
Příspěvky: 64
Škola: STU FEI
Pozice: Študent
Reputace:   
 

Re: Pole hodu kocky, hladanie figúr v ňom

Tak som to už vyriešil, napríklad takto to overuje postupku


Code:

int Test_Postupka(int HracovoPole[])
{
    int Hodnota_Kocky;
    int Pocet_Kociek_Pole[] = { 0,0,0,0,0,0 };        //pre hod {1,1,1,2,5,5} bude toto pole vyzerat takto {3,1,0,0,2,0} takze tri jednotky, jedna dvojka....
    for (int i = 0; i <= 5; i++)            //pre kazdý prvok pola
    {
        Hodnota_Kocky = HracovoPole[i];                //do intu sa hodí i-ta hodená kocka hráča
        Pocet_Kociek_Pole[Hodnota_Kocky - 1] = Pocet_Kociek_Pole[Hodnota_Kocky - 1] + 1;                //ak si hodil napr 6 za (6-1) miesto v poli sa dá +1 hodnota [pretože pole sa indexuje od 0]
    }                                                                                                    //takze ak si hodil prvy hod 2 tak na miesto (2-1) v Pocet_Kociek_Pole sa pridá +1 (a to reprezentuje kolko dvojok si celkovo hodil)




    int Pocet_Nul=0;

    for (int i = 0; i <= 5; i++)        //spočítame kolko kociek sme vobec nehodili
    {

        if (Pocet_Kociek_Pole[i] == 0)
        {

            Pocet_Nul++;            
        }


    }

    if (Pocet_Nul == 0)            //aby bola postupka kazda kocka musi byt hodena raz teda pole Pocet_Kociek_Pole musi byt {1,1,1,1,1,1}
    {

        return 21;            //postupka ma vzdy 21 hodnotu
    }


    return 0;
}

Je to trošku krkolomne okomentované ale funguje to.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson