Entwickler-Ecke
Open Source Projekte - Kendoku-Generator
Fiete - Di 17.02.15 12:53
Titel: Kendoku-Generator
Mit dem Programm lassen sich Kendokus generieren, angeregt durch
Horst-Dieter und
Mathematiker.
Hier noch einmal die Regeln:
http://www.janko.at/Raetsel/Kendoku/Regeln.htm
Meine Version benutzt einen Permutationsalgorithmus zum Erzeugen.
Die Bereiche werden in Koordinaten im Memo angezeigt, kann bei Bedarf gespeichert werden.
Insgesamt sind 28 Muster implementiert, 1 bis 4 Elemente groß.
Wenn keine Einzelfelder gewünscht sind kann die Erzeugung länger dauern, Abbruch mit <esc>.
Beim Spielen wird ein Wert mit linker bzw. rechter Maustaste erhöht bzw. verringert.
Richtige Zahlen können markiert angezeigt werden.
Das Kendoku kann auch als Bitmap gespeichert werden, zum ausdrucken bzw. weiterverarbeiten.
Abgespeicherte Kendokus liegen nur in Koordinaten vor.
Korrekte Muster kann das Programm lösen. Dies wird per brute force über Permutationen ausgeführt.
Kann etwas länger dauern, ein Versuchszähler wird angezeigt , Abbruch mit <esc>.
Eigene Kendokus können selbst konstruiert werden
Aufgaben gibts hier:
http://www.janko.at/Raetsel/Kendoku/index.htm
Viel Spaß beim Testen
Gruß Fiete
Edit1: Prozedur EndeTest geändert
Horst_H - Di 17.02.15 14:59
Hallo,
Ich habe das Originalprogramm ausprobiert.
bei Dieter3_5x5.txt erscheint bei der Eingabe der 5, durch Mausklicks, oben links in der Ecke, das Kendoku ist gelöst??? Liegt das an Linux-Wine oder ist das so gewünscht?
Gruß Horst
Fiete - Di 17.02.15 15:13
Moin Horst_H,
Zitat: |
Ich habe das Originalprogramm ausprobiert.
bei Dieter3_5x5.txt erscheint bei der Eingabe der 5, durch Mausklicks, oben links in der Ecke, das Kendoku ist gelöst??? Liegt das an Linux-Wine oder ist das so gewünscht? |
passiert bei mir nicht. Delphi6 pro und W7
Gruß Fiete
Horst_H - Di 17.02.15 16:03
Hallo,
unter Win7 und immer noch die Original-Echse:
Ich habe scheinbar 6 mal geklickt...
Gruß Horst
EDIT:
Ich habe nach dem Laden auf Kendoku spielen gedrückt und nicht auf lösen .....
Fiete - Di 17.02.15 17:51
Moin Horst_H,
konnte den Fehler reproduzieren,
in der Prozedur EndeTest war der Wurm :oops:
alt
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TKendoku.EndeTest; var x,y:Integer; OK:Boolean; begin OK:=True; for y:=1 to Feldbreite do for x:=1 to Feldbreite do OK:=OK and (Feld[x,y].Inhalt=Loesung[x,y].Inhalt); if OK then begin Ausgabe.Enabled:=False; BlauesFeld; MusterZeichnen; MessageDlg('Du hast das Kendoku gelöst!',mtInformation,[mbOk],0); Spielen:=False; CheckBoxKE.Checked:=False; end end; |
neu
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TKendoku.EndeTest; var x,y:Integer; OK:Boolean; begin OK:=True; for y:=1 to Feldbreite do for x:=1 to Feldbreite do OK:=OK and (Feld[x,y].Inhalt=Loesung[x,y].Inhalt) and (Loesung[x,y].Inhalt>0); if OK then begin Ausgabe.Enabled:=False; BlauesFeld; MusterZeichnen; MessageDlg('Du hast das Kendoku gelöst!',mtInformation,[mbOk],0); Spielen:=False; CheckBoxKE.Checked:=False; end end; |
Das Array Loesung wird nach dem Laden auf Null gesetzt, menschliches Versagen.
Gruß Fiete
Horst_H - Di 17.02.15 17:57
Hallo,
wozu sind denn DAU's sonst gut ;-)
Gruß Horst
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!