Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

C++-Game

Diskussion: C++-Game im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hey Leute ;) Habe ein Problem... Hab aus langeweile mal ein Spiel gemacht, bin aber noch Anfänger. Alles funktioniert, ...

Antwort
Alt 12.04.08, 18:04   #1 (permalink)
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard C++-Game

Anzeige

Hey Leute ;)

Habe ein Problem...
Hab aus langeweile mal ein Spiel gemacht, bin aber noch Anfänger.
Alles funktioniert, nur die While-Schleife am Ende nicht.

ICh weiß nicht mit den Klassen(oder wie auch immer) rechnen kann!
Will dem anderen ja Schaden abziehen ;)

[Spoiler]

Code:
#include <iostream>

using namespace std;

class Spieler  // Spieler deklaration! (Deklaration ist glaube ich klar ;)
{
public:
      void SetEnergie(int Energie) {itsEnergie = Energie;}
      int GetEnergie() {return itsEnergie;}
      
      void SetWeapon( int Weapon) { itsWeapon = Weapon; }
      int GetWeapon() { return itsWeapon; }
      
      void SetSchaden (int Schaden) { itsSchaden = Schaden; }
      int GetSchaden () {return itsSchaden; }
      
      void Attacke() { cout <<"Attacke!!!!\n"; }

private:
       int itsEnergie;
       int itsWeapon;
       int itsSchaden;
};


int main()
{
    Spieler Ich;
    Spieler Gegner;
    int Ich_Auswahl;
    int Gegner_Auswahl;
    int Ich_Waffe;
    int Gegner_Waffe;
    int Ich_Energie;
    int Gegner_Energie;
    
    cout <<"Willkommen bei meinem Spiel ;)! \n\n";
    cout <<"Waehlen sie IHREN Charakter aus: \n";    //Chrakter auswahl von Ich 
    cout <<"1. Ork \n2. Mensch\n3. Elf \n";
    cin >> Ich_Auswahl;
    
    if ( Ich_Auswahl == 1)
    {
         Ich.SetEnergie(700);
         cout <<"\nSie sind jetzt ein Ork!"; 
    }
    
    else if( Ich_Auswahl == 2)
    {
         Ich.SetEnergie(600);
         cout <<"\nSie sind jetzt ein Mensch!";   // Das sind die Eigenschaften vom Charakter
    }
    
    else if( Ich_Auswahl == 3)
    {
         Ich.SetEnergie(500);
         cout <<"\nSie sind jetzt ein Elf!";
    }
    
    else
    {     
        cout <<"\nEy, zu grosse Zahl!\nDeshalb sind sie jetzt ein Elf!";
        Ich.SetEnergie(500);
    }
        
         
    cout <<"\n\nWaehlen sie jetzt IHRE Waffe aus: \n\n";
    cout <<"1. Schwert \n2. Axt\n3. Bogen\n4. Speer\n";
    cin >> Ich_Waffe;
    
    if ( Ich_Waffe == 1 )
    {
         Ich.SetSchaden(50);
         cout <<"\n Sie haben jetzt ein Schwert!";
    }
    
    else if ( Ich_Waffe == 2 )
    {
         Ich.SetSchaden(70);
         cout <<"Sie haben jetzt eine Axt!";
    }
    
    else if ( Ich_Waffe == 3 )
    {
         Ich.SetSchaden(40);
         cout <<"Sie haben jetzt ein Bogen!";
    }
    
    else if ( Ich_Waffe == 4 )
    {
         Ich.SetSchaden(60);
         cout <<"Sie haben jetzt ein Speer!";
    }
    
    else
    {
         cout <<"Sie haben keine Waffe ausgewählt!\nDeshalb bekommen sie ein Bogen!";
         Ich.SetSchaden(40);
    }
    
    cout <<"Jetzt wählen sie ihren Feind: \n"; //Feindauswahl!
    cout <<"1. Ork \n2. Mensch\n3. Elf \n";
    cin >> Gegner_Auswahl;
    
    if ( Gegner_Auswahl == 1)
    {
         Gegner.SetEnergie(700);
         cout <<"\nSie sind jetzt ein Ork!"; 
    }
    
    else if( Gegner_Auswahl == 2)
    {
         Gegner.SetEnergie(600);
         cout <<"\nSie sind jetzt ein Mensch!";   // Das sind die Eigenschaften vom Charakter
    }
    
    else if( Gegner_Auswahl == 3)
    {
         Gegner.SetEnergie(500);
         cout <<"\nSie sind jetzt ein Elf!";
    }
    
    else
    {     
        cout <<"\nEy, zu grosse Zahl!\nDeshalb ist ihr Gegner jetzt ein Ork!";
        Gegner.SetEnergie(700);
    }
        
         
    cout <<"\n\nWaehlen sie jetzt die Waffe des Gegners aus: \n\n";
    cout <<"1. Schwert \n2. Axt\n3. Bogen\n4. Speer\n";
    cin >> Gegner_Waffe;
    
    if ( Gegner_Waffe == 1 )
    {
         Gegner.SetSchaden(50);
         cout <<"\n Sie haben jetzt ein Schwert!";
    }
    
    else if ( Gegner_Waffe == 2 )
    {
         Gegner.SetSchaden(70);
         cout <<"Sie haben jetzt eine Axt!";
    }
    
    else if ( Gegner_Waffe == 3 )
    {
         Gegner.SetSchaden(40);
         cout <<"Sie haben jetzt ein Bogen!";
    }
    
    else if ( Gegner_Waffe == 4 )
    {
         Gegner.SetSchaden(60);
         cout <<"Sie haben jetzt ein Speer!";
    }
    
    else
    {
         cout <<"Sie haben keine Waffe ausgewählt!\nDeshalb bekommen sie ein Axt!";
         Gegner.SetSchaden(70);
    }
    int Gegner_Tod = Gegner.GetEnergie();
    int Ich_Tod = Ich.GetEnergie();
    
    int Gegner_Attacke = Gegner.GetSchaden();
    int Ich_Attacke = Ich.GetSchaden();
    
    
    while ( *Ich_Tod >= 0 || *Gegner_Tod >= 0 )
    {
          cout <<"Sie greifen an! \n";
          Gegner_Energie = *Gegner_Tod - *Ich.GetSchaden() ;
          
          cout <<"Der Gegner greift an! \n";
          Ich_Energie = *Ich_Tod - *Gegner_Attacke ;
    }
    
    if (Gegner.GetEnergie() == 0 )
        cout <<"Sie haben gewonnen!";
        
    else if (Ich.GetEnergie() == 0 )
        cout <<"Sie haben verloren!";
        
    else 
    cout <<"Nix passiert...";
    
    int Ende;
    cin >> Ende;
    return 0;
}
[/Spoiler]

PS: ICh weiß, ist bestimmt nen schlechter Programmierstyl, aber bin ja Anfänger :P
nhBps ist offline   Mit Zitat antworten
Alt 12.04.08, 19:30   #2 (permalink)
 
Benutzerbild von Avenger
 
Registriert seit: 27.12.03
Avenger Leistung: Facit NTK
Avenger eine Nachricht über ICQ schicken
Likes: 0
Standard

die Variablen Ich_Tod bzw. Gegner_Tod bleiben während der While-Schleife am Ende Gleich, d.h. die bedingung wird immer Wahr bleiben.

Außerdem warum dereferenzierst du einfache Variablen? Bei mir mag der Compiler das nicht einmal.

Folgendes sollte funktionieren:

Code:
    while ( Ich_Tod >= 0 || Gegner_Tod >= 0 )
    {
          cout <<"Sie greifen an! \n";
          Gegner_Energie = Gegner_Tod - Ich.GetSchaden() ;
          
          cout <<"Der Gegner greift an! \n";
          Ich_Energie = Ich_Tod - Gegner_Attacke ;

          // Variablen aktualisieren
          Gegner_Tod = Gegner.GetEnergie();
          Ich_Tod = Ich.GetEnergie();
    }
Avenger ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 12.04.08, 21:01   #3 (permalink)
Themenstarter
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard

Geht bei mir gehts irgendwie trotzdem nicht...
Ist immer noch eine endlosschleife...

Und wie gesagt, bin noch anfänger...
nhBps ist offline   Mit Zitat antworten
Alt 12.04.08, 21:28   #4 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Kapselung ist eine feine Sache, wenn sie wirklich verwendet wird

Code:
Gegner_Tod = Gegner.GetEnergie();
          Ich_Tod = Ich.GetEnergie();
damit werden die Variablen immer auf den Startwert gesetzt. Also entweder komplett OO sein (ich.setSchaden() nutzen und ich.getEnertie() abfragen) oder alle genutzen Variablen vorher lokal anlegen und nicht Objektvariablen mit den Blockvariablen mischen
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 13.04.08, 09:07   #5 (permalink)
Themenstarter
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard

ok

Werde später mal gucken obs geht, bim am anderen PC.

aber schonmal THX^^

Edit:

Weiß nicht ob ich das falsch gemacht habe, aber jetzt habe ich das so:
Code:
    while ( Ich_Tod >= 0 || Gegner_Tod >= 0 )
    {
          cout <<"Sie greifen an! \n";
          Gegner_Energie = Gegner_Tod - Ich.GetSchaden() ;
          
          cout <<"Der Gegner greift an! \n";
          Ich_Energie = Ich_Tod - Gegner_Attacke ;

          // Variablen aktualisieren
          Gegner_Tod = Gegner.SetEnergie();
          Ich_Tod = Ich.SetEnergie();
    }
Und jetzt steht bei dem Kompiler als fehler, dass es nichts richtiges gefunden hat oder so...
nhBps ist offline   Mit Zitat antworten
Alt 13.04.08, 12:37   #6 (permalink)
 
Benutzerbild von Avenger
 
Registriert seit: 27.12.03
Avenger Leistung: Facit NTK
Avenger eine Nachricht über ICQ schicken
Likes: 0
Standard

du musst ja auch Gegner.GetEnergy() anstatt Gegner.SetEnergy() verwenden (bei Ich das selbe)
Avenger ist offline   Mit Zitat antworten
Alt 13.04.08, 14:26   #7 (permalink)
Themenstarter
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard

Hab ich auch schon versucht.
Aber wie CDW gessagt hat, damit werden die Variablen wieder auf den Standartwert gesetzt...
nhBps ist offline   Mit Zitat antworten
Alt 13.04.08, 15:25   #8 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 202
Standard

Das sollte Dein Gedanke sein, oder nicht?
Code:
while (ich.getEnergie()>=0 && gegner.getEnergie()>=0 ) //solange beide am leben sind:
    {
          cout <<"Sie greifen an! \n";
         ich.setEnergie(ich.getEnergie-gegner.getSchaden()); 
          
          cout <<"Der Gegner greift an! \n";
         gegner.setSchaden(gegner.getEnergie-ich.getSchaden));
   
    }
Das wäre OOP-Anwendung (Du hast ja schließlich die Methoden nicht umsonst definiert ).
Variablennamen und Methodennamen fangen nach http://java.sun.com/docs/codeconv/ klein an. Für C++ gilt wohl auch in etwa dasselbe:
http://en.wikibooks.org/wiki/C%2B%2B...le_Conventions
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 13.04.08, 15:44   #9 (permalink)
 
Registriert seit: 17.02.06
Harry Boeck Leistung: Facit NTK
Likes: 0
Standard

Sagt mal, Jungs, WIESO in aller Welt fangt Ihr an, die EINFACHSTEN Probleme mit dem KOMPLIZIERTEST möglichen Mitteln zu lösen?

Vor allem: Wenn man Anfänger ist UND außerdem nur ein sehr kleines, überschaubares Problem vor der Nase hat, wieso dann VOR Beginn der ersten Lösung schon von vornherein Organisationsmittel benutzen, die einen EXTRA Komplexitätslayer über das ganze ziehen?

@nhBps:
Nimm doch einfach mal EINFACHE Ausdrucksmittel, mit denen Du schon genug Probleme hast, um das Problem auf die EINFACHE Weise zu lösen!

NACHDEM dann die EINFACHE Lösung existiert, schreibe diese stückweise um, wo Du in jedem Schritt immer wieder kontrollieren kannst, ob das Zeug IMMER NOCH funktioniert.

Auf diese Weise lernst Du gleichzeitig eine anerkannte Technik zur Modifikation von komplexen Projekten, die anders gar nicht zu handhaben wären. Und investierst also nebenbei sinnvoll in die Zukunft.

Und Du landest AUCH SO schließlich bei dem von Dir offenbar angestrebten Üben der komplexeren und flexibleren Ausdrucksweisen mit Zugriffsfunktionen.

Aber: Eins nach dem anderen und nicht gleich mit dem Kopf durch die Wand...
Harry Boeck ist offline   Mit Zitat antworten
Alt 13.04.08, 17:38   #10 (permalink)
Themenstarter
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard

Werds dann später machen probieren bin am anderen

Aber ich jz schon 2 ganze Tutorials durch und ein Buch durch...
Aber werds heute dann mal umändern...

THX

Edit:

Game   
Code:
#include <iostream>

using namespace std;


int main()
{
int Ich_Auswahl;
int Gegner_Auswahl;

int Ich_Waffe;
int Gegner_Waffe;

int Ich_Energie;
int Gegner_Energie;

int Ich_Schaden;
int Gegner_Schaden;

int Ich_Tod;
int Gegner_Tod;

int Ich_Aktualisiert;
int Gegner_Aktualisiert;

cout <<"Willkommen bei meinem Spiel ;)! \n\n";
cout <<"Waehlen sie IHREN Charakter aus: \n"; //Chrakter auswahl von Ich
cout <<"1. Ork \n2. Mensch\n3. Elf \n";
cin >> Ich_Auswahl;

if ( Ich_Auswahl == 1)
{
Ich_Energie = 700;
cout <<"\nSie sind jetzt ein Ork!";
}

else if( Ich_Auswahl == 2)
{
Ich_Energie = 600 ;
cout <<"\nSie sind jetzt ein Mensch!"; // Das sind die Eigenschaften vom Charakter
}

else if( Ich_Auswahl == 3)
{
Ich_Energie = 500;
cout <<"\nSie sind jetzt ein Elf!";
}

else
{
cout <<"\nEy, zu grosse Zahl!\nDeshalb sind sie jetzt ein Elf!";
Ich_Energie = 500 ;
}


cout <<"\n\nWaehlen sie jetzt IHRE Waffe aus: \n\n";
cout <<"1. Schwert \n2. Axt\n3. Bogen\n4. Speer\n";
cin >> Ich_Waffe;

if ( Ich_Waffe == 1 )
{
Ich_Schaden = 50;
cout <<"\n Sie haben jetzt ein Schwert!";
}

else if ( Ich_Waffe == 2 )
{
Ich_Schaden = 70;
cout <<"Sie haben jetzt eine Axt!";
}

else if ( Ich_Waffe == 3 )
{
Ich_Schaden = 40;
cout <<"Sie haben jetzt ein Bogen!";
}

else if ( Ich_Waffe == 4 )
{
Ich_Schaden = 60 ;
cout <<"Sie haben jetzt ein Speer!";
}

else
{
cout <<"Sie haben keine Waffe ausgewählt!\nDeshalb bekommen sie ein Bogen!";
Ich_Schaden = 40 ;
}

cout <<"Jetzt wählen sie ihren Feind: \n"; //Feindauswahl!
cout <<"1. Ork \n2. Mensch\n3. Elf \n";
cin >> Gegner_Auswahl;

if ( Gegner_Auswahl == 1)
{
Gegner_Energie = 700;
cout <<"\nSie sind jetzt ein Ork!";
}

else if( Gegner_Auswahl == 2)
{
Gegner_Energie = 600;
cout <<"\nSie sind jetzt ein Mensch!"; // Das sind die Eigenschaften vom Charakter
}

else if( Gegner_Auswahl == 3)
{
Gegner_Energie = 500;
cout <<"\nSie sind jetzt ein Elf!";
}

else
{
cout <<"\nEy, zu grosse Zahl! Deshalb ist ihr Gegner jetzt ein Ork!";
Gegner_Energie = 700;
}


cout <<"\n\nWaehlen sie jetzt die Waffe des Gegners aus: \n\n";
cout <<"1. Schwert \n2. Axt\n3. Bogen\n4. Speer\n";
cin >> Gegner_Waffe;

if ( Gegner_Waffe == 1 )
{
Gegner_Schaden = 50;
cout <<"\n Sie haben jetzt ein Schwert!";
}

else if ( Gegner_Waffe == 2 )
{
Gegner_Schaden = 70;
cout <<"Sie haben jetzt eine Axt!";
}

else if ( Gegner_Waffe == 3 )
{
Gegner_Schaden = 40;
cout <<"Sie haben jetzt ein Bogen!";
}

else if ( Gegner_Waffe == 4 )
{
Gegner_Schaden = 60;
cout <<"Sie haben jetzt ein Speer!";
}

else
{
cout <<"Sie haben keine Waffe ausgewählt! Deshalb bekommen sie ein Axt!";
Gegner_Schaden = 70;
}

while ( Gegner_Aktualisiert > 0 || Ich_Aktualisiert > 0 )
{
cout <<"Sie greifen an! \n";
Gegner_Tod = Gegner_Energie - Ich_Schaden ;

cout <<"Der Gegner greift an! \n";
Ich_Tod = Ich_Energie - Gegner_Schaden ;

Gegner_Aktualisiert = Gegner_Aktualisiert - Gegner_Tod;
Ich_Aktualisiert = Ich_Aktualisiert - Ich_Tod;
}

if (Gegner_Aktualisiert < 0 )
cout <<"Sie haben gewonnen!";

else if (Ich_Aktualisiert < 0 )
cout <<"Sie haben verloren!";

else
cout <<"Nix passiert...";

int Ende;
cin >> Ende;
return 0;
}


Hab das jetzt so verändert...
Aber jetzt gewinne ich die ganze Zeit...

Danke an alle die mir geholfen haben ^^
nhBps ist offline   Mit Zitat antworten
Alt 13.04.08, 22:22   #11 (permalink)
Senior Member
 
Registriert seit: 29.07.05
Heinzelotto Leistung: Facit NTK
Heinzelotto eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
Original von nhBps
Aber ich jz schon 2 ganze Tutorials durch und ein Buch durch...
dan lies dir in dem buch nochmal das kapitel zum thema switch-statements durch

Zitat:
Hab das jetzt so verändert...
Aber jetzt gewinne ich die ganze Zeit...
ich hab mir dein programm nicht wirklich durchgelesen, ab du scheinst in zeile 179 und 182 zu prüfen, ob die anzahl der lebenspunkte _gleich_ 0 ist. wenn mir allerdings 2 mal z.B. 60 abgezogen werden, habe ich dann nicht -20 LP?
Heinzelotto ist offline   Mit Zitat antworten
Alt 14.04.08, 15:14   #12 (permalink)
Themenstarter
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard

Ja, habe den Fehler jetzt berichtigt

Game   
Code:
#include <iostream>

using namespace std;


int main()
{
int Ich_Auswahl;
int Gegner_Auswahl;            // Variablen zum Auswählen
int Ich_Waffe;
int Gegner_Waffe;

int Ich_Energie;
int Gegner_Energie;

int Ich_Schaden;
int Gegner_Schaden;


cout <<"Willkommen bei meinem Spiel ;)! \n\n";
cout <<"Waehlen sie IHREN Charakter aus: \n"; //Chrakter auswahl von Ich
cout <<"1. Ork \n2. Mensch\n3. Elf \n";
cin >> Ich_Auswahl;

if ( Ich_Auswahl == 1)
{
Ich_Energie = 700;
cout <<"\nSie sind jetzt ein Ork!";
}

else if( Ich_Auswahl == 2)
{
Ich_Energie = 600 ;
cout <<"\nSie sind jetzt ein Mensch!"; // Das sind die Eigenschaften vom Charakter
}

else if( Ich_Auswahl == 3)
{
Ich_Energie = 500;
cout <<"\nSie sind jetzt ein Elf!";
}

else
{
cout <<"\nEy, zu grosse Zahl!\nDeshalb sind sie jetzt ein Elf!";
Ich_Energie = 500 ;
}


cout <<"\n\nWaehlen sie jetzt IHRE Waffe aus: \n\n";
cout <<"1. Schwert \n2. Axt\n3. Bogen\n4. Speer\n";
cin >> Ich_Waffe;

if ( Ich_Waffe == 1 )
{
Ich_Schaden = 50;
cout <<"\n Sie haben jetzt ein Schwert!";
}

else if ( Ich_Waffe == 2 )
{
Ich_Schaden = 70;
cout <<"Sie haben jetzt eine Axt!";
}

else if ( Ich_Waffe == 3 )
{
Ich_Schaden = 40;
cout <<"Sie haben jetzt ein Bogen!";
}

else if ( Ich_Waffe == 4 )
{
Ich_Schaden = 60 ;
cout <<"Sie haben jetzt ein Speer!";
}

else
{
cout <<"Sie haben keine Waffe ausgewählt!\nDeshalb bekommen sie ein Bogen!";
Ich_Schaden = 40 ;
}

cout <<"\nJetzt wählen sie ihren Feind: \n"; //Feindauswahl!
cout <<"1. Ork \n2. Mensch\n3. Elf \n";
cin >> Gegner_Auswahl;

if ( Gegner_Auswahl == 1)
{
Gegner_Energie = 700;
cout <<"\nIhr Feind ist jetzt ein Ork!";
}

else if( Gegner_Auswahl == 2)
{
Gegner_Energie = 600;
cout <<"\nIhr Feind ist jetzt ein Mensch!"; // Das sind die Eigenschaften vom Charakter
}

else if( Gegner_Auswahl == 3)
{
Gegner_Energie = 500;
cout <<"\nIhr Feind ist jetzt ein Elf!";
}

else
{
cout <<"\nEy, zu grosse Zahl! Deshalb ist ihr Gegner jetzt ein Ork!";
Gegner_Energie = 700;
}


cout <<"\n\nWaehlen sie jetzt die Waffe des Gegners aus: \n\n";
cout <<"1. Schwert \n2. Axt\n3. Bogen\n4. Speer\n";
cin >> Gegner_Waffe;

if ( Gegner_Waffe == 1 )
{
Gegner_Schaden = 50;
cout <<"\nIhr Feind hat jetzt ein Schwert!";
}

else if ( Gegner_Waffe == 2 )
{
Gegner_Schaden = 70;
cout <<"\nIhr Feind hat jetzt eine Axt!";
}

else if ( Gegner_Waffe == 3 )
{
Gegner_Schaden = 40;
cout <<"\nIhr Feind hat jetzt ein Bogen!";
}

else if ( Gegner_Waffe == 4 )
{
Gegner_Schaden = 60;
cout <<"\nIhr Feind hat jetzt ein Speer!";
}

else
{
cout <<"Sie haben keine Waffe ausgewählt für ihren Feind asugewählt! Deshalb bekommet er eine Axt!";
Gegner_Schaden = 70;
}

while ( Gegner_Energie > 0 && Ich_Energie > 0 )
{

Ich_Energie = Ich_Energie - Gegner_Schaden ;

Gegner_Energie = Gegner_Energie - Ich_Schaden ;

}

if (Gegner_Energie < 0 )
cout <<"Sie haben gewonnen!";

else if (Ich_Energie < 0 )
cout <<"Sie haben verloren!";

else
cout <<"Nix passiert...";

int Ende;
cin >> Ende;
return 0;
}
nhBps ist offline   Mit Zitat antworten
Alt 14.04.08, 17:12   #13 (permalink)
 
Registriert seit: 20.03.06
lBr1anl Leistung: Facit NTK
lBr1anl eine Nachricht über ICQ schicken
Likes: 0
Standard

Sieht doch ganz gut aus. Allerdings hast du am Ende noch einen kleinen Fehler drin:
Code:
[...]
while ( Gegner_Energie > 0 && Ich_Energie > 0 )
{
  Ich_Energie = Ich_Energie - Gegner_Schaden ;
  Gegner_Energie = Gegner_Energie - Ich_Schaden ;
}

if (Gegner_Energie < 0 )
cout <<"Sie haben gewonnen!";

else if (Ich_Energie < 0 )
cout <<"Sie haben verloren!";

else
cout <<"Nix passiert...";
[...]
Hier überprüfst du erst, ob die Energie noch größer als 0 ist und gibst danach, je nachdem, wessen Energie kleiner 0 ist, die entsprechende Endmeldung aus. Wenn allerdings einer der Opponenten genau bei 0 Energiepunkten rauskommt, springst du zwar aus der Whileschleife raus, gibst aber trotzdem "Nix passiert..." aus.
Wenn du die <-Operatoren in der if- und else-if-Abfrage jeweils durch ein <= ersetzen würdest, hättest du die absolute Sicherheit, dass der richtige Gewinner ausgegeben wird. Außerdem würdest du dir den else-Block sparen
lBr1anl ist offline   Mit Zitat antworten
Alt 14.04.08, 17:15   #14 (permalink)
Themenstarter
 
Registriert seit: 31.01.08
nhBps Leistung: Facit NTK
Likes: 0
Standard

achso
Danke ^^
nhBps ist offline   Mit Zitat antworten
Alt 23.06.08, 18:17   #15 (permalink)
 
Registriert seit: 15.01.08
LionC Leistung: Facit NTK
Likes: 0
Standard

ich wei das mit dem stil haste schon geschrieben also is das nur ein tipp
mehrere ifs gleicher variable lassen sich auch als switch case ausdrücken

und ich würde fast das ganze progg nur in klassen packen, is einfach übersichtlicher^^
LionC ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » C++-Game
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Controller & Game sprudelgehirn Applikationen 0 04.10.09 13:53
2D RPG-Game Teletappy Games 6 28.09.08 20:53
Hab(b)o Game? 0wnZ Games 17 11.07.06 00:39


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61