Programm Zahlenraten

Hallo ich habe folgendes Problem: Ich habe ein kleines Programm geschrieben. Hier der Quellcode:
#include
#include

using namespace std;

#pragma comment (lib, „winmm.lib“)

//Funktionsprototypen
//
int Spielen (int Level);
int WaehleLevel (int Level);
int TesteHighscore (int Punkte, int Highscore);
void ZeigeInfos ();

//Hauptprogramm
//
int main ()
{
//Variablen
//
char Auswahl;
int Level = 5;
int Highscore = 100;

//Verarbeitung des Menüs
//
do
{
//Menü ausgeben
//
cout > Auswahl;

//Je nach Eingabe verzweigen
switch (Auswahl)
{
//Neues Spiel starten
case (‚n‘):
case (‚N‘):
{
// Spielen
int Punkte;
Punkte = Spielen (Level);

Highscore = TesteHighscore (Punkte, Highscore);

} break;

//Level Wählen
case (‚l‘):
case (‚L‘):
{
Level = WaehleLevel (Level);

} break;

//Highscore anzeigen?
case (‚h‘):
case (‚H‘):
{
cout > NeuerLevel;

//Üngültiger Level
if (NeuerLevel 10)
{
//Fehler Meldung ausgeben
cout 10);

//Level zurück geben
return NeuerLevel;
}

//Spielen
//
int Spielen (int Level)
{
int ZufallsZahl;
int Geraternezahl = 0;
int Bereich = Level*100;
int Versuche = 0;
int Punkte = 0;

srand (timeGetTime ());

//Bereich ausgeben, in dem geraten wird
cout > Geraternezahl;

Versuche++;

//Zahl hat nicht gestimmt, also Hinweis
if (Geraternezahl ZufallsZahl)
cout Highscore)
{
cout

Hallo ,
der Fehler liegt in der Abfrage der Zufahlszahl in der while Schleife. In den Moment wo sie das erste Mal abgefragt wird ist sie noch nicht initialisiert. Der Variable zufallszahl muss ein Wert zugewiesen werden , bevor sie das erste mal abgefragt wird. Vlt was wie Zufahlszahl = srand…

P.

Danke du hast mir sehr geholfen!!
Falls du das Spiel haben willst kannst du es auf www.Tobi-Programmin.jimdo.com herunterladen :wink:

Und ich habe noch eine frage:
Was genau muss ich jz machen wenn ich das ganze auf Mac zum laufen bringen will muss ich dann die Datei endung einfach nur auf .jar ändern?

Hallo ,
so einfach ist es leider nicht. Jar-Dateien sind JavaARchive , also unter Java programmiert. Du müsstest das Programm imho unter Mac kompilieren.

P.

Ok nochmals Danke!

Es ist genau das, was die Fehlermeldung sagt. Deine Zufallszahl hat keine wert. Es muss zu erst initialisiert werden:

#include

int rand();
void srand (unsigned int seed);

rand liefert eine ganzzahlige Zufallszahl im Bereich von 0 und 2^15 - 1.
srand wird zur Initialisierung des Zufallszahlengenerators benutzt

Hallo Tobias,

bin auch Anfänger! Kann mit das auch nicht erklären, Sorry!
Gruß mike

Hallo Tobias,

c++ ist zwar nicht mei Spezialgebiet aber hier meine halbe Lösung (mit Hilfeansatz)

  1. Wie die Meldung schon sagt, musst du die Variable initialisieren, sonst steht nur Müll drin.
  2. srand leifert sehr große Zahlen, daher habe ich dir ein Link kopiert mit dem an einem Würfelbeispiel gezeigt wird wie man damit umgeht. --> % = Modulo-Operator


int Spielen (int Level)
{
srand (timeGetTime ()); // siehe http://www2.informatik.uni-halle.de/lehre/c/c_random… hab mal danach gegoogelt

int Geraternezahl = 0;
int Bereich = Level*100;
int Versuche = 0;
int Punkte = 0;

Viel Spaß
Thomas

Der Variablen ZufallsZahl wurde kein Wert zugewiesen.
Also richtig wäre int ZufallsZahl = 0;

Wenn ZufallsZahl eine Funktion „ZufallsZahl()“ mit Rückgabe einer Zahl sein soll, muss die Deklaration auch entsprechend sein, also int zufallszahl();