<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Selber geschriebenes Programm bleibt hängen (Dev-C++)]]></title><description><![CDATA[<p>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 sollte. Diese ist hier zu finden <a href="http://www.siteupload.de/p751016-MeinGame1rar.html" rel="nofollow">http://www.siteupload.de/p751016-MeinGame1rar.html</a></p>
<p>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 öffnen dies dann kompilieren 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.<br />
Dann geht der Kampf los. Nun müsst ihr eure Ap durch Angriffe (welche sind egal) auf 0 reduzieren.</p>
<p>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.<br />
Wisst ihr vielleicht warum?</p>
<p>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++.</p>
<p>Verbesserungsvorschläge jeglicher Art egal wozu nehme ich natürlich gerne dankend an.</p>
<p>Ich hoffe ich konnte das Problem klar darstellen und jetzt hoffe ich auf ein wenig Hilfe von euch .</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213670/selber-geschriebenes-programm-bleibt-hängen-dev-c</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 23:05:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213670.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 May 2008 12:59:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 12:59:36 GMT]]></title><description><![CDATA[<p>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 sollte. Diese ist hier zu finden <a href="http://www.siteupload.de/p751016-MeinGame1rar.html" rel="nofollow">http://www.siteupload.de/p751016-MeinGame1rar.html</a></p>
<p>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 öffnen dies dann kompilieren 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.<br />
Dann geht der Kampf los. Nun müsst ihr eure Ap durch Angriffe (welche sind egal) auf 0 reduzieren.</p>
<p>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.<br />
Wisst ihr vielleicht warum?</p>
<p>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++.</p>
<p>Verbesserungsvorschläge jeglicher Art egal wozu nehme ich natürlich gerne dankend an.</p>
<p>Ich hoffe ich konnte das Problem klar darstellen und jetzt hoffe ich auf ein wenig Hilfe von euch .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513061</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Tue, 20 May 2008 12:59:36 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:02:31 GMT]]></title><description><![CDATA[<p>na jetzt bin ich mal gespannt wieviel hier antworten werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513065</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Tue, 20 May 2008 13:02:31 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:09:10 GMT]]></title><description><![CDATA[<p>Für alle die keine lust haben sie die rar Datei zu laden poste ich hier jetzt mal die komplette funktion in der das Programm hängen bleibt. Die genaue Stelle wo ich denke das es dort hängen bleibt werde ich mal Fett schreiben.</p>
<pre><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 &lt;&lt; &quot;\nWas moechten sie tun?\n&quot;;
                        if(Ap&gt;=6)
                        {
                                 cout &lt;&lt; &quot;[1] Dem naechsten Angriff des Gegners ausweichen (6Ap)\n&quot;;
                                 Moeglichkeiten++;
                        }
                        cout &lt;&lt; &quot;[2] Mit Waffe 1 angreifen (1Ap)\n&quot;;
                        Moeglichkeiten++;
                        if(BWaffe2==1)
                        {
                                    cout &lt;&lt; &quot;[3] Mit Waffe 2 angreifen (1Ap)\n&quot;;
                                    Moeglichkeiten++;
                                    cout &lt;&lt; &quot;[4] Mit beiden Waffen angreifen (2Ap)\n&quot;;
                                    Moeglichkeiten++;
                        }
                        if(Runde &gt;=3)
                        {
                                 cout &lt;&lt; &quot;[5] Heilen (6AP)\n&quot;;
                                 Moeglichkeiten++;
                        }
                        cin &gt;&gt; Auswahl;
                        switch(Auswahl)
                        {
                                       case 1 : if(Ap&gt;=6)
                                                {
                                                    Ausweichen=1;
                                                    Ap=0;
                                                    cout &lt;&lt; &quot;Du wirst dem naechsten Angriff des Gegners ausweichen.\n&quot;;
                                                    Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                    cout &lt;&lt; &quot;Du hast zu wenig Ap um Auszuweichen. Deshalb wirst du mit Waffe 1 angreifen.\n&quot;;
                                                    GLeben=GLeben-BSchadenWaffe1;
                                                    Ap--;
                                                    cout &lt;&lt; &quot;Du hast dem Gegner &quot; &lt;&lt; BSchadenWaffe1 &lt;&lt; &quot; abgezogen.\n&quot;;
                                                    Moeglichkeiten=0;
                                                }
                                       break;
                                       case 2 : if(GAusweichen==0)
                                                {
                                                      GLeben=GLeben-BSchadenWaffe1;
                                                      Ap--;
                                                      cout &lt;&lt; &quot;Du hast dem Gegner &quot; &lt;&lt; BSchadenWaffe1 &lt;&lt; &quot; abgezogen.\n&quot;;
                                                      Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                    Ap--;
                                                    cout &lt;&lt; &quot;Der Gegner ist deinem Angriff ausgewichen.&quot;;
                                                    Moeglichkeiten=0;
                                                }
                                       break;
                                       case 3 : if(GAusweichen==0)
                                                {
                                                      GLeben=GLeben-BSchadenWaffe2;
                                                      Ap--;
                                                      cout &lt;&lt; &quot;Du hast dem Gegner &quot; &lt;&lt; SchadenWaffe2 &lt;&lt; &quot; abgezogen.\n&quot;;
                                                      Moeglichkeiten=0;
                                                }
                                                else 
                                                {
                                                     Ap--;
                                                     cout &lt;&lt; &quot;Der Gegner ist deinem Angriff ausgewichen.&quot;;
                                                     Moeglichkeiten=0;
                                                }
                                       break;
                                       case 4 : if(GAusweichen==0)
                                                {
                                                      GLeben=GLeben-BSchadenGesamt;
                                                      Ap=Ap-2;
                                                      cout &lt;&lt; &quot;Du hast dem Gegner &quot; &lt;&lt; BSchadenGesamt &lt;&lt; &quot; abgezogen.\n&quot;;
                                                      Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                    Ap=Ap-2;
                                                    cout &lt;&lt; &quot;Der Gegner ist deinem Angriff ausgewichen.&quot;;
                                                    Moeglichkeiten=0;
                                                }
                                       break;
                                       case 5 : if(Runde &gt;=3)
                                                {
                                                      Leben=Leben+Heilen;
                                                      Ap=0;
                                                      cout &lt;&lt; &quot;Du haste &quot; &lt;&lt; Heilen &lt;&lt; &quot; deiner Lebenspunkte geheilt.\n&quot;;
                                                      Runde=0;
                                                      Moeglichkeiten=0;
                                                }
                                                else
                                                {
                                                      cout &lt;&lt; &quot;Du kannst dich momentan noch nicht (wieder) heilen.\n&quot;
                                                           &lt;&lt; &quot;Weil du die falsche Zahl eingegeben hast wirst du jetzt\n&quot;
                                                           &lt;&lt; &quot;mit Waffe 1 angreifen\n&quot;;
                                                      if(GAusweichen==0)
                                                      {
                                                               GLeben=GLeben-BSchadenWaffe1;
                                                               Ap--;
                                                               cout &lt;&lt; &quot;Du hast dem Gegner &quot; &lt;&lt; BSchadenWaffe1 &lt;&lt; &quot; abgezogen.\n&quot;;
                                                               Moeglichkeiten=0;
                                                      }
                                                      else
                                                      {
                                                               Ap--;
                                                               cout &lt;&lt; &quot;Der Gegner ist deinem Angriff ausgewichen.&quot;;
                                                               Moeglichkeiten=0;
                                                      }
                                                }
                                       break;
                                       default : cout &lt;&lt; &quot;Du hast eine falsche Zahl eingegeben. Es gibt nur &quot; &lt;&lt; Moeglichkeiten &lt;&lt; '\n'  
                                                      &lt;&lt; &quot;Deshalb wirst du mit Waffe 1 angreifen.\n&quot;;
                                                 if(GAusweichen==0)
                                                 {
                                                 GLeben=GLeben-BSchadenWaffe1;
                                                 Ap--;
                                                 cout &lt;&lt; &quot;Du hast dem Gegner &quot; &lt;&lt; BSchadenWaffe1 &lt;&lt; &quot; abgezogen.\n&quot;;
                                                 Moeglichkeiten=0;
                                                 }
                                                 else
                                                 {
                                                     Ap--;
                                                     cout &lt;&lt; &quot;Der Gegner ist deinem Angriff ausgewichen.\n&quot;;
                                                     Moeglichkeiten=0;
                                                 }
                                       break;
                        }
               }
     GAusweichen=0;
     Ap=Apvoll;
     if(GLeben &lt;=0)
     {
                cout &lt;&lt; &quot;___________________________________________________\n&quot;
                     &lt;&lt; &quot;Der Sieg ist dein!!\n&quot;
                     &lt;&lt; &quot;___________________________________________________\n&quot;;
                GLebt=0;
                break;
     }
     cout &lt;&lt; &quot;\nDer Gegner:\n&quot;;
     [b]while(GAp!=0)
     {
                 if(Runde2 &gt;=3 &amp;&amp; GLeben&lt;=100)
                 {
                           GLeben=GLeben+GHeilen;
                           GAp=0;
                           cout &lt;&lt; &quot;Der Gegner hat &quot; &lt;&lt; GHeilen &lt;&lt; &quot; seiner Lebenspunkte geheilt.\n&quot;;
                 }
                 if(GWaffe2==1 &amp;&amp; Ausweichen==0)
                 {
                               Leben=Leben-BGSchadenGesamt;
                               GAp=GAp-2;
                               cout &lt;&lt; &quot;Der Gegner greift mit beiden Waffen an und zieht dir &quot; &lt;&lt; BGSchadenGesamt &lt;&lt; &quot; ab.\n&quot;;
                 }
                 if(GWaffe2==1 &amp;&amp; Ausweichen==1)
                 {
                     GAp=GAp-2;
                     cout &lt;&lt; &quot;Du bist dem Angriff des Gegners ausgewichen.\n&quot;;
                 }
                 if(GSchild==1 &amp;&amp; Ausweichen==0)
                 {
                               Leben=Leben-BGSchadenWaffe1;
                               GAp--;
                               cout &lt;&lt; &quot;Der Gegner greift mit Waffe 1 an und zieht dir &quot; &lt;&lt; BGSchadenWaffe1 &lt;&lt; &quot; ab.\n&quot;;
                 }
                 if(GWaffe2=0 &amp;&amp; Ausweichen==1)
                 {
                     GAp--;
                     cout &lt;&lt; &quot;Du bist dem Angriff des Gegners ausgewichen.\n&quot;;
                 }
     }[/b]
     cout &lt;&lt; &quot;\nSie haben noch &quot; &lt;&lt; Leben &lt;&lt; &quot; Lebenspunkte.\n&quot;
          &lt;&lt; &quot;Ihr Gegner hat noch &quot; &lt;&lt; GLeben &lt;&lt; &quot; Lebenspunkte.\n&quot;;
     GAp=Apvoll;
     Ausweichen=0;
     if(Leben &lt;=0)
     {
                cout &lt;&lt; &quot;___________________________________________________\n&quot;
                     &lt;&lt; &quot;Der Gegner hat dich bezwungen. Schande ueber dich!!\n&quot;
                     &lt;&lt; &quot;___________________________________________________\n&quot;;
                Lebt=0;
                break;
     }                           
     }                                            
}
</code></pre>
<p>Danke schon mal im vorraus für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513066</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Tue, 20 May 2008 13:09:10 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:09:41 GMT]]></title><description><![CDATA[<p>zeile 8 ist der fehler:</p>
<pre><code class="language-cpp">for(;Lebt == 1 || GLeben == 1
</code></pre>
<p>das kann nicht gehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513068</guid><dc:creator><![CDATA[Machine]]></dc:creator><pubDate>Tue, 20 May 2008 13:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:15:18 GMT]]></title><description><![CDATA[<p>edit: war doch schwachsinn<br />
/me carries away</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513072</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Tue, 20 May 2008 13:15:18 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:13:21 GMT]]></title><description><![CDATA[<p>schon korigiert hat er beim kopieren nicht übernommen. Im Programm stehts aber so wies jetzt da steht.</p>
<p>Das das geht wusste ich nicht wie gesagt hat er beim kopieren irgendwie nicht übernommen ^^ warum auch immer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513073</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Tue, 20 May 2008 13:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:16:32 GMT]]></title><description><![CDATA[<p>Nur beim kurzen drüberschauen:</p>
<p>a) Das void in den Klammern ist unter C++ unnötig (&quot;void Kampf(void)&quot; =&gt; &quot;void Kampf()&quot;)<br />
b) Die Variablen sind teilweise [ironie]gut verständlich[/ironie] gewählt.<br />
c) Schleifeneinrückungen sollten sinnvoll gewählt sein, teilweise fehlt bei dir die Einrückung.<br />
d) Lieber einzelne Bereiche als eigene Funktion auslagern, anstatt Funktionen zu riesig werden zu lassen.<br />
e) Ich hoffe du hast deinen Code nicht innerhalb des Kopfes einer for-Schleife geschrieben? &quot;for(;Lebt == 1 || GLeben == 1&quot; ist unvollständig...</p>
<p>Um es kurz zu machen: Dein Programm ist nicht sinnvoll zu lesen. Daher werde ich auch garnicht erst versuchen den Fehler zu suchen (Der Aufwand wäre zu groß).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513078</guid><dc:creator><![CDATA[asc@ausgeloggt]]></dc:creator><pubDate>Tue, 20 May 2008 13:16:32 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:17:10 GMT]]></title><description><![CDATA[<p>Kristallkugel auspack...</p>
<p>Ich denke mal, der Fehler liegt hier:</p>
<pre><code class="language-cpp">while(GAp!=0)
{
//bla...
}
</code></pre>
<p>GAp wurde nirgends initialisiert, soweit ich das überblicke.<br />
Und wenn, dann bleibt er spätestens hängen, sobald er in die Schleife geht und eine Deiner if-Bedingungen erfüllt wird. Dann ist GAp immer 0-Wert und somit immer != 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513079</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 20 May 2008 13:17:10 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:28:59 GMT]]></title><description><![CDATA[<p>a) Ich hab in dem tutorial was ich benutze gelernt das es besserer Programmierstyl ist wenn man es dazu schreibt, wenn dem nicht so ist kann ich da ja auch nichts zu ,da ich es ja nicht besser weis.<br />
b)Das kann gut sein wie gesagt bin noch anfänger und das ist mein erstes eigentliches projekt.<br />
c)Kann auch gut sein. Habs aber wenigstens versucht ^^<br />
d)Danke für den Tipp ich werds mir merken und es beim nächsten mal anders machen.<br />
e)Ich habe den code inerhalb der for schleife aufgebaut da dieser ja solange wiederholt werden soll bis einer von beiden tot ist. Den Fehler in Zeile acht habe ich schon behoben ist wie schon gesagt beim kopieren nicht übernommen worden.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4465">@Tachyon</a> GAp hab ich als Globale Variable schon vor der Main funktion deklariert. Und in der 2 Funktion wird GAp=6</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513090</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Tue, 20 May 2008 13:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:38:02 GMT]]></title><description><![CDATA[<p>Bongi schrieb:</p>
<blockquote>
<p>Und in der 2 Funktion wird GAp=6</p>
</blockquote>
<p>Jo, dann ist GAp != 0. Dann gehts in die while-Schleife rein. Jetzt kann es sein, dass keine Deiner if-Bedingungen true wird. Dann wird GAp immer 6 bleiben, Du siehst keine Ausgaben, und die Schleife rennt -&gt; Das Programm hängt.</p>
<pre><code class="language-cpp">while(GAp != 0)
{
    cout &lt;&lt; &quot;Die Schleife brummt...\n&quot;;
    if(...
}
</code></pre>
<p>Wenn der Text dann ständig ausgegeben wird, solltest Du mal über die Erzeugung Deiner Abbruchbedingung nachdenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513098</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 20 May 2008 13:38:02 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:48:28 GMT]]></title><description><![CDATA[<p>Edit: Genau dort lag mein Problem ich hatte eine falsche Bedingung gesetzt und somit ist keine der angegebenen if Befehle true gewesen.</p>
<p>Danke Tachyon und natürlich auch den anderen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513102</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Tue, 20 May 2008 13:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 13:55:19 GMT]]></title><description><![CDATA[<p>Also:</p>
<p>1. Globale Variablen solltest du immer vermeiden wenn es möglich ist. Funktionen besitzen nicht ohne Grund eine Parameterliste, über die man die &quot;Eingangsgrößen&quot; übergeben kann.</p>
<p>2. Beim zweiten kurzen drüberschauen: ich nehme mal an das der Realschaden mindestens 0 sein sollte, oder?</p>
<pre><code class="language-cpp">int BGSchadenWaffe1=GSchadenWaffe1-Verteidigung;

// Ich schätze mal das folgendes besser ist (auch andere Benennung gewählt):
int realSchadenWaffe1 = gesamtschadenWaffe1 - verteidigung;
if(realSchadenWaffe1&lt;0)
  realSchadenWaffe1 = 0;
// oder:
int realSchadenWaffe1 = (gesamtschadenWaffe1 &lt; verteidigung) ?
  0 : (gesamtschadenWaffe1 - verteidigung);
</code></pre>
<p>Wenn ich mit meinen Superduper-Zweihändigen-Zahnstocher-Mit-Parierstange einen Panzer angreife, werde ich ihn wohl dennoch nicht heilen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>3. Ich würde dir raten, das du dir gleich einen einheitlichen Schreibstil zum Unterscheiden von Variablen oder Funktionen/Methoden angewöhnst. Benennungen sollten zumindest so ausführlich sein, das sie bereits etwas über die Verwendung aussagen (&quot;GAp&quot; sagt nichts aus).</p>
<p>Eine mögliche Variante (es gibt viele, finde deinen Stil):<br />
a) Variablennamen klein beginnen (isNew, roundNumber, count...)<br />
b) Methoden/Klassen/Stukturen groß beginnen (DeleteAddress, Address, Appointment...)<br />
c) Makros komplett groß (ONE_INCLUDEGUARD...)</p>
<p>Eine Möglichkeit Funktionen/Methoden in dieser Variante von Klassen/Strukturen zu unterscheiden ist es, Klassen/Strukturen mit Nomen zu benennen (&quot;Address&quot;), Funktionen/Methoden aber zusätzlich immer um Verben zu ergänzen (bzw. wenn es reicht nur das Verb zu benutzen; Beispiel &quot;DeleteAddress&quot; als Funktionsname oder &quot;Address::Delete&quot; als Bennennung einer Methode...).</p>
<p>4. Über die Qualität von Tutorials lasse ich mich hier lieber nicht aus, achte aber dabei das dein Tutorial zumindest etwas aktuell ist (z.B. &quot;#include &lt;iostream&gt;&quot; statt &quot;#include &lt;iostream.h&gt;&quot;, Verwendung von std::string statt char[]/char*...).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513115</guid><dc:creator><![CDATA[asc@ausgeloggt]]></dc:creator><pubDate>Tue, 20 May 2008 13:55:19 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 18:24:41 GMT]]></title><description><![CDATA[<p>Also ich fasse mal zusammen.<br />
-Globale Variablen vermeiden lieber lokale verwenden.<br />
-Die Namen der Variablen ausführlicher schreiben. Und alle möglichen Situationen berücksichtigen. Also vorrausschauend Programmieren (wenn ich das jetzt richtig verstandnen habe ^^).<br />
-Einheitlichen Schreibstil angewöhnen aus der man sofort Erkennen kann ob es eine Variable usw. ist. Dazu habe ich aber noch eine Frage. Sollte man dann am Anfang des Codes einen Kommentar erstellen damit sofort ersichtlich wird welche Schreibweise für Variablen usw. sind?<br />
-Darauf achten das das Tutorial das benutzt wird nicht zu alt ist. Hierzu habe ich auch noch eine Frage. Wie alt dürfe so ein Tutorial den sein damit es noch aktuell ist? Die Sache mit #include &lt;iostream&gt; ist in meinem Tutorial schon und das mit den String weis ich noch nicht. So weit bin ich noch nicht. Das Tutorial ist von Ende 2003 ist das zu alt oder geht das noch?</p>
<p>Stimmt das soweit?</p>
<p>Dann bedanke ich mich jetzt noch ein mal recht herzlich bei dir André. Ich werde mir diese Dinge zu Herzen nehmen. Und so wie es aussieht werde ich demnächst wohl auch nicht mehr ganz so viel schreiben müssen. Bin nämlich grad bei den Arrays ^^</p>
<p>Ah da fällt mir noch ein. Die Sache mit den Funktionen von einem Zeiger habe ich jetzt zwar verstanden aber ich verstehe nich ganz warum man das mit den Zeigern macht. Wenn mir das noch einer erklären könnte wäre ich sehr froh.</p>
<p>Oh man der Text wird wieder lang ^^ Naja ich wollte auch noch schnell loswerden das ich dieses Forum einfach nur Klasse finde. Mir wurde inerhalb weniger Minuten geholfen was in einem anderem Forum keiner geschafft hat. Dort wurde nur meine schlechte arbeit bemängelt meine eigentliche Frage aber nicht beantwortet. Natürlich nehme ich Kritik dankend an, dann sollte aber auch dabei geschrieben werden was schlecht ist oder was ich besser machen kann und der Ton sollte natürlich auch angemessen sein.</p>
<p>Also <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> für das Forum und alle die hier Neulingen und auch Erfahrenen Programmierern helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513270</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Tue, 20 May 2008 18:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 19:49:45 GMT]]></title><description><![CDATA[<p>Bongi schrieb:</p>
<blockquote>
<p>Ah da fällt mir noch ein. Die Sache mit den Funktionen von einem Zeiger habe ich jetzt zwar verstanden aber ich verstehe nich ganz warum man das mit den Zeigern macht. Wenn mir das noch einer erklären könnte wäre ich sehr froh.</p>
</blockquote>
<p>Ich bin mir zwar nicht ganz sicher, was du meinst, aber ich vermute, die allgemeine Übergabe von Variabeln an Funktionen per Zeiger.</p>
<p>Die Übergabe als Zeiger oder Referenz hat den Vorteil, dass eine Variable von der Funktion verändert werden kann, was mit einer Wertübergabe nicht möglich ist. Das kann oft praktisch sein, wie z.B. in folgendem Beispiel (Zeiger haben jedoch noch einige weitere Anwendungsbereiche):</p>
<pre><code class="language-cpp">// Funktion mit Wertübergabe; verändert Parameter nicht, gibt neuen Wert zurück
int NaechsteZahl(int a) 
{
   return a + 1;
}

// Funktion mit Übergabe als Referenz, erhöht a um 1
void ErhoeheZahl(int &amp;a)
{
   a = a + 1;   // oder a++;
}

// Funktion mit Übergabe als Zeiger, erhöht a um 1
void ErhoeheZahl2(int *a)
{
   *a = *a + 1;   // oder (*a)++;
}

// In main() würde es etwa folgendermassen aussehen:
int main()
{
   int x = 4;
   int y = NaechsteZahl(x); // y ist 5, x aber immer noch 4
   ErhoeheZahl(x); // x wird erhöht, ist nun auch 5
   ErhoeheZahl2(&amp;y); // y wird erhöht, ist nun 6
}
</code></pre>
<p>Bei Zeigern übergibst du normalerweise die Adresse der Variable an die Funktion (wird durch das <code>&amp;</code> bei <code>ErhoeheZahl2(&amp;y);</code> . Die Funktion selber dereferenziert den Zeiger dann mit <code>*</code> ( <code>*a = *a + 1</code> ), das heisst, es wird auf den Wert der übergebenen Speicheradresse zugegriffen. Referenzen sind dadurch etwas einfacher, und besonders am Anfang eher zu empfehlen. Du musst lediglich ein &amp; vor den Parameter schreiben, damit er als Referenz übergeben wird - doch Vorsicht: hier bedeutet <code>&amp;</code> nicht Adressübergabe, sondern Übergabe als Referenz.</p>
<p>Bongi schrieb:</p>
<blockquote>
<p>-Einheitlichen Schreibstil angewöhnen aus der man sofort Erkennen kann ob es eine Variable usw. ist. Dazu habe ich aber noch eine Frage. Sollte man dann am Anfang des Codes einen Kommentar erstellen damit sofort ersichtlich wird welche Schreibweise für Variablen usw. sind?</p>
</blockquote>
<p>Das ist eigentlich dir überlassen. Wenn du immer weisst, was gemeint ist, kannst du es auch lassen, aber eine oder zwei Zeilen Kommentar am Anfang können eigentlich nicht schaden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Bongi schrieb:</p>
<blockquote>
<p>-Darauf achten das das Tutorial das benutzt wird nicht zu alt ist. Hierzu habe ich auch noch eine Frage. Wie alt dürfe so ein Tutorial den sein damit es noch aktuell ist? Die Sache mit #include &lt;iostream&gt; ist in meinem Tutorial schon und das mit den String weis ich noch nicht. So weit bin ich noch nicht. Das Tutorial ist von Ende 2003 ist das zu alt oder geht das noch?</p>
</blockquote>
<p>Grundsätzlich sollte das Tutorial nicht veraltet sein. Bei Tutorials ist es jedoch oft so, dass C mit C++ vermischt wird und mit unsauberem oder falschem Code (z.B. <code>void main()</code> ) gearbeitet wird. Im Internet findet man sehr viel Schrott, eventuell solltest du dir auch ein Buch überlegen.</p>
<p>Ich hoffe, ich konnte einigermassen helfen, ansonsten fragst du einfach <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513324</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 20 May 2008 19:49:45 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Tue, 20 May 2008 20:52:58 GMT]]></title><description><![CDATA[<p>Bongi schrieb:</p>
<blockquote>
<p>...Und so wie es aussieht werde ich demnächst wohl auch nicht mehr ganz so viel schreiben müssen. Bin nämlich grad bei den Arrays ^^</p>
<p>Ah da fällt mir noch ein. Die Sache mit den Funktionen von einem Zeiger habe ich jetzt zwar verstanden aber ich verstehe nich ganz warum man das mit den Zeigern macht. Wenn mir das noch einer erklären könnte wäre ich sehr froh.</p>
</blockquote>
<p>Das Deutet eher auf ein C den ein C++ Tutorial hin. Arrays kann man zwar durchnehmen, ich würde aber erst std::vector ansprechen - Dies ist aber Geschmackssache. Zeiger wiederum haben meines Erachtens zwar in ein C++ Tutorial zu tun, Bei Funktionsübergaben sollten aber Referenzen zuerst angesprochen werden! Zudem würde ich grundsätzlich versuchen Zeiger nicht zu früh zu erklären...</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513388</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 20 May 2008 20:52:58 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Wed, 21 May 2008 11:23:24 GMT]]></title><description><![CDATA[<p>asc@ausgeloggt schrieb:</p>
<blockquote>
<p>...void Kampf...</p>
</blockquote>
<p>Hmmmm das kommt mir doch bekannt vor ....<br />
&quot;Die Schildkröte liegt auf dem Rücken, Leon, doch sie helfen nicht ! Warum helfen sie nicht ??&quot;<br />
...<br />
&quot;Meine Mutter ? Ich erzähl Ihnen mal was von meiner Mutter !&quot; *BÄNG*</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513472</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 21 May 2008 11:23:24 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Wed, 21 May 2008 11:33:35 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>asc@ausgeloggt schrieb:</p>
<blockquote>
<p>...void Kampf...</p>
</blockquote>
<p>Hmmmm das kommt mir doch bekannt vor ....<br />
&quot;Die Schildkröte liegt auf dem Rücken, Leon, doch sie helfen nicht ! Warum helfen sie nicht ??&quot;<br />
...<br />
&quot;Meine Mutter ? Ich erzähl Ihnen mal was von meiner Mutter !&quot; *BÄNG*</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
</blockquote>
<p>Pff, Banause. Das heisst Voigt Kampff...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513478</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 21 May 2008 11:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to Selber geschriebenes Programm bleibt hängen (Dev-C++) on Wed, 21 May 2008 12:20:53 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Die Übergabe als Zeiger oder Referenz hat den Vorteil, dass eine Variable von der Funktion verändert werden kann, was mit einer Wertübergabe nicht möglich ist. Das kann oft praktisch sein, wie z.B. in folgendem Beispiel (Zeiger haben jedoch noch einige weitere Anwendungsbereiche):</p>
</blockquote>
<p>Genau das wollte ich wissen ^^ Dankeschön</p>
<p>Das mit dem Buch werde ich mir noch mal überlegen aber will erst einmal das Tutorial durcharbeiten.</p>
<p>Aber noch einmal ein kräftiges Dankeschön an alle die mir meine Fragen beantwortet haben und sich ein bisschen um einen Neuling wie mich kümmern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1513515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1513515</guid><dc:creator><![CDATA[Bongi]]></dc:creator><pubDate>Wed, 21 May 2008 12:20:53 GMT</pubDate></item></channel></rss>