Letzten Wurf merken.



  • Guten Morgen. Ich programmiere (C++/ MFC) gerade ein kleines Würfelspiel.

    Was soll das Spiel können?
    1. Mit dem Button1 --> Zwei Zahlen (1-6) würfeln. [KLAPPT!] 👍
    2. Mit dem Button2 --> Die beiden Zahlen ausblenden.[KLAPPT!] 👍
    3. Mit dem Button3 --> Den alten Wurf von Button 1 wieder einblenden. [Problem] 👎

    Wie habe ich bisher meine Ziele realisiert?
    Ganz grob gesagt:
    Ich eine Funktion gebaut, die mit 2 x rand()%6+1; einfach die beiden Random-Zahlen generiert und sie in zwei Variabeln gespeichert.
    Die Funktion wird im void CmeierDlg::OnBnClickedButton1() eingebunden und die beiden Variabeln (Würfe) werden als Parameter übergeben und im IDC_EDIT Feld wiedergegeben. So werden jedes mal, wenn der Button gedrückt wird, zwei Randomzahlen generiert und angezeigt.

    Wenn man den Button void CmeierDlg::OnBnClickedButton2() drückt, werden in den beiden IDC_EDIT Felder ein "XXX" gegeben. (Somit blende ich den Wurf aus)

    ⚠ Jetzt kommt mein Problem:
    Nun möchte ich mit dem dritten Button den alten Wurf wieder einblenden.(!!! Kein neuen Wurf generieren sondern den letzten alten Wurf wiedergeben).

    Jemand eine Idee, wie ich das am besten machen könnte? Wollte erst die beide Würfe in der Funktion noch parallel einmal in ner "static" Variabel speichern aber irgendwie klappt das nicht.

    Ich bin für jede Hilfe dankbar.



  • warum legst du dir nicht einfach membervariablen zu?

    //*.h
    
    int m_iWuerfel_1;
    int m_iWuerfel_2;
    int m_iPrevWuerfel_1;
    int m_iPrevWuerfel_2;
    
    //*.cpp
    CmeierDlg::OnBnClickedButton1()
    {//Würfeln und Wurf anzeigen
        m_iWuerfel_1 = rand()%6+1;
        m_iWuerfel_2 = rand()%6+1;
        ShowEdit(m_iWuerfel_1,m_iWuerfel_2);
    }
    CmeierDlg::ShowEdit(int iW1, int iW2)
    {//Editfeld wurf anzeigen
    
    }
    
    CmeierDlg::OnBnClickedButton2()
    {//Editfeld Aufsblenden
    
        m_iPrevWuerfel_1 = m_iWuerfel_1;
        m_iPrevWuerfel_2 = m_iWuerfel_2;
    }
    
    CmeierDlg::OnBnClickedButton3()
    {//Vorhergehenden wurf anzeigen
        ShowEdit(m_iPrevWuerfel_1,m_iPrevWuerfel_2);
    }
    


  • Hey. Danke hat super geklappt. 👍

    ➡ Sorry mir fehlt einfach noch die Praxis und Routine, dass ich selber auf solche simple Lösungswege komme. 😞

    Aber nochmal Danke.

    Ps.

    Gibt es noch eine bessere Möglichkeit, einen Würfelwurf zu simulieren als

    srand( (unsigned)time( NULL ) ); // Initialisiert den Random-Generator mit der akt. Zeit in Sek
    	m_Wuerfel1 = rand()%6+1;
    	m_Wuerfel2 = rand()%6+1;
    


  • Hallo,

    Sarah Godzke schrieb:

    Gibt es noch eine bessere Möglichkeit, einen Würfelwurf zu simulieren als

    Bei Interesse siehe hier:

    http://magazin.c-plusplus.net/artikel/Zuf�lle gibt`sFragezeichenAusrufezeichen - Funktionen rund um rand%2C Random und den Zufall

    MfG,

    Probe-Nutzer


Anmelden zum Antworten