Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Sudoku
Acehigh - Fr 07.05.10 23:38
Titel: Sudoku
Hallo!
Ich bin neu hier und auch Anfänger in Delphi und hoffe hier ein paar gute Tips mitnehmen zu können.
Ich hab die Aufgabe ein Programm für ein Sudoku zu schreiben(Datein im Anhang). Ist erst mein drittes "Projekt", funktioniert aber soweit.Meine Frage ist jetzt wie ich das Programm optimieren kann?
Wie schaffe ich es, dass ich nicht immer jedes Edit Feld einzelnd ansprechen muss wenn ich den Style oder die Size ändern will?
Ist die Testfunktion so weit ok?
Der Lösungsbutton funktioniert noch nicht. Wie programmiere ich eine zufällige Lösung?
Sonst noch Verbesserungsvorschläge?
Schönen Abend noch!
Gruß Acehigh
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
BenBE - Fr 07.05.10 23:55
Zwecks Ansprechend der Edits siehe FindComponent.
Zum Optimieren empfiehlt es sich, die visuellen Komponenten nur zur Anzeige herzunehmen und intern z.B. mit Arrays zu arbeiten. Damit bekommst Du einiges mehr an Geschwindigkeit raus.
Zum Lösen: Schau Dir mal Breitensuche bzw. Tiefensuche an. Auch sonst findest du zum Thema Sudoku (すどく) einiges hier im Forum. Einfach mal suchen ;-)
Acehigh - Sa 08.05.10 01:15
Danke
Ich hab mich gleich mal an das FindComponent gemacht und bin bisher so weit gekommen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TFormSudoku.SButtonBoldClick(Sender: TObject); var i : integer; E: TEdit; begin for i := 11 to 11 do begin E := TEdit(FindComponent('E' + IntToStr(i))); E.Font.Style := [fsBold]; end; end; |
Das Problem ist jetzt das die Edits E11,E12,E13,E14,E21...E44 heißen und das Programm
abstürzt wenn I := 11 to 44 schreiben würde. Wie kann ich das lösen außer das ich die
Edits umbenenne?
Moderiert von
Narses: Delphi-Tags hinzugefügt
elundril - Sa 08.05.10 04:26
Du könntest ev. auch ein StringGrid verwenden, was das ganze ohne FindComponent löst.
lg elundril
Acehigh - Sa 08.05.10 17:58
Beim StringGrid und bei der Breitensuche finde ich irgendwie keinen Ansatz oder weiß nicht wie so etwas aufgebaut wird. Könnt ihr mir etwas mehr helfen?
Moderiert von
Narses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
jaenicke - So 09.05.10 22:02
Wie meinst du das? Das StringGrid legst du einfach auf das Formular. Über Cells kannst du dann auf die einzelnen Zellen zugreifen.
Wie das dann aussieht siehst du z.B. bei meinem Sudoku-Progrämmchen:
http://www.delphi-forum.de/viewtopic.php?t=48160
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!