<?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[Fragen zu crlscr() und srand()]]></title><description><![CDATA[<p>Hallo, ich schreibe grade an einem kleinen Textspiel, mehr eine Programmierübung als dass es wirklich ein Spiel werden soll. Es besteht aus Storyteilen und rundenweisem Kampf.</p>
<p>Erstes Problem:<br />
Damit sich der Spieler zwischen den Kämpfen besser auf die Handlung konzentrieren kann, möchte ich alles,was während das Kampfes ausgegeben wurde vom Bildschirm löschen. Es stört dann einfach, wenn man hundertmal auf dem Bildschirm sehen kann, wieviel Gesundheit man in irgendeiner Kampfrunde hatte. Ich bräuchte also eine Funktion wie clrscr(), nur sollte sie nur einen bestimmten Bereich des Schirms löschen. Wie könnte sowas aussehen?</p>
<p>Zweites Problem:<br />
Ich verwende, um den Schaden auszuwürfeln eine Funktion wie:</p>
<pre><code class="language-cpp">int damageBoss()
{
    srand((unsigned) time(NULL)) ;
    int gegenSchaden = 0;
    if((rand() % 100) &lt;= 60)//würfelt ob man überhaupt trifft
        {
            gegenSchaden = 8 + (rand() % 25);//würfelt den Schaden (hier 8-32)
            if(gegenSchaden &gt;= 8 &amp;&amp; (rand() % 100) &lt;= 5) //kritische Treffer
            {gegenSchaden = gegenSchaden * 2;}
        }
    return gegenSchaden;
}
</code></pre>
<p>Hin und wieder kommt es allerdings vor, dass die Funktion 5-10 Mal nacheinander immer Null zurückgibt, obwohl sich in der Zwischenzeit die Rückgabe von time(NULL) geändert haben müsste. Dass die Funktion nur einmal Null zurückgibt kommt dagegen sehr selten vor, das erscheint mir seltsam und es stört den Spielfluss, weil bis zu 10 Kampfrunden lang nichts passiert. Was ist hier los?</p>
<p>3. Frage:<br />
Ich würde gern eine Speichermöglichkeit einbauen, mir fällt aber keine Möglichkeit ein, wie man das machen könnte. Hat jemand eine Idee?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/156884/fragen-zu-crlscr-und-srand</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 00:50:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/156884.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Aug 2006 08:04:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 08:04:27 GMT]]></title><description><![CDATA[<p>Hallo, ich schreibe grade an einem kleinen Textspiel, mehr eine Programmierübung als dass es wirklich ein Spiel werden soll. Es besteht aus Storyteilen und rundenweisem Kampf.</p>
<p>Erstes Problem:<br />
Damit sich der Spieler zwischen den Kämpfen besser auf die Handlung konzentrieren kann, möchte ich alles,was während das Kampfes ausgegeben wurde vom Bildschirm löschen. Es stört dann einfach, wenn man hundertmal auf dem Bildschirm sehen kann, wieviel Gesundheit man in irgendeiner Kampfrunde hatte. Ich bräuchte also eine Funktion wie clrscr(), nur sollte sie nur einen bestimmten Bereich des Schirms löschen. Wie könnte sowas aussehen?</p>
<p>Zweites Problem:<br />
Ich verwende, um den Schaden auszuwürfeln eine Funktion wie:</p>
<pre><code class="language-cpp">int damageBoss()
{
    srand((unsigned) time(NULL)) ;
    int gegenSchaden = 0;
    if((rand() % 100) &lt;= 60)//würfelt ob man überhaupt trifft
        {
            gegenSchaden = 8 + (rand() % 25);//würfelt den Schaden (hier 8-32)
            if(gegenSchaden &gt;= 8 &amp;&amp; (rand() % 100) &lt;= 5) //kritische Treffer
            {gegenSchaden = gegenSchaden * 2;}
        }
    return gegenSchaden;
}
</code></pre>
<p>Hin und wieder kommt es allerdings vor, dass die Funktion 5-10 Mal nacheinander immer Null zurückgibt, obwohl sich in der Zwischenzeit die Rückgabe von time(NULL) geändert haben müsste. Dass die Funktion nur einmal Null zurückgibt kommt dagegen sehr selten vor, das erscheint mir seltsam und es stört den Spielfluss, weil bis zu 10 Kampfrunden lang nichts passiert. Was ist hier los?</p>
<p>3. Frage:<br />
Ich würde gern eine Speichermöglichkeit einbauen, mir fällt aber keine Möglichkeit ein, wie man das machen könnte. Hat jemand eine Idee?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121259</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:04:27 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 08:06:04 GMT]]></title><description><![CDATA[<p>Oh, ich seh grade, falsches Forum...bitte verschieben. Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121260</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 08:36:04 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=10455" rel="nofollow">evilissimo</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121294</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 08:41:56 GMT]]></title><description><![CDATA[<p>Zu 2.<br />
Einen Zufallsgenerator initialisiert man <strong>genau ein mal</strong> und nicht öfter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121296</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 21 Aug 2006 08:41:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 14:00:07 GMT]]></title><description><![CDATA[<p>Zu 1.: Du kannst den Bildschirm nur komplett löschen. Du musst dann das Bild immer komplett neuaufbauen. D.h alles, was du beibehalten willst, musst du im Speicher ablegen und neu schreiben.</p>
<p>3.: Einfachste möglichkeit wäre alles in eine Datei zu schreiben mit einer festgelegtn Form. Ich weiß nicht, wie deine Daten aussehen, aber eine Möglichkeit wäre diese mit Kommata zu trennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121579</guid><dc:creator><![CDATA[viande@work]]></dc:creator><pubDate>Mon, 21 Aug 2006 14:00:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 14:12:45 GMT]]></title><description><![CDATA[<p>Das Zufallsgenerator-Problem ist gelöst, ich initialisiere den Zufallsgenerator jetzt schon in der main().<br />
Das mit dem Speichern des Textes der erhalten bleiben soll, ist eine gute Idee, darauf bin ich noch nicht gekommen.<br />
Und dass ich die Daten mit Kommata getrennt in eine txt-Datei schreibe, soweit war ich auch schon. Das Programm muss also eine txt-Datei erstellen, beschreiben, auslesen und löschen können. Ich denke, das müsste doch alles mit iostream machbar sein, ich weiß nur nicht wie. Ich wäre dankbar für Codebeispiele.</p>
<p>Tetrapak</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121586</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Mon, 21 Aug 2006 14:12:45 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Mon, 21 Aug 2006 14:28:40 GMT]]></title><description><![CDATA[<p>Schau mal in den FAQ, da gibt es einen schönen Beitrag von Hume:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39469.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121600</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Mon, 21 Aug 2006 14:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Wed, 23 Aug 2006 13:42:00 GMT]]></title><description><![CDATA[<p>Hallo ich habe erneut ein Problem mit clrscr(). Ich habe mein Spiel nun so aufgebaut, dass immer der ganze Bildschirm gelöscht wird und danach das was nötig its, wiederaufgebaut wird. Dafür habe ich #include&lt;conio.h&gt; in den Header geschrieben. Eine bessere Methode konnte ich nicht finden. Wenn ich nun aber im Programm clrscr(); schreibe, meldet Dev-Cpp: &quot;[Linker Error] undefined reference to 'clrscr'&quot;. Was ist hier los?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122884</guid><dc:creator><![CDATA[Tetrapak]]></dc:creator><pubDate>Wed, 23 Aug 2006 13:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Fragen zu crlscr() und srand() on Wed, 23 Aug 2006 14:28:26 GMT]]></title><description><![CDATA[<p>Wie wär's mit der <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> <a href="http://ic.sidewindershome.net/" rel="nofollow">Improved Console</a> von SideWinder? Damit wärst du wenigstens auf Windows compilermäßig Portabel.</p>
<p>Greetz, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122911</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 23 Aug 2006 14:28:26 GMT</pubDate></item></channel></rss>