Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zahlen-Ratespiel

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
14.12.2004, 22:01 Uhr
~Corona
Gast


Hi @all!

Ich lerne seit zwei Tagen C++ und bin daher noch im "Anfangsstadion" und brauche daher eure Hilfe. Ich möchte gerne ein kleines Zahlen-Ratespiel programmieren. Also man hat drei Versuche und man soll eine Zahl zwischen 1-20 erraten. Mein problem ist, ich verstehe das nicht mit den "Zufallszahlen". Also wie macht man das, das immer eine andere Zahl gesucht ist.

Ich habe hier mal zur Probe meine gesuchte zahl (variable: z9) auf 13 gesetzt. Diese soll aber sozusagen eine Zufallszahl sein.



C++:
#include<iostream.h>
#include<conio.h>
void main()
{    int z1,z2,z3,z9=13;
      clrscr();
      cout<<"\nZAHLEN-RATESPIEL";
      cout<<"\nVersuchen Sie die Zahl zu erraten - 3 Versuche!";
      cout<<"\n===============================================";
      cout<<"\nBitte geben Sie eine Zahl zwischen 1 und 20 ein:  ";
      cin>>z1;
      if(z1>z9)
      {    cout<<"\nDie eingegebene Zahl ist zu groá";
             cout<<"\nBitte geben Sie eine neue Zahl ein:  ";
      }
      else
      {
         if(z1==z9)
         {    cout<<"\nSie haben die Zahl erraten";
         }
         else
         {    cout<<"\nDie eingegeben Zahl ist zu klein";
                cout<<"\nBitte geben Sie eine neue Zahl ein:  ";
         }
      }
      cin>>z2;
      if(z2>z9)
      {    cout<<"\nDie eingegebene Zahl ist zu groá";
             cout<<"\nBitte geben Sie eine neue Zahl ein:  ";
      }
      else
      {
         if(z2==z9)
         {    cout<<"\nSie haben die Zahl erraten";
         }
         else
         {    cout<<"\nDie eingegeben Zahl ist zu klein";
                cout<<"\nBitte geben Sie eine neue Zahl ein:  ";
         }
      }
      cin>>z3;
      if(z3>z9)
      {    cout<<"\nDie eingegebene Zahl ist zu groá - VORBEI";
      }
      else
      {
         if(z3==z9)
         {    cout<<"\nSie haben die Zahl erraten";
         }
         else
         {    cout<<"\nDie eingegeben Zahl ist zu klein - VORBEI";
         }
      }
      getch();
}



Wie gesagt, ich bin noch am probieren und habe das mal nur aus Übung gemacht bzw. probiert.

Danke im Voraus!

lg, corona

Dieser Post wurde am 14.12.2004 um 22:44 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.12.2004, 22:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


hoi...
solltest dir dringend mal schleifen angucken...
habs mal schnell zusammengehackt, wird hoffentlich alle deine fragen klären
in zukunft bitte cpp-tags verwenden und einrücken sonst kann kein schwein den quellcode lesen

C++:
#include <iostream>
#include <ctime>
int main(){
    int win,i,z,r;
    char c;
    
    srand(time(0));
    std::cout<<"ZAHLEN-RATESPIEL"<<std::endl;
    std::cout<<"Versuchen Sie die Zahl zu erraten - 3 Versuche!"<<std::endl;
    std::cout<<"==============================================="<<std::endl;

        
    for(c='j';tolower(c)=='j';){
        r=1+rand()%20;
        for(win=i=0;i<3;++i){
            std::cout<<"Versuch:"<<i+1<<std::endl;
            std::cout<<"Bitte geben Sie eine Zahl zwischen 1 und 20 ein: ";
            std::cin>>z;
            std::cout<<std::endl;
            if(z>r)    
                std::cout<<"\nDie eingegebene Zahl ist zu gross"<<std::endl;
            if(z<r)
                std::cout<<"\nDie eingegebene Zahl ist zu klein"<<std::endl;
            if(z==r){win=1;break;}
        }
        if(win)
            std::cout<<"Sie haben gewonnen!!!"<<std::endl;
        else
            std::cout<<"Sie haben verloren!!! Die gesuchte Zahl war: "<<r<<std::endl;
        std::cout<<"Nochmal (j/n) ?";
        std::cin>>c;
    }
}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.12.2004, 06:55 Uhr
~Corona
Gast


Hi!
Hab es gerade ausprobiert. Erst mals danke, aber es hat trotzdem nicht geklappt. Mein C++ Programm hat dan 25 Fehler gezeigt ;-).
Aber ich werds nochmal mit deinen Angaben probieren.

Danke,

corona!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.12.2004, 07:00 Uhr
(un)wissender
Niveauwart


Also, Windalfs Version funzt, wenn dein Compiler das nicht compilieren kann, dann solltest du ihn wechseln.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.12.2004, 11:49 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Also, Windalfs Version funzt


hast du etwa was anderes erwartet



@Corona
hmm was hast du denn für einen kompiler der das nicht frisst..
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 15.12.2004 um 11:49 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.12.2004, 18:42 Uhr
~ich
Gast


ich glaube er hat turbo c++!



weil es bei mir auch 25 fehler anzeigt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.12.2004, 19:52 Uhr
~Corona
Gast


Hiho!
Erstmals danke für eure Hilfe!
habs schon geschafft!

Ich musst am anfang

randomize();
z9=random(31);

eingeben.

Aber jetzt hab ich ne neue Frage. Wenn ich die Zahl erraten habe, kommt ein caut, dass ich die zahl erraten habe. --> nach diesem cout sollte dann das programm beendet werden. wie mach ich das, mit exit?

Ich habe Borland C++ 3.11 - weil wir auch in der Schule mit diesem Programm lernen.

lg, corona
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.12.2004, 01:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Aber jetzt hab ich ne neue Frage. Wenn ich die Zahl erraten habe, kommt ein caut, dass ich die zahl erraten habe. --> nach diesem cout sollte dann das programm beendet werden. wie mach ich das, mit exit?


naja in dem beispiel das ich dir gepostet habe wird in einer schleife nachgefragt ob man nochmal spielen will... wenn du das nicht haben willst musst du einfach nur die äussere schleife weglassen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.12.2004, 18:05 Uhr
~Corona
Gast


Ok, danke.
Ich hab das jetzt mal ausprobiert, aber er schreibt mir bei tolower(c) einen fehler. "tolower should have a prototype" oder so ähnlich. an was kann das liegen?

mfg,

corona
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.12.2004, 18:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


gibts bei dir kein tolower?...
wenn nicht probier mal

C++:
#include <ctype.h> //ich hoffe mal das dein compiler das dann wenigstens kennt



wenn das auch nicht geht schmeiss das tolower raus und schreib stat dessen


C++:
c=='j' ||c=='J'


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: