AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sudoku...

Ein Thema von logo123 · begonnen am 22. Mär 2007 · letzter Beitrag vom 25. Mär 2007
 
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Sudoku...

  Alt 23. Mär 2007, 21:51
Ahnung davon haben hier sicherlich etliche

Strategien zum Lösen eines Sudokus gibt es viele. Für ein Computerprogramm empfiehlt es sich auf jeden Fall, Kandidatenlisten zu führen. D.h. Du hast ja eine Matrix (in den meisten Fällen 9x9 Felder) und an jedem Platz können die Zahlen 1-9 stehen. Im ersten Schritt werden jetzt die Zahlen die im Lösungsfeld schon vorgegeben sind in diese Matrix eingetragen und damit alle anderen Kandidaten für das jeweils betreffende Feld eliminiert.

Danach wendest Du die üblichen Regeln an:

- In jedem 3x3-Block darf 1-9 nur einmal vorkommen, d.h. aus den Kandidatenlisten für diese Felder kannst Du die gerade eingetragene Zahl entfernen.

- In jeder Zeile darf 1-9 nur einmal vorkommen, d.h. aus den Kandidatenlisten in dieser Zeile auch wieder die entsprechenden Ziffern entfernen.

- In jeder Spalte darf 1-9 nur einmal vorkommen, d.h. aus den Kandidatenlisten in dieser Spalte auch wieder die entsprechenden Ziffern entfernen.

Jedes Mal wenn Du irgendwo Kandidaten eliminiert hast, musst Du dann durch das Feld laufen und schauen ob Du irgendwo schon alle Kandidaten bis auf einen eliminiert hast. Den kannst Du dann auch wieder als Lösung eintragen und die entsprechenden Kandidaten (siehe oben) entfernen.

Aus den Kandidatenlisten ergibt sich dann auch noch:

- Wenn ein Kandidat nur in einem Feld einer Zeile vorhanden ist, dann gehört der dort als Lösung hin, also eintragen und weiter wie oben

- Wenn ein Kandidat nur in einem Feld einer Spalte vorhanden ist, dann gehört der dort als Lösung hin, und weiter wie oben.

- Wenn ein Kandidat in einem 3x3-Block.... usw.

Wie Du das jetzt in ein Programm überführst, darfst Du Dir aber erstmal selber überlegen. Nur mit viel Übung wird man Meister
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz