Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einige Fragen zu sudoku (https://www.delphipraxis.net/90456-einige-fragen-zu-sudoku.html)

Mosi17 17. Apr 2007 19:33


einige Fragen zu sudoku
 
Hallo erstmal...
gleich mal vorneweg - die SUFU hab ich benutzt doch hab ich keine Lösungen bzw. keine Lösungen, die ich verstanden hab gefunden.

Also mein erstes Problem ist, dass ich bei meinem Sudoku auf bereits vorgefertigte Spiele zurückgreifen möchte, welche in 3 Textdateien(leicht,mittel,schwer) gespeichert sind. Und das nach diesem Schema.
101010101
020202020
303030303
...
909090909
*Leerzeilen
*
101010101
020202020
303030303
...
909090909
*
*

dabei stehen die Nullen für leere Felder.
Nun wollte ich fragen wie ich diese Datensätze in Arrays übertragen kann. Würde dann über random den jeweiligen Satz und über den Schwierigkeitsgrad die Datei auswählen.
##################################
Mein zweites Problem beschäftigt sich mit dem Stringgrid selbst. Denn ich würde gern die Zellen, in denen bereits Zahlen sind so einstellen, dass sie nicht editierbar sind, was ich mit meinem Wissen nicht hinbekomm.

Schonmal danke im Voraus
LG Mosi

Apollonius 17. Apr 2007 19:54

Re: einige Fragen zu sudoku
 
Nun, das in Arrays zu transferieren sollte nicht allzu schwer sein. Du hast ein 9 mal 9 Array. Wenn ich das richtig verstanden habe, willst du eigentlich nur alle Zeichen einzeln speichern, also etwa:
Delphi-Quellcode:
procedure laden;
var datei:textfile; h:string; gesp:array[1..9,1..9] of byte;i,j:byte;
begin
assignfile(datei,'irgendeinname.txt');
reset(datei);
try
  for i:=1 to 9 do
   begin
    readln(datei,h);
    for j:=1 to 9 do
     gesp[i,j]:=inttostr(h[j]);
   end;
finally
  closefile(datei);
end;
end;
Nun musst du halt ein dreidimensionales array vereinbaren (ein Array von zweidimensionalen Arrays) und das eben statt "gesp" einsetzen. Du musst dann aber auch im ganzen Programm vereinbaren, dass 0 leeres Feld heißt.
Mit dem Stringgrid fällt mir gerade nichts ein, notfalls musst du es als nicht editierbar einstellen und dann auf onkeypresses reagieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 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