Unser neuestes Mitglied: pemay01

135 Besucher derzeit online [ Zeigen ]

Startseite | Werbefreies Forum: Jetzt Mitglied werden! | Login | Team | Suchen
Statistik | Hilfe / FAQ | Regeln
Willkommen auf dem xpBulletin Board, Gast.
Du bist nicht registriert oder eingeloggt.
Dein Letzter Besuch war am: 25.09.2018, 14:50 Uhr.
[ Alles als gelesen markieren ]
xpBulletin Board » Programmierung » C und C++ - Forum » Selber Geschriebenes Programm bleibt hängen (Dev-C++)
Benutzer im Forum aktiv: Keine

[ Neue Antwort ]


Autor
Thema: Selber Geschriebenes Programm bleibt hängen (Dev-C++)

 

Seiten (1): [1]

Neuer Beitrag 15.05.2008, 14:16
 Selber Geschriebenes Programm bleibt hängen (Dev-C++)

#1 | Zitieren |

Bongi C++ ist Offline Bongi C++
Code Reuser
So ich hab mich grad mal hier angemeldet weil ich ein Problem mit meinem selbstgeschriebenen Programm habe. Es ist ein kleines Rundenkampf Game das ich mit Dev-C++ geschrieben habe. Den ganzen Code jetzt hier zu posten wäre wahrscheinlich etwas umständlich. Deshalb hab ich mal eine rar datei hochgeladen die alle benötigten Datein enthalten sind. Diese ist hier zu finden [ Link ist nur für registrierte Mitglieder sichtbar ].

So jetzt zur Problembeschreibung. Wenn ihr die Datei heruntergeladen habt öffnet bitte die datei Mein Game.exe (wenn ihr denkt das es eine gefährliche datei ist dann könnt ihr ja auch die .dev Datei und kompiliert dies dann könnt ihr euch sicher sein das es nur das Rundenkampf Game ist) und gebt zuerst einen Namen ein dann wählt eine Rasse und dann müsst ihr [2] 2 Waffen und 0 Schilde wählen und dann 2 mal die 16 (also den Stock). Jetzt müsst ihr entweder die 1(Drachenkrieger) oder die 3(Troll) wählen.
Dann geht der Kampf los. Nun müsst ihr eure Ap durch Angriffe (welche sind egal) auf 0 reduzieren.

Bis hierhin sollte eigentlich alles glatt laufen. Doch jetzt kommt der Fehler. Eigentlich müsste der Gegner jetzt mit beiden Waffen angreifen bis die Ap=0 sind. Doch genau dies tut er nicht. Er greift Lediglich 1 mal an und dann bleibt das Programm hängen doch ich weis nicht warum.
Wisst ihr vielleicht warum?

Ach ja falls der Code noch nicht so professionel bzw nicht ganz sauber geschrieben oder nicht so gut formatiert ist. Nicht wundern. Ich lerne seit gerade einmal 3 Tagen C++.

Verbesserungsvorschläge jeglicher Art egal wozu nehme ich natürlich gerne dankend an.

Ich hoffe ich konnte das Problem klar darstellen und jetzt hoffe ich auf ein wenig Hilfe von euch .
 Beiträge: 4 | Punkte: 9 | Wohnort: Deutschland | Registriert seit: 3785 Tagen (May 2008)
 
Neuer Beitrag 15.05.2008, 14:16
 Werbung

AdBot
Mister Ad

 
Neuer Beitrag 16.05.2008, 14:24
 Re: Selber Geschriebenes Programm bleibt hängen (Dev-C++)

#2 | Zitieren |

Bongi C++ ist Offline Bongi C++
Code Reuser


Themenstarter/in
Oh man ich weis immer noch nicht woran das liegt und von euch anscheinend auch nicht.

Wenn sich das mal einer mit ein bisschen Erfahrung angucken könnte wäre ich euch echt dankbar. Weil ich find den Fehler selber einfach nicht.

Danke schonmal im vorraus.
 Beiträge: 4 | Punkte: 9 | Wohnort: Deutschland | Registriert seit: 3785 Tagen (May 2008)
 
Neuer Beitrag 16.05.2008, 14:29
 Re: Selber Geschriebenes Programm bleibt hängen (Dev-C++)

#3 | Zitieren |

bg ist Offline bg

Operator
Zen Master Foo


Alter: 37
Geschlecht: Männlich
Wie waers, wenn du die entsprechenden Codezeilen hier einfach postest (am besten zwischen [code] und [/code] )
 Beiträge: 3.842 | Punkte: 4.429 | Wohnort: Wien | Registriert seit: 5523 Tagen (Aug 2003)
 
Neuer Beitrag 16.05.2008, 14:29
 Werbung

AdBot
Mister Ad

 
Neuer Beitrag 16.05.2008, 21:15
 Re: Selber Geschriebenes Programm bleibt hängen (Dev-C++)

#4 | Zitieren |

Bongi C++ ist Offline Bongi C++
Code Reuser


Themenstarter/in
Naja das ganze prog zu posten wäre ne bisschen viel sind nämlich 651 zeilen. Aber ich hab ja 3 funktionen gemacht und es fängt ja erst in der 3 funktion an zu hängen wenn die ganzen befehle von den anderen beiden funktionen schon abgelaufen sind. Deshalb werde ich jetzt einfach nur den Code der 3 funktion(Die funktion in der der eigentliche kampf abläuft).
Code:

void Kampf(void)
{
     int BGSchadenWaffe1=GSchadenWaffe1-Verteidigung;
     int BGSchadenWaffe2=GSchadenWaffe2-Verteidigung;
     int BGSchadenGesamt=GSchadenGesamt-Verteidigung;
     int BSchadenWaffe1=SchadenWaffe1-GVerteidigung;
     int BSchadenWaffe2=SchadenWaffe2-GVerteidigung;
     int BSchadenGesamt=SchadenGesamt-GVerteidigung;
     for(;Lebt == 1 || GLeben == 1
     {
               Runde++;
               Runde2++;
               Verteidigung=VertGesamt;
               GVerteidigung=GVertGesamt;
               while(Ap != 0)
               {
                        cout << "\nWas moechten sie tun?\n";
                        if(Ap>=6)
                        {
                                 cout << "[1] Dem naechsten Angriff des Gegners ausweichen (6Ap)\n";
                                 Moeglichkeiten++;
                        }
                        cout << "[2] Mit Waffe 1 angreifen (1Ap)\n";
                        Moeglichkeiten++;
                        if(BWaffe2==1)
                        {
                                    cout << "[3] Mit Waffe 2 angreifen (1Ap)\n";
                                    Moeglichkeiten++;
                                    cout << "[4] Mit beiden Waffen angreifen (2Ap)\n";
                                    Moeglichkeiten++;
                        }
                        if(Runde >=3)
                        {
                                 cout << "[5] Heilen (6AP)\n";
                                 Moeglichkeiten++;
                        }
                        cin >> Auswahl;
                        switch(Auswahl)
                        {
                                       case 1 : if(Ap>=6)
                                                {
                                                    Ausweichen=1;
                                                    Ap=0;
                                                    cout << "Du wirst dem naechsten Angriff des Gegners ausweichen.\n";
                                                    Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                    cout << "Du hast zu wenig Ap um Auszuweichen. Deshalb wirst du mit Waffe 1 angreifen.\n";
                                                    GLeben=GLeben-BSchadenWaffe1;
                                                    Ap--;
                                                    cout << "Du hast dem Gegner " << BSchadenWaffe1 << " abgezogen.\n";
                                                    Moeglichkeiten=0;
                                                }
                                       break;
                                       case 2 : if(GAusweichen==0)
                                                {
                                                      GLeben=GLeben-BSchadenWaffe1;
                                                      Ap--;
                                                      cout << "Du hast dem Gegner " << BSchadenWaffe1 << " abgezogen.\n";
                                                      Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                    Ap--;
                                                    cout << "Der Gegner ist deinem Angriff ausgewichen.";
                                                    Moeglichkeiten=0;
                                                }
                                       break;
                                       case 3 : if(GAusweichen==0)
                                                {
                                                      GLeben=GLeben-BSchadenWaffe2;
                                                      Ap--;
                                                      cout << "Du hast dem Gegner " << SchadenWaffe2 << " abgezogen.\n";
                                                      Moeglichkeiten=0;
                                                }
                                                else 
                                                {
                                                     Ap--;
                                                     cout << "Der Gegner ist deinem Angriff ausgewichen.";
                                                     Moeglichkeiten=0;
                                                }
                                       break;
                                       case 4 : if(GAusweichen==0)
                                                {
                                                      GLeben=GLeben-BSchadenGesamt;
                                                      Ap=Ap-2;
                                                      cout << "Du hast dem Gegner " << BSchadenGesamt << " abgezogen.\n";
                                                      Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                    Ap=Ap-2;
                                                    cout << "Der Gegner ist deinem Angriff ausgewichen.";
                                                    Moeglichkeiten=0;
                                                }
                                       break;
                                       case 5 : if(Runde >=3)
                                                {
                                                      Leben=Leben+Heilen;
                                                      Ap=0;
                                                      cout << "Du haste " << Heilen << " deiner Lebenspunkte geheilt.\n";
                                                      Runde=0;
                                                      Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                      cout << "Du kannst dich momentan noch nicht (wieder) heilen.\n"
                                                           << "Weil du die falsche Zahl eingegeben hast wirst du jetzt\n"
                                                           << "mit Waffe 1 angreifen\n";
                                                      if(GAusweichen==0)
                                                      {
                                                               GLeben=GLeben-BSchadenWaffe1;
                                                               Ap--;
                                                               cout << "Du hast dem Gegner " << BSchadenWaffe1 << " abgezogen.\n";
                                                               Moeglichkeiten=0;
                                                      }
                                                      else
                                                      {
                                                               Ap--;
                                                               cout << "Der Gegner ist deinem Angriff ausgewichen.";
                                                               Moeglichkeiten=0;
                                                      }
                                                }
                                       break;
                                       default : cout << "Du hast eine falsche Zahl eingegeben. Es gibt nur " << Moeglichkeiten << '\n'  
                                                      << "Deshalb wirst du mit Waffe 1 angreifen.\n";
                                                 if(GAusweichen==0)
                                                 {
                                                 GLeben=GLeben-BSchadenWaffe1;
                                                 Ap--;
                                                 cout << "Du hast dem Gegner " << BSchadenWaffe1 << " abgezogen.\n";
                                                 Moeglichkeiten=0;
                                                 }
                                                 else
                                                 {
                                                     Ap--;
                                                     cout << "Der Gegner ist deinem Angriff ausgewichen.\n";
                                                     Moeglichkeiten=0;
                                                 }
                                       break;
                        }
               }
     GAusweichen=0;
     Ap=Apvoll;
     if(GLeben <=0)
     {
                cout << "___________________________________________________\n"
                     << "Der Sieg ist dein!!\n"
                     << "___________________________________________________\n";
                GLebt=0;
                break;
     }
     cout << "\nDer Gegner:\n";
     while(GAp!=0)
     {
                 if(Runde2 >=3 && GLeben<=100)
                 {
                           GLeben=GLeben+GHeilen;
                           GAp=0;
                           cout << "Der Gegner hat " << GHeilen << " seiner Lebenspunkte geheilt.\n";
                 }
                 if(GWaffe2==1 && Ausweichen==0)
                 {
                               Leben=Leben-BGSchadenGesamt;
                               GAp=GAp-2;
                               cout << "Der Gegner greift mit beiden Waffen an und zieht dir " << BGSchadenGesamt << " ab.\n";
                 }
                 if(GWaffe2==1 && Ausweichen==1)
                 {
                     GAp=GAp-2;
                     cout << "Du bist dem Angriff des Gegners ausgewichen.\n";
                 }
                 if(GSchild==1 && Ausweichen==0)
                 {
                               Leben=Leben-BGSchadenWaffe1;
                               GAp--;
                               cout << "Der Gegner greift mit Waffe 1 an und zieht dir " << BGSchadenWaffe1 << " ab.\n";
                 }
                 if(GWaffe2=0 && Ausweichen==1)
                 {
                     GAp--;
                     cout << "Du bist dem Angriff des Gegners ausgewichen.\n";
                 }
     }
     cout << "\nSie haben noch " << Leben << " Lebenspunkte.\n"
          << "Ihr Gegner hat noch " << GLeben << " Lebenspunkte.\n";
     GAp=Apvoll;
     Ausweichen=0;
     if(Leben <=0)
     {
                cout << "___________________________________________________\n"
                     << "Der Gegner hat dich bezwungen. Schande ueber dich!!\n"
                     << "___________________________________________________\n";
                Lebt=0;
                break;
     }                           
     }                                            
}



So das is die funktion. Aber erst einmal danke an bg das er mir als neuling wenigstens versucht zu helfen.
 Beiträge: 4 | Punkte: 9 | Wohnort: Deutschland | Registriert seit: 3785 Tagen (May 2008)
 
Neuer Beitrag 17.05.2008, 12:11
 Re: Selber Geschriebenes Programm bleibt hängen (Dev-C++)

#5 | Zitieren |

bg ist Offline bg

Operator
Zen Master Foo


Alter: 37
Geschlecht: Männlich
Also ganz ehrlich: Das sieht furchtbar aus

Du solltest schnellstmoeglich das Kapitel mit den Arrays (deutsch: Feldern) lernen, dann brauchst du kuenftig nicht mehr so viel schreiben ;-)

Statt:
Code:

Waffe1 = "Waffenbezeichnung1"
Waffe2 = ...
Waffe3 = ...



schreibst du zB. dann nur mehr
Code:

string Waffe[] = { "Waffenbezeichnung1", ..., ... }



Auch auf einzelne Elemente kannst du dadurch einfach zugreifen:
Code:

int WaffenNr;
for (int i=0; i < ...; i++) cout << "[" << i << "] " << Waffe[i] << endl;
cin >> WaffenNr;
GewaehlteWaffe = Waffe[WaffenNr];

 Beiträge: 3.842 | Punkte: 4.429 | Wohnort: Wien | Registriert seit: 5523 Tagen (Aug 2003)
 
Neuer Beitrag 17.05.2008, 19:23
 Re: Selber Geschriebenes Programm bleibt hängen (Dev-C++)

#6 | Zitieren |

Bongi C++ ist Offline Bongi C++
Code Reuser


Themenstarter/in
Naja wie gesagt bin noch Neuling . Bin aber jetzt fast bei den Arrays sind nur noch ne paar Zeilen . Aber als ich das geschrieben hab war ich halt noch nicht soweit wollte aber trotzdem ein prog schreiben damit die ganzen befehle usw im gedächtnis hängen bleiben.

Aber jetzt wieder zu dem Probelm mit dem hängen bleiben. Einen konkreten Fehler hast du jetzt auch nich gefunden oder? Wenn da jetzt kein Fehler drin sein sollte kann das auch noch andere Ursachen haben das das einfach hängen bleibt?
 Beiträge: 4 | Punkte: 9 | Wohnort: Deutschland | Registriert seit: 3785 Tagen (May 2008)
 
Neuer Beitrag 17.05.2008, 19:23
 Werbung

AdBot
Mister Ad

Seiten (1): [1]

  

xpBulletin Board » Programmierung » C und C++ - Forum » Selber Geschriebenes Programm bleibt hängen (Dev-C++)

[ Neue Antwort ]


Heute ist der 25.09.2018, 14:50 Uhr

Sämtliche Beiträge geben die Meinung des jeweiligen Verfassers wieder.
Für den Inhalt der Beiträge sind ausschließlich die Autoren verantwortlich.


Powered by: xpBulletin Board Version 2.3.0
Generiert in 0.0334 Sekunden
« Übersicht | @Twitter | @Facebook | Sitemap | Impressum »