2016-04-05 9 views
0

Ich versuche, ein Spiel in C++ zu machen. Mein Editor ist Code :: Blocks und mein Compiler ist MinGW. Das Spiel ist ein textbasiertes Überlebensspiel mit den Variablen Hunger, Durst, Wärme und Auswahl. Wenn ich versuche, dem Spieler die Werte von Hunger, Durst und Wärme zu vermitteln, gibt es mir den Fehler, den der Titel dieser Frage angibt. Ich bin ein relativ neuer Programmierer, aber ich verstehe die Grundlagen. Ich werde jetzt den Code drucken i verwendet:C + + Fehler: Anweisung kann Adresse überladener Funktion nicht auflösen

cout<< "Your hunger is"; hunger; endl; 
cout<< "Your warmth is"; warmth; endl; 
cout<< "Your thirst is"; thirst; endl; 

Hier werden die Variablen geändert (dies ist ein Beispiel):

int wood() 
{ 
cout<< "You have chosen find firewood!"<< endl; 
if ((rand() % 2) == 2){ 
    cout<< "You found firewood!"<<endl; 
    warmth = warmth + 1; 
} 
else{ 
    cout<< "You could not find any firewood"<< endl; 
} 
} 

In der gleichen Funktion, die ich dem Spieler den Code sagen, sie sollen einen Punkt in jeder variablen verlieren pro Runde:

warmth = warmth - 1; 
hunger = hunger - 1; 
thirst = thirst - 1; 

der Code über 100 Zeilen lang ist, so dass ich einfügen werde nicht die Gesamtheit des Codes, es sei denn gefragt. Wenn eine der Variablen auf 0 zu erhalten, endet das Spiel:

if (hunger = 0){ 
    cout<< "You starved!"<< endl; 
    cout<< "Game over!"<< endl; 
    return 0; 
} 
if (thirst = 0){ 
    cout<< "You became dehydrated!"<< endl; 
    cout<< "Game over!"<< endl; 
    return 0; 
} 
if (warmth = 0){ 
    cout<< "You froze!"<< endl; 
    cout<< "Game over!"<< endl; 
    return 0; 
} 
+0

Btw, wenn Sie Kompilierungsfehler erhalten zeigt es auf bestimmte Zeile, sollten Sie zumindest einfügen genau Nachricht comer gibt Ihnen und Zeile, wo es zeigt. – Slava

Antwort

1

Es sollte sein:

cout<< "Your hunger is" << hunger << endl; 

und so weiter

1

Sie haben ein paar Tippfehler in Sie Code. Wenn Sie das tun

cout<< "Your hunger is"; hunger; endl; 

Sie haben 3 Anweisungen anstelle einer Ausgabeanweisung. Sie haben

cout << "Your hunger is" << hunger << endl; 

, die alles zusammen kettet. Andernfalls versucht es, endl() aufzurufen, aber es kann nicht, da es kein zugeordnetes Stream-Objekt gibt.

Sie haben auch ein Problem mit allen von Ihnen, wenn Aussagen.

if (hunger = 0) 

Wird immer falsch sein, wie Sie das Ergebnis auswerten hunger zu 0 Einstellung, die 0 ist. Sie müssen alle Verwendungen = in Ihrem if zu == ändern, um einen Gleichheitsvergleich zu tun.

Verwandte Themen