Portál AbcLinuxu, 8. května 2025 13:23

Dotaz: Hod kostkou C++ wxWidgets

3.4.2009 20:28 Hlavson
Hod kostkou C++ wxWidgets
Přečteno: 1473×
Odpovědět | Admin

Čus všichni.. :)
Potřeboval bych takovou menší radu. Mám za úkol do konce dubna udělat program na generování čísel od 1 do 6... tzv. hod kostkou, všichni znáte  :)

Děláme to v vx-DevC++ 6.10.2 -> ,když by někdo chtěl hodím odkaz (dá se vygooglit)
Abych to upřesnil, jedná se o tzv. grafické prostředí, říká náš učitel :-D Mám plochu, kde jsou dvě tlačítka, jedno bude zastupovat generování čísla, druhé vypnutí programu.
Vypnutí zvládnu, ale generování čísla bohužel ne, ani jsme to neprobírali... bohužel.  :?

Vygenerované číslo by se mělo zobrazit v ListBoxu... popř jiném zobrazovací komponentě.

Tady máte potřebné zdrojáky  :)

http://www.edisk.cz/stahni/41830/hod_kostkou_C___wxWidgets.rar_834.83KB.html

Díky moc, beru každou radu  :), pokud budou dotazy, jen se ptejte.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.4.2009 20:57 l4m4
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
Odpovědět | | Sbalit | Link | Blokovat | Admin
Čemu nerozumíš na zavolání funkce random() a vzetí výsledku modulo 6, abys dostal 0 až 5? Nebo kde je ten problém s generováním náhodného čísla?
3.4.2009 22:20 Hlavson
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets

stringstream prev;

 

 

int a;
string st;
prev.clear();
prev >> a;
a = (rand() % 6) + 1;
prev.clear();
prev << a;
prev >> st;
WxListBox1->Append(st);

 

Teď ještě aby, když se hodí číslo 6 program automaticky hodil znovu (tak jako když hodíte ve skutečnosti znovu) a nebo na zmáčknutí....

David Watzke avatar 3.4.2009 22:56 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
Myslíš takhle nějak?
do {
        prev.clear();
        prev >> a;
        a = (rand() % 6) + 1;
        prev.clear();
        prev << a;
        prev >> st;
        WxListBox1->Append(st);
} while(a == 6);
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
David Watzke avatar 4.4.2009 12:52 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
Jak říká Messa, první dva řádky v tom cyklu jsou k ničemu, to jsem včera nějak přehlíd.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
4.4.2009 13:18 Hlavson
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets

Ano to by šlo, ale v tomhle případě program počítá znovu i když je číslo třeba 5..nechápu proč :-O

Omlouvám se, pokud sem něco špatně pochopil, říkám nejsem v tomto dostatečně sběhlý.

4.4.2009 06:31 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
To je nejake divne. Proc volas .clear() na prave vytvoreny stringstream, ve kterem prave jeste nic neni? Proc z toho stringstreamu ziskavas a, kdyz nejen ze je ten stringstream prazdny, ale navic do toho a vzapeti priradis neco jineho?

Jinak, mozna by bylo lepsi naucit se (zvyknout si) pro ziskani obsahu stringstreamu pouzivat metodu .str(), at se pak nekdy nedivis, coze to ten operator >> vlastne dela.

Kdyz se hodi sestka, tak se ma teda automaticky hazet znovu, nebo zase cekat na zmacknuti? Protoze to druhe tam naimplementovane predpokladam uz mas, takze je to asi zbytecna otazka :)
4.4.2009 13:17 Hlavson
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets

clear proto, že nám učitel tohle prostě nakázal, že jinak tam vždy něco je..... nevím, nejsem v tom tak sběhlý :-)

a pokud se hodí 6, tak program automaticky vygeneruje další číslo, nemusí se tedy mačkat tlačítko...

bohužel mi to nějak nejde rozběhnout :-( učím se teprve....

6.4.2009 20:06 Hlavson
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
Odpovědět | | Sbalit | Link | Blokovat | Admin

Víte tedy někdo jak na tu 6ku ??

Jardík avatar 7.4.2009 10:35 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
Odpovědět | | Sbalit | Link | Blokovat | Admin
V první řadě bich do DevC++ integroval 64bit mingw (budeš tam mít pravděpodobně jen 32bit). Pak zkompilovat/nainstalovat aktuální wxWidgets s podporou unicode (64bit). Potom bych zdrojáky nebalil do proprietárního raru. Nenastavuj na pevno font widgetům. Né každý má "Segoe UI" a né každý má 96dpi, kde 9pt font je akorát. Místo "Segoe UI" použij "MS Shell Dlg 2". Použije se pak výchozí font Windows. Lepší by bylo samozřejmě font nenastavovat, ať se použije výchozí a není to platformě závislé.

Proč je ta binárka tak zes*aně velká? Vždyť tam máš 5,5 řádku kódu... to používáš prasečinky jako statický linkování?

Na generování náhodných čísel je v C++ rand() vracející 0 až RAND_MAX. Na to můžeš hodit modulo pro omezení rozsahu.
Věřím v jednoho Boha.
Jardík avatar 7.4.2009 10:42 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
A normální člověk se nejdříve naučí C++ a pak se vrhne na práci s toolkitem. Když hold neznáš základy, je to blbý. Na tu šestku cyklus:
opakuj
{
  do a dej náhodné číslo od 1 do 6
  zobraz číslo
} dokud a je rovno 6
Konkrétně v C++ bys asi použil do-while. Nezapomeň, že to je "rychlé", takže nepostřehneš, že to vygenerovalo šestku a hned to tam dá další číslo. Lepší by byl nějaký "timer".
Věřím v jednoho Boha.
7.4.2009 14:10 Hlavson
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tento ukol jsem dostal zadaný ve škole. Takže takové věci jako je 64bit podpora, či to uváděné statické linkování učitele nezajímají. BTW sám to takhle učí.

Program už mam hotový, teď už jen taková malá "blbůstka". Při vypisování generovaných čísel se čísla řadí pod sebe. Potřeboval bych, aby bylo každé další číslo bylo generováno nahoře, né dole a to z toho důvodu, že při překročení počtu viditelných řádků, se čísla "schovají" a je nutno posunovat posuvníkem.

7.4.2009 15:37 Hlavson
Rozbalit Rozbalit vše Re: Hod kostkou C++ wxWidgets

Vyřešeno, použito Insert namísto Append :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.