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
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
↑ 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?
Offline
Tak som to už vyriešil, napríklad takto to overuje postupku
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