Roulett-problem



  • Hallo
    ich möchte ein Roulettprogramm schreiben und habe mir das wichtigste schonmal programmiert aber es gibt einige Probleme und ich weiß nicht woran das liegt.

    Nachdem: "Wie oft wollen sie setzen?" ausgegeben wird gebe ich eine Zahl ein, aber egal welche, nachdem ich z oder g eingegeben habe erscheint "50" und dann erneut die Frage "Wie oft wollen sie setzen?" Ich habe also keine Möglichkeit einen Betrag auf eine Zahl zu setzen.

    Ich bitte dringend um Hilfe, hier der Quellcode:

    #include <iostream>
    using namespace std;
    
    class roulett
    {
          public:
                 int geld, einsatz, zahl, tipp ;
                 void vzahl();
                 void vgerade();
    };
    
    void roulett::vzahl(void)
    {
         cin >> tipp ;
         cin >> einsatz ;
         if( tipp == zahl )
         {
             geld = geld + einsatz * 35 ;
         }
         else
         {
             geld = geld - einsatz ;
         }
    }
    
    void roulett::vgerade(void)
    {
         cout << "\n1 fuer ungrade zahl, 2 fuer grade\n" ;
         cin >> tipp ;
         cin >> einsatz ;
    
         if( tipp % 2 == zahl % 2 ) 
         {
             geld += einsatz * 2 ;
         }else{
             geld -= einsatz ;
         }
    
         if( tipp % 2 == zahl % 2 )
         {
             geld += einsatz * 2 ;
         }else{
             geld -= einsatz ;
         }
    }
    
    int main()
    {
        int x, n ;
        char wahl ;
        roulett test ;
    
        test.geld = 50 ;
    
        srand((unsigned) time(NULL));
    
        for(;;)
        {
    
           /*   Zahl generieren    */
           test.zahl=rand()%37;
    
           cout << "\nWie oft wollen sie setzen?\n" ;
           cin >> x ;
           cout << "<z> auf Zahl tippen\n<g> auf grade oder ungrade tippen" ;
           cin >> wahl ; 
    
           for(n=0;n>x;n++)
           {
                     if( wahl == 'z' || wahl == 'Z' )
                     {
                         test.vzahl();
                     }
                     else
                     {
                         test.vgerade();
                     }       
           }
    
           cout << test.geld ;     
    
        }      
    
        return 0;
    }
    

    Vielen Dank



  • for(n=0;n>x;n++)
           {
    

    Das wird glaube ich nicht so funktionieren, da x ja die Anzahl ist, wie oft man setzen will, aber dann ist es ja auf jeden fall GRÖSSER als 0 und nicht kleiner. Also ist n>x für n=0 immer false. Die for-Schleife wird deswegen nicht ausgeführt.

    mfg.



  • joomoo schrieb:

    for(n=0;n>x;n++)
           {
    

    Das wird glaube ich nicht so funktionieren, da x ja die Anzahl ist, wie oft man setzen will, aber dann ist es ja auf jeden fall GRÖSSER als 0 und nicht kleiner. Also ist n>x für n=0 immer false. Die for-Schleife wird deswegen nicht ausgeführt.

    mfg.

    das stimmt alles, aber kurz gesagt:

    dreh die spitze Klammer um in <

    also:

    for(n=0; n<x; n++)
    

Anmelden zum Antworten