Hallo.
ich stehe vor folgender Aufgabe:
Ich soll ein "Magisches Quadrat" als Konsolenanwendeung realisieren.
Der Nutzer gibt die Kantenlänge n ein, dann wird ein Quadrat erstellt und geprüft (Zeilensumme=Spaltensumme=Diagonale Summe=magisches Quadrat).
Als Besonderheit soll es einfach nur mittels Backtracking realisiert werden, also solange testen bis eins gefunden wurde und ausgeben.
Ich weiß aber nicht wie man so ein virtuelles Quadrat anlegt, mit Zufallszahlen füllt und auch noch sicherstellt, dass eine Zahl nicht doppelt verwendet wird.
Für eine evtl. Hilfe bedanke mich.
ein Pseudocode könnte so aussehen, aber ich kann es nicht anwenden/Verstehen:
mir würde auch schon helfen, wenn ich wüsste wie man überhaupt ein virtuelles Quadrat erstellt und diese virtuellen Felder dann auch noch mit Zufallszahlen füllen kann (ohne doppelte Zahl)
ich stehe vor folgender Aufgabe:
Ich soll ein "Magisches Quadrat" als Konsolenanwendeung realisieren.
Der Nutzer gibt die Kantenlänge n ein, dann wird ein Quadrat erstellt und geprüft (Zeilensumme=Spaltensumme=Diagonale Summe=magisches Quadrat).
Als Besonderheit soll es einfach nur mittels Backtracking realisiert werden, also solange testen bis eins gefunden wurde und ausgeben.
Ich weiß aber nicht wie man so ein virtuelles Quadrat anlegt, mit Zufallszahlen füllt und auch noch sicherstellt, dass eine Zahl nicht doppelt verwendet wird.
Für eine evtl. Hilfe bedanke mich.
ein Pseudocode könnte so aussehen, aber ich kann es nicht anwenden/Verstehen:
Code:
{
if (IsSquareFilled(...))
{
if (IsMagic(...))
{
// Ausgeben und abbrechen
}
}
else
{
/* Nummern durchlaufen, die gesetzt werden können
*/ Also noch nicht verwendet sind
for (...)
{
// Element in Quadrat an currentPos schreiben
// Rekursiver Aufruf
Create(currentPos, ...)
// Element an currentPos aus Quadrat löschen
}
}
}
mir würde auch schon helfen, wenn ich wüsste wie man überhaupt ein virtuelles Quadrat erstellt und diese virtuellen Felder dann auch noch mit Zufallszahlen füllen kann (ohne doppelte Zahl)
Zuletzt bearbeitet von einem Moderator: