AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Sudoku Lösen und Code Verständnisproblem
Thema durchsuchen
Ansicht
Themen-Optionen

Sudoku Lösen und Code Verständnisproblem

Ein Thema von MaToBe · begonnen am 18. Mai 2010 · letzter Beitrag vom 19. Mai 2010
 
MaToBe

Registriert seit: 2. Aug 2008
162 Beiträge
 
#1

Sudoku Lösen und Code Verständnisproblem

  Alt 18. Mai 2010, 22:19
Hallo, da bin ich schon wieder

Nun geht es darum, ein Sudoku zu lösen. Genauer gesagt habe ch ein Sudoku mit einigen Lücken und möchte eine bestimmte Zahl in eine dieser Lücken platzieren, wo die Spielregeln dies eben zulassen.

Ich habe hier meines Wissens alle Sudoku-OpenSource Codes ect. durchgesehen. Am ansprechensden fand ich diesen hier, sehr gut gegliedert und strukturiert. Denoch ist das ein wenig zu hoch für mich.

Leider scheitert es schon am Anfang, dem "eingeben" des Sudokus. Ich habe mein Sudoku in einem StringGrid gespeichert und möchte es nun in das Array der Unit umwandeln.

Der Code der fremden Unit:
Delphi-Quellcode:
...
type
  use= set of 1..81;
  TSudoku=Class(TObject)
  private
    sudoku: Array of Array[1..81] of Integer;
    impossible:Array of Array[1..9,1..9,1..9] of Boolean;
    owner: Array of Array[1..9,1..9,1..9] of Integer;
    quadrant: Array of Array[1..3,1..3,1..9] of Boolean;
    count,num:integer;
...
procedure TSudoku.SetVal(num,index,val:integer);
begin
  sudoku[num,index]:=val;
end;;
...
Mein Code zum Eintragen:
Delphi-Quellcode:
procedure TfrmMain.btnSudokuAnClick(Sender: TObject);
var m, n, i: integer;
begin
    Sudoku.Create;
    i := 1;

    for m := 0 to 8 do
    begin
      for n := 0 to 8 do
        begin
           Sudoku.SetVal(0,i,strtoint(sgSudoku.Cells[m,n]));
           inc(i);
        end;
    end;
end;
In der Beschreibung steht noch:
Zitat:
#
1. Unit USudoku einbinden über uses
2. Variable vom Typ TSudoku erstellen.
3. .create methode aufrufen
4. Werte ins Objekt laden. Dies geschieht per .Setvalue(0,1..81,val) //Wert 0 für leeres Feld!
...
Die Funktionen zum Setzen/Abrufen der Werte brauchen als ersten Paramter eine 0, damit auf die erste lösung zugegriffen wird. Ich bin gerade debei eine Funktion hinzuzufügen, die noch weitere Möglichkeiten berechnen kann, und diese in einem anderen Array abspeichert.
...
Punkt 1-3 waren einfach aber bei Punkt 4 mach ich irgendwas falsch

MFG MaToBe

PS: Falls jemand einen Codeausschnitt hat, der genau das Leistet was ich oben beschieben habe, wär ich nicht abgeneigt, mir diesen mal anzusehn
  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 22:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz