<?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[Daten aus einer anderen (Quell)Datei lesen]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cmath&gt;
#include &lt;limits&gt;

using namespace std;

int main()
{
    string name;
    string choice;
    string monname;
    int xmon;
    cout &lt;&lt; &quot;Hallo, dies ist die Welt der XYZ-Mon, wähle deinen Namen!\n&quot;;
    cout &lt;&lt; &quot;Nur Namen ohne Umlaute sind erlaubt.\n&quot;;
    getline (cin,name);
    cout &lt;&lt; &quot;Hallo &quot; &lt;&lt; name &lt;&lt; &quot;!\n&quot;;
    cout &lt;&lt; &quot;Suche dir bitte eins von diesen 3 XYZ-Mon aus!\n&quot;;
    cout &lt;&lt; &quot;Benutze einfach die entsprechende Taste!\n&quot;;
    do
      {
          cout &lt;&lt; &quot;a Basic-Fire-Mon - Greift mit Feuerattacken an!\n&quot;;
          cout &lt;&lt; &quot;b Basic-Water-Mon - Greift mit Wasserattacken an!\n&quot;;
          cout &lt;&lt; &quot;c Basic-Plant-Mon - Greift mit Pflanzenattacken an!\n&quot;;
          cin &gt;&gt; choice;
          if         (choice == &quot;a&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Fire-Mon!\n&quot;;
                         xmon = 1;
               }
               else if (choice == &quot;b&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Water-Mon!\n&quot;;
                         xmon = 2;
               }
               else if (choice == &quot;c&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Plant-Mon!\n&quot;;
                         xmon = 3;
               }
               else
               {
                         cout &lt;&lt; &quot;Bitte benutze die richtige Taste!\n&quot;;
               }

      }
      while(choice != &quot;a&quot; &amp;&amp; choice != &quot;b&quot; &amp;&amp; choice != &quot;c&quot;);
      cin.clear();
                  if (xmon = 1) {
                          monname = &quot;Basic-Fire-Mon&quot;;
                          }
                          if (xmon = 2) {
                          monname = &quot;Basic-Water-Mon&quot;;
                          }
                          if (xmon = 3) {
                          monname = &quot;Basic-Plant-Mon&quot;;
                          }
                  cout &lt;&lt; &quot;Willst du deinem XYZ-Mon noch einen Spitznamen geben?\n&quot;;
                  cout &lt;&lt; &quot;[y] [n]\n&quot;;
                  do{
                       cin &gt;&gt; choice;
                       if (choice ==&quot;y&quot;)
                       {
                                  cout &lt;&lt; &quot;Bitte gebe den Spitznamen ein!\n&quot;;
                                  }
                       else if (choice ==&quot;n&quot;){
                               cout &lt;&lt; &quot;Dein XYZ-Mon heisst somit weiterhin Basic-Fire-Mon!\n&quot;;
                            }
                  }while(choice != &quot;y&quot; &amp;&amp; choice != &quot;n&quot;);
                       if (choice == &quot;y&quot;)
                       {
                                 cin &gt;&gt; monname;
                                 cout &lt;&lt; &quot;Dein Pokemon heisst nun &quot; &lt;&lt; monname &lt;&lt; &quot;!\n&quot;;
                                 }
    getchar();
    getchar();
    return 0;
}
</code></pre>
<p>Also so sieht mein Code bisher aus, nun möchte ich wie in Pokemon einer nicht geringen Anzahl von &quot;Monstern&quot; Stats geben, zum Beispiel Lebenspunkte/Geschwindigkeit etc.</p>
<p>Nun möchte ich aber 1. so eine Art Grundstat-Datei haben und 2. eine Level-Up-Datei die jedes einzelne Viech anders erscheinen lässt.</p>
<p>Natürlich könnte ich aus einer Text-Datei lesen, möchte es gerne aber aus einer Resourcen-Datei(falls dies die richtige Art ist) machen.</p>
<p>Eine andere Lösung wäre vielleicht auch für jedes Viech eine einzelne Datei anzulegen, denn allein schon für ein Viech ist das vielleicht 10 Zeilen an Variablen.</p>
<p>Außerdem soll es möglich sein das selbe Viech mehrmals zu besitzen, und damit die dann nicht komplett gleich sind sollen die Daten Variabel sein.<br />
Muss man hier bei der Speicherung der Eigenschaften noch einen rng dranbauen oder kann man diesen rng auch direkt in der Datendatei einbauen?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/333127/daten-aus-einer-anderen-quell-datei-lesen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 05:34:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/333127.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Jun 2015 21:27:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Fri, 12 Jun 2015 21:29:16 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cmath&gt;
#include &lt;limits&gt;

using namespace std;

int main()
{
    string name;
    string choice;
    string monname;
    int xmon;
    cout &lt;&lt; &quot;Hallo, dies ist die Welt der XYZ-Mon, wähle deinen Namen!\n&quot;;
    cout &lt;&lt; &quot;Nur Namen ohne Umlaute sind erlaubt.\n&quot;;
    getline (cin,name);
    cout &lt;&lt; &quot;Hallo &quot; &lt;&lt; name &lt;&lt; &quot;!\n&quot;;
    cout &lt;&lt; &quot;Suche dir bitte eins von diesen 3 XYZ-Mon aus!\n&quot;;
    cout &lt;&lt; &quot;Benutze einfach die entsprechende Taste!\n&quot;;
    do
      {
          cout &lt;&lt; &quot;a Basic-Fire-Mon - Greift mit Feuerattacken an!\n&quot;;
          cout &lt;&lt; &quot;b Basic-Water-Mon - Greift mit Wasserattacken an!\n&quot;;
          cout &lt;&lt; &quot;c Basic-Plant-Mon - Greift mit Pflanzenattacken an!\n&quot;;
          cin &gt;&gt; choice;
          if         (choice == &quot;a&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Fire-Mon!\n&quot;;
                         xmon = 1;
               }
               else if (choice == &quot;b&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Water-Mon!\n&quot;;
                         xmon = 2;
               }
               else if (choice == &quot;c&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Plant-Mon!\n&quot;;
                         xmon = 3;
               }
               else
               {
                         cout &lt;&lt; &quot;Bitte benutze die richtige Taste!\n&quot;;
               }

      }
      while(choice != &quot;a&quot; &amp;&amp; choice != &quot;b&quot; &amp;&amp; choice != &quot;c&quot;);
      cin.clear();
                  if (xmon = 1) {
                          monname = &quot;Basic-Fire-Mon&quot;;
                          }
                          if (xmon = 2) {
                          monname = &quot;Basic-Water-Mon&quot;;
                          }
                          if (xmon = 3) {
                          monname = &quot;Basic-Plant-Mon&quot;;
                          }
                  cout &lt;&lt; &quot;Willst du deinem XYZ-Mon noch einen Spitznamen geben?\n&quot;;
                  cout &lt;&lt; &quot;[y] [n]\n&quot;;
                  do{
                       cin &gt;&gt; choice;
                       if (choice ==&quot;y&quot;)
                       {
                                  cout &lt;&lt; &quot;Bitte gebe den Spitznamen ein!\n&quot;;
                                  }
                       else if (choice ==&quot;n&quot;){
                               cout &lt;&lt; &quot;Dein XYZ-Mon heisst somit weiterhin Basic-Fire-Mon!\n&quot;;
                            }
                  }while(choice != &quot;y&quot; &amp;&amp; choice != &quot;n&quot;);
                       if (choice == &quot;y&quot;)
                       {
                                 cin &gt;&gt; monname;
                                 cout &lt;&lt; &quot;Dein Pokemon heisst nun &quot; &lt;&lt; monname &lt;&lt; &quot;!\n&quot;;
                                 }
    getchar();
    getchar();
    return 0;
}
</code></pre>
<p>Also so sieht mein Code bisher aus, nun möchte ich wie in Pokemon einer nicht geringen Anzahl von &quot;Monstern&quot; Stats geben, zum Beispiel Lebenspunkte/Geschwindigkeit etc.</p>
<p>Nun möchte ich aber 1. so eine Art Grundstat-Datei haben und 2. eine Level-Up-Datei die jedes einzelne Viech anders erscheinen lässt.</p>
<p>Natürlich könnte ich aus einer Text-Datei lesen, möchte es gerne aber aus einer Resourcen-Datei(falls dies die richtige Art ist) machen.</p>
<p>Eine andere Lösung wäre vielleicht auch für jedes Viech eine einzelne Datei anzulegen, denn allein schon für ein Viech ist das vielleicht 10 Zeilen an Variablen.</p>
<p>Außerdem soll es möglich sein das selbe Viech mehrmals zu besitzen, und damit die dann nicht komplett gleich sind sollen die Daten Variabel sein.<br />
Muss man hier bei der Speicherung der Eigenschaften noch einen rng dranbauen oder kann man diesen rng auch direkt in der Datendatei einbauen?</p>
<p>Danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456601</guid><dc:creator><![CDATA[sinnlos123]]></dc:creator><pubDate>Fri, 12 Jun 2015 21:29:16 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 07:04:51 GMT]]></title><description><![CDATA[<pre><code>if         (choice == &quot;a&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Fire-Mon!\n&quot;;
                         xmon = 1;
               }
               else if (choice == &quot;b&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Water-Mon!\n&quot;;
                         xmon = 2;
               }
               else if (choice == &quot;c&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Plant-Mon!\n&quot;;
                         xmon = 3;
               }
               else
               {
                         cout &lt;&lt; &quot;Bitte benutze die richtige Taste!\n&quot;;
               }
</code></pre>
<p>funktioniert, aber in dem Fall greift man auf die switch-case-Anweisung zurück.</p>
<p>Zu deiner Frage, dass du ein &quot;Viech&quot; mehrmals allerdings mit varibalen Daten benutzen sind, leg dir eine Klasse &quot;Viech&quot; an. Deine verschiedenen Attribute packst du dann am besten noch in Strukturen.</p>
<p>Die Infos würde ich tabellarisch in einer .txt-Datei speichern, sodass du beim auslesen immer genau weißt, wo welches Attribut zu finden ist. Dementsprechend musst du einen eindeutigen &quot;Spaltentrenner&quot; benutzen, z. B. dieses Zeichen: &quot;|&quot;</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456619</guid><dc:creator><![CDATA[Stutzpeter]]></dc:creator><pubDate>Sat, 13 Jun 2015 07:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 07:07:30 GMT]]></title><description><![CDATA[<p>sinnlos123 schrieb:</p>
<blockquote>
<p>Natürlich könnte ich aus einer Text-Datei lesen, möchte es gerne aber aus einer Resourcen-Datei(falls dies die richtige Art ist) machen.</p>
<p>...</p>
<p>Muss man hier bei der Speicherung der Eigenschaften noch einen rng dranbauen oder kann man diesen rng auch direkt in der Datendatei einbauen?</p>
</blockquote>
<p>Was ist denn - Deiner Meinung nach - der Unterschied zwischen einer Text-Datei und einer Resourcen-Datei?<br />
Und was ist ein 'rng'?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456620</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 13 Jun 2015 07:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 07:28:12 GMT]]></title><description><![CDATA[<p>Ich würde jetzt mal wild raten, dass er mit Ressourcendatei meint &quot;In die exe kompiliert&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456623</guid><dc:creator><![CDATA[hardware]]></dc:creator><pubDate>Sat, 13 Jun 2015 07:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 08:24:44 GMT]]></title><description><![CDATA[<p>Stutzpeter schrieb:</p>
<blockquote>
<pre><code>if         (choice == &quot;a&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Fire-Mon!\n&quot;;
                         xmon = 1;
               }
               else if (choice == &quot;b&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Water-Mon!\n&quot;;
                         xmon = 2;
               }
               else if (choice == &quot;c&quot;)
               {
                         cout &lt;&lt; &quot;Gut! Du besitzt nun Basic-Plant-Mon!\n&quot;;
                         xmon = 3;
               }
               else
               {
                         cout &lt;&lt; &quot;Bitte benutze die richtige Taste!\n&quot;;
               }
</code></pre>
<p>funktioniert, aber in dem Fall greift man auf die switch-case-Anweisung zurück.</p>
</blockquote>
<p>Dann aber nicht mit std::string <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/2456626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456626</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 13 Jun 2015 08:24:44 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 09:02:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@belli</a>: rng bedeutet <a href="https://en.wikipedia.org/wiki/Random_number_generation" rel="nofollow">random number generator</a></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/30573">@sinnlos123</a>: um Objekte eindeutig zu machen, greift man auf &quot;Identität&quot; zurück, d.h. man vergibt jedem Objekt einen eineindeutigen Identifier (z.B. ein laufender Zähler oder eine <a href="https://en.wikipedia.org/wiki/Globally_unique_identifier" rel="nofollow">GUID</a>)</p>
<p>Und ob du eine Textdatei oder Ressource benutzt oder sogar die Daten fest im Programm implementierst, ist ja ersteinmal egal - hauptsache du überlegst dir entsprechende Klassen und Strukturen, welche diese Daten dann speichern und bearbeiten können.</p>
<p>Und versuche gleich von Anfang an Ein-/Ausgabe und Spiellogik voneinander zu trennen, dann wird der Code übersichtlicher und besser wartbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456628</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 13 Jun 2015 09:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 15:19:57 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>um Objekte eindeutig zu machen, greift man auf &quot;Identität&quot; zurück, d.h. man vergibt jedem Objekt einen eineindeutigen Identifier (z.B. ein laufender Zähler oder eine <a href="https://en.wikipedia.org/wiki/Globally_unique_identifier" rel="nofollow">GUID</a>)</p>
</blockquote>
<p>Oder man nimmt die Adresse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456651</guid><dc:creator><![CDATA[ZB]]></dc:creator><pubDate>Sat, 13 Jun 2015 15:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sat, 13 Jun 2015 21:12:24 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@belli</a>: also in was für einer Endung ich die Daten speicher dürfte wahrscheinlich egal sein, dennoch möchte ich, dass am Ende die Exe ausreicht um das Programm zu benutzen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18594">@Th69</a>: was wäre denn eine gute Trennung des i/o und der Spiellogik?(nur vom Konzept her mein ich)</p>
<p>Ich habe jetzt nur auf die schnelle das gefunden</p>
<blockquote>
<p>It is important to cleanly separate input/output from (game) logic and from data.<br />
Instead of having Scanners and System.out.println all over the place, put them in a separate package with separate classes and have the data and logic classes only return (method return values) and accept (method parameters) values.<br />
<strong>This way you can easily switch from a text based interface to a graphical interface later on.</strong></p>
</blockquote>
<p>Ist es das warum ich diese Trennung lieber machen sollte oder gibt es noch andere Vorzüge?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456689</guid><dc:creator><![CDATA[sinnlos123]]></dc:creator><pubDate>Sat, 13 Jun 2015 21:12:24 GMT</pubDate></item><item><title><![CDATA[Reply to Daten aus einer anderen (Quell)Datei lesen on Sun, 14 Jun 2015 08:12:35 GMT]]></title><description><![CDATA[<p>Ein anderer Vorzug davon ist, daß du z.B. für deine Spiellogik eine Simulation oder KI sowie Unit-Tests(!) schreiben kannst, ohne daß die Ein- und Ausgabe dabei stören <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>Es ist einfach eines der Grundprinzipien der (objektorientierten) Programmierung: <a href="https://de.wikipedia.org/wiki/Single-Responsibility-Prinzip" rel="nofollow">Single-Responsibility-Prinzip</a> (d.h. Klassen und Funktionen sollten nur jeweils eine Aufgabe übernehmen - also keine Vermischung von Zuständigkeiten).</p>
<p>PS: Weitere Prinzipien finden sich unter dem Begriff <a href="https://de.wikipedia.org/wiki/Prinzipien_objektorientierten_Designs#SOLID-Prinzipien" rel="nofollow">SOLID</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2456696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2456696</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 14 Jun 2015 08:12:35 GMT</pubDate></item></channel></rss>