Autor Beitrag
Miaokatze
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 18.06.07 20:18 
Hallo erstmal zu allen die sich durchgerungen haben das hier zu lesen^^

Ich soll als Schulprojekt einen Sudokulöser und Generator programmieren. Da ich aber noch ein Programmier- Newbie bin und der Info Unterricht an unserer Schule alles andere als hilfreich ist, hoffe ich hier Hilfe zu finden. Ich habe praktisch keine Programmier Erfahrungen (bis auf einige kurze Tutorials) und hoffe darum, dass mir jemand leicht verständlich erklären kann, wie man es schafft eindeutige Sudokus zu erzeugen. Ich habe mich hier schon etwas umgesehen aber nichts gefunden was mir wirklich weiterhilft.

Einen Löser habe ich bereits geschrieben (welcher jedoch abstürzt wenn man einen direkten Widerspruch eingibt)

Meine Hauptprobleme sind darum:

-eine Funktion zur Kontrolle der eingegebenen Zeichen (zwischen Ascii von 0 und 9) == werde ich wahrsch. noch selbst hinbekommen
-Eine Funktion die die Rekursion stoppt, sobald beim lösen ein direkter Widerspruch gefunden wird und dann einen Fehler ausgibt
-einen Ersteller der EINDEUTIGE Sudokus ausgibt(nicht eindeutige Ersteller wären ja nicht so schwer)


Ich weiß, dass diese Aufgabe für viele von euch hier Kinderkram sein mag aber ich mach es halt erst sehr kurz und die Erklärungen der Lehrer waren sehr spärlich. Das Problem an der sache ist, dass ich ziemlich unter Zeitdruck stehe (2 Wochen)

==> Ich hoffe irgendjemand kann kir schnell und unkompliziert helfen (ich will keine komplette Lösung, nur einige Anhaltspunkte und die ungefähre Verfahrensweise und/oder nützliche Links)

>>>>>Ich danke schon mal im Voraus für eure Antworten =)<<<<
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: Mo 18.06.07 21:01 
Hallo Miaokatze,
Mir ist eben eine Ansatz eingefallen:
-ein ausgefülltes Sudokufeld erzweugen
-einige Felder löschen
-prüfen ob lösbar ist mit der Bedinung das in den gelöschten Felder die originalen Zahlen nicht stehen dürfen.
-führt der Lösungversuch nun zu keiner Lösung -> eindeutiges Sudoku

Gute Nacht
Diskette
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21

Win XP
Delphi 5 Pers., Borland Developer 2006 Prof.
BeitragVerfasst: Mo 18.06.07 21:02 
für das problem, ob ein fehler vorhanden ist...
Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var abbruch: Boolean;
    Counter: Integer;

procedure Form1.Button1.Click(Sender: TObject);
 begin
  counter := 1;
  abbruch := false;
  while ((abbruch = false) and (counter < 10)) do begin
   ShowMessage(IntToStr(counter));
   counter := counter + 1;
  end;
 end;

procedure Form1.Button2.Click(Sender: TObject);
 begin
  abbruch := true;
 end;


So ähnlich kannst du das auch machen, nur dass du statt Button2 die Abbruch funktion reinmachst ;)
Gruß,
Diskette
Miaokatze Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 19.06.07 18:43 
Jo danke für eure Ideen, werde das gleich mal ausprobieren^^