Avviare un nuovo progetto wxDev-C++. Denominarlo Dadi e salvarlo nella cartella Dadi.
Inserire un wxFlexGridSizer. Questo sizer dispone i componenti su una matrice, consentendo di avere righe e colonne di larghezza diversa. Modificare il numero di colonne scrivendo 3 sulla riga della proprietà Columns.
Sulla prima riga disporre 3 wxButton, sulla seconda riga inserire due wxMemo e un wxPanel.
Associare i seguenti gestori di evento ai pulsanti:
Il primo pulsante mostra l'esito del lancio di due dadi nel primo componente wxMemo.
int k, d1, d2, s, cont[11], i; wxString dadostr; WxMemo1->Clear(); for (k=0; k<11; k++) cont[k]=0; srand ( time(NULL) ); for (k=1; k<=10; k++) { d1 = rand()%6+1; d2 = rand()%6+1; s = d1+d2; dadostr.Printf(_("%d"), d1); WxMemo1->AppendText(dadostr + _(" + ")); dadostr.Printf(_("%d"), d2); WxMemo1->AppendText(dadostr + _(" = ")); dadostr.Printf(_("%d"), s); WxMemo1->AppendText(dadostr + _("\n")); cont[s-2]++; }
Vengono effettuate 1000 lanci e, per ognuno, si conta quante volte si è osservata quella somma. Alla fine si traccia l'istogramma tramite un numero di asterischi proporzionale al numero di volte in cui è osservato ciascuna somma.
int k, cont[11], d1, d2, s; double fattoreScala; wxString riga; WxMemo2->Clear(); for (k=0; k<11; k++) cont[k]=0; for (k=1; k<=1000; k++) { d1 = rand()%6+1; d2 = rand()%6+1; s = d1+d2; cont[s-2]++; } for(k=0; k<11; k++){ riga.Printf(_("%2d: %d\n"), (k+2), cont[k]); WxMemo2->AppendText(riga); } // istogramma fattoreScala = (double) (30.0/cont[5]); for (k=0; k<11; k++) { riga.Printf(_("%2d: "), (k+2)); WxMemo2->AppendText(riga); for (int i=0; i<fattoreScala*cont[k]; i++) WxMemo2->AppendText(_("x")); WxMemo2->AppendText(_("\n")); }
Il terzo pulsante lancia i dadi e mostra le loro immagini nel wxPanel.
Quando si devono caricare immagini bisogna inizializzare i gestori formati. Alla fine della funzione CreateGUIControls aggiungere la riga:
wxInitAllImageHandlers();
Al gestore dell'evento associato al terzo pulsante aggiungere le seguenti righe:
wxString punti[] ={_("uno.png"), _("due.png"), _("tre.png"), _("quattro.png"), _("cinque.png"), _("sei.png")}; wxClientDC dc(WxPanel1); int dado = (int)rand()%6; wxBitmap d1(punti[dado], wxBITMAP_TYPE_PNG); dc.DrawBitmap(d1, 0, 0, true); dado = (int)rand()%6; wxBitmap d2(punti[dado], wxBITMAP_TYPE_PNG); dc.DrawBitmap(d2, 70, 0, true);
Tramite un'applicazione grafica creare le sei immagini dei dadi, in formato png e dimensione 70x70. Oppure scaricare le seguenti:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |