Anregung/Anstoß für ein Sudoku gesucht

Für Fragen von Einsteigern und Programmieranfängern...
alfware17
Beiträge: 210
Registriert: Di 14. Dez 2010, 23:27

Anregung/Anstoß für ein Sudoku gesucht

Beitrag von alfware17 »

Nachdem ich mich in der letzten Zeit mehr als eigentlich ein wenig geplant mit MingW und Eclipse beschäftigt habe, blieb dort als eines von 3 "Themen" sprich Programmen in fünf verfügbaren Sprachen (C,C++,objective-c, Fortran und Ada) u.a. ein Sudoku übrig, wo ich ein bißchen an der Ein/Ausgabe und am Algorithmus gebastelt habe. Super gut war nicht mein Anspruch, nur identisch in den o.g. 5 Sprachen.

Nun erwächst aber in mir doch der Wunsch, das noch mal ordentlich zu machen und natürlich mit GUI. Anbieten würde sich für mich Java oder Python - da war ich davor "dran" und wüßte noch ungefähr wie ich so einem Button Eigenschaften gebe, viel anders als bei einem Taschenrechner wird es nicht sein. Excel will ich nicht - also fiel meine Wahl auf Lazarus. Aber bevor ich beginne das Rad zum 999.Mal neu zu erfinden, wollte ich fragen, ob mir jemand einen Recherche-Tip geben kann. In den Lazarus/Free-Pascal Beispielen habe ich so auf Anhieb nichts gefunden. Welchen Ansatz würdet Ihr wählen?

Benutzeravatar
Zvoni
Beiträge: 363
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von Zvoni »

9x9-Grid?
81 TEdit's? :D :lol:
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6763
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von af0815 »

Array dynaisch in Labels, Frames oder BitButton umrechnen. Damit würde das Spielfeld sich je nach Arraygröße anpassen.
Wenn du dann noch ein Tag richtig zuweist, dann reicht eine Ereignisbehandlung aus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Zvoni
Beiträge: 363
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von Zvoni »

af0815 hat geschrieben: Di 17. Dez 2024, 12:10 Array dynaisch in Labels, Frames oder BitButton umrechnen. Damit würde das Spielfeld sich je nach Arraygröße anpassen.
Wenn du dann noch ein Tag richtig zuweist, dann reicht eine Ereignisbehandlung aus.
Wieso umrechnen? Direkt nutzen.

Code: Alles auswählen

//Feldvariable der Form selbst
  MeinArray: Array[1..9,1..9] Of TEdit; //Oder welches control auch immer
Im Startup dann die 81 controls einmal zuweisen, fertig.

Danach kann man direkt mit dem Array arbeiten.

btw: Kann man eigentlich Controls einem Array in der Deklaration direkt zuweisen?
Also im Sinne von

Code: Alles auswählen

MeinArray:Array[1..3] Of TEdit=(TEdit1, TEdit2, TEdit3);
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

icho2099
Beiträge: 47
Registriert: Fr 21. Feb 2020, 19:17
OS, Lazarus, FPC: Win10/64
CPU-Target: 64 Bit
Wohnort: Osterholz-Scharmbeck

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von icho2099 »

Array und Zeichendarstellung und Eingabemöglichkeit und nur eine Komponente: tStringGrid

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von Mathias »

Code: Alles auswählen

 MeinArray: Array[1..9,1..9] Of TEdit; //Oder welches control auch immer
Ich fange eine array immer bei 0 an.

Code: Alles auswählen

 MeinArray: Array[0..8,0..8] Of TEdit; 
Das hat den Vorteil, wen du mal auf die Idee kommst, die Felder dynamisch zu verändert,
Solche Array fangen immer bei 0 an. Einzige Ausnahme ist der String.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
Zvoni
Beiträge: 363
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von Zvoni »

Mathias hat geschrieben: Di 17. Dez 2024, 13:36

Code: Alles auswählen

 MeinArray: Array[1..9,1..9] Of TEdit; //Oder welches control auch immer
Ich fange eine array immer bei 0 an.

Code: Alles auswählen

 MeinArray: Array[0..8,0..8] Of TEdit; 
Das hat den Vorteil, wen du mal auf die Idee kommst, die Felder dynamisch zu verändert,
Solche Array fangen immer bei 0 an. Einzige Ausnahme ist der String.
Ich kenne die Diskussion, und ehrlich? Halte ich mal gar nix von.
Arrays fangen bei mir an, da von wo ich will. Basta!
Mal ist es von 0, mal von 1, mal von woanderst.
Ausser dynamisch erzeugte Arrays. Klar, die fangen bei 0 an. zumindest in Freepascal.
Ich kenne es aus VB6, dass man sogar dynamisch erzeugte Arrays anfangen lassen konnte von wo man will

Diese Diskussionen "Arrays fangen bei 0 an..." halte ich für nicht zielführend und verwirrend

Und dieses "Arrays beginnen bei 0" stammt aus der "C-Ära", da die Adresse der Array-Variablen selbst immer gleich war mit der Adresse des ersten ("0"-ten) Elements.
So dass man den Index des Arrays quasi als "Offset" zur Adresse (Beginn Speicherbereich) betrachten konnte
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
juelin
Beiträge: 237
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von juelin »

Habe mal in Delphi Sudoku geschrieben.
Wenn das was für dich ist, kannst du es haben.
Gruß
Jürgen

alfware17
Beiträge: 210
Registriert: Di 14. Dez 2010, 23:27

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von alfware17 »

Hallo und erstmal vielen Dank für eure Denkanstöße. Das mit dem StringGrid erscheint mir am aussichtsreichsten, daß auch ich es verstehe... wengleich ich das Control in meinem Lazarus noch nicht gefunden habe. Ich wollte jetzt zur Übung mal erstmal schnell das C-Programm nach Pascal umschreiben, was ich im MingW verbrochen habe (Datei einlesen, Sudoku lösen, ausgeben). Damit ich einen Anfang habe. Danach das Projekt von Grund auf neu aufsetzen.

Danke @juelin, das würde mich in der Tat interessieren - ich hoffe ich kann es dann nach Lazarus importieren. In einer PN geht gleich meine E-Mail an dich heraus.

Benutzeravatar
Zvoni
Beiträge: 363
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von Zvoni »

alfware17 hat geschrieben: Di 17. Dez 2024, 15:08 .. wengleich ich das Control in meinem Lazarus noch nicht gefunden habe.
Unbenannt.PNG
Unbenannt.PNG (20.92 KiB) 3869 mal betrachtet
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

wp_xyz
Beiträge: 5129
Registriert: Fr 8. Apr 2011, 09:01

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von wp_xyz »

Zum Spicken: Es gibt ein Sudoku-Programm für Lazarus auf ccr: https://sourceforge.net/p/lazarus-ccr/s ... ns/sudoku/

Singlepin
Beiträge: 15
Registriert: Fr 28. Aug 2015, 17:00
OS, Lazarus, FPC: Ubuntu 24.04.1 LTS (L 3.6 FPC 3.2.2)
CPU-Target: 64Bit

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von Singlepin »

Sehr interessant und lehrreich https://www.behrenhoff.de/.
Der Quelltext ist für Delphi.
Damit es mit den Hintergrundfarben bei den TEdit's klappt habe ich TMemo's genommen.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1617
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von corpsman »

Ich hab auch mal ein Sudoku gemacht, dort wurde alles via Canvas von Hand gemalt..
--
Just try it

alfware17
Beiträge: 210
Registriert: Di 14. Dez 2010, 23:27

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von alfware17 »

corpsman hat geschrieben: Mi 18. Dez 2024, 06:19 Ich hab auch mal ein Sudoku gemacht, dort wurde alles via Canvas von Hand gemalt..
Würdest du auch die Quellen angeben? Oder habe ich sie nur nicht gefunden.

alfware17
Beiträge: 210
Registriert: Di 14. Dez 2010, 23:27

Re: Anregung/Anstoß für ein Sudoku gesucht

Beitrag von alfware17 »

Vielen Dank für eure Tips und Beispiele. Für mich ergibt sich nun erstmal folgender Plan, Delphi in einer Virtualbox installieren und gucken und versuchen zu verstehen, dann mein C-Programm umbauen und dann mal mich an dem GUI probieren... Ob das nun unbedingt über Weihnachten klappt :-)

Antworten