<?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[Sudoku erstellen]]></title><description><![CDATA[<p>Hallo Leute!<br />
Ich versuche ein Programm zu schreiben, welches Sudokus erstellt.<br />
Nur jetzt, obwohl ich noch ganz am Anfang bin, habe ich schon 2 Probleme:<br />
1.)Die random Funktion generiert immer die exakt gleichen Zahlen<br />
2.)Irgendwas funktioniert nicht, dass immer verschiedene Zahlen in einer Spalte stehen.<br />
Also bitte Helft mir!<br />
Hier ist der Code:</p>
<pre><code class="language-cpp">static int feld[9][9];
  for(int zeile=0; zeile&lt;9; zeile++)
  {
    for(int spalte=0; spalte&lt;9; spalte++)
    {
      feld[zeile][spalte] = rand()%9+1;
      for(int i=spalte-1; i&gt;=0; i--)
      {
        while(feld[zeile][i]==feld[zeile][spalte])
        {
          feld[zeile][spalte] = rand()%9+1;
        }
      }
    }
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/182990/sudoku-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 01:58:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182990.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 May 2007 11:38:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sudoku erstellen on Thu, 31 May 2007 11:40:41 GMT]]></title><description><![CDATA[<p>Hallo Leute!<br />
Ich versuche ein Programm zu schreiben, welches Sudokus erstellt.<br />
Nur jetzt, obwohl ich noch ganz am Anfang bin, habe ich schon 2 Probleme:<br />
1.)Die random Funktion generiert immer die exakt gleichen Zahlen<br />
2.)Irgendwas funktioniert nicht, dass immer verschiedene Zahlen in einer Spalte stehen.<br />
Also bitte Helft mir!<br />
Hier ist der Code:</p>
<pre><code class="language-cpp">static int feld[9][9];
  for(int zeile=0; zeile&lt;9; zeile++)
  {
    for(int spalte=0; spalte&lt;9; spalte++)
    {
      feld[zeile][spalte] = rand()%9+1;
      for(int i=spalte-1; i&gt;=0; i--)
      {
        while(feld[zeile][i]==feld[zeile][spalte])
        {
          feld[zeile][spalte] = rand()%9+1;
        }
      }
    }
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1295847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295847</guid><dc:creator><![CDATA[Dr_Gregor]]></dc:creator><pubDate>Thu, 31 May 2007 11:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to Sudoku erstellen on Thu, 31 May 2007 11:42:34 GMT]]></title><description><![CDATA[<p>1.) Vermutlich musst Du den Randomnumbergenerator erstmal initialisieren. Das tut man (einmal!) mit srand(seed), für möglichst zufällige Werte mit srand(time(0))<br />
2.) &lt;Hotline&gt;Tut mir leid, ich habe Ihre Anfrage nicht verstanden. Bitte probieren Sie es nochmal.&lt;/Hotline&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295851</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 31 May 2007 11:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to Sudoku erstellen on Thu, 31 May 2007 11:55:06 GMT]]></title><description><![CDATA[<p>zu 2.: die while Schleife funktioniert bei mir nicht. Geht sie bei dir?<br />
Es dürften in der ersten reihe(von feld[0][0] bis feld[9][0]) keine gleichen Zahlen vorkommen.Das tun sie aber. Geht mein Programm bei dir?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295863</guid><dc:creator><![CDATA[Dr_Gregor]]></dc:creator><pubDate>Thu, 31 May 2007 11:55:06 GMT</pubDate></item><item><title><![CDATA[Reply to Sudoku erstellen on Thu, 31 May 2007 12:45:04 GMT]]></title><description><![CDATA[<p>Du würfelst so lange, bis die Zahl nicht mit der ersten Spalte übereinstimmt, danach, würfelst du neu, bis sie sich von der zweiten Spalte unterscheidet (aber hier kannst du schon wieder den Wert aus der ersten Spalte bekommen) etc. So wird das nichts.<br />
(außerdem kontrollierst du überhaupt nicht, ob die Spalten und Blöcke korrekt gefüllt sind)</p>
<p>Ein Lösung wäre es, im Inneren der Schleife einmal den Wert zu würfeln und dann in alle Richtungen zu überprüfen:</p>
<pre><code class="language-cpp">bool passt=true;
while(passt)
{
  feld[zeile][spalte]=rand()%9+1;
  for(int i=0;i&lt;spalte;++)
    if(feld[zeile][i]==feld[zeile][spalte]) passt=false;
  ...//weitere Überprüfungen
}
</code></pre>
<p>Aber dabei mußt du noch die Möglichkeit bedenken, daß du dich im weiteren Verlauf total verrennen könntest und ein Feld nicht mehr legal belegen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295904</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 31 May 2007 12:45:04 GMT</pubDate></item></channel></rss>