So ich bin der Meinung, dass sich mein neuestes Projekt, für das ich Excite auf Eis gelegt habe, bereits sehen lassen kann: AnySudoku.
Wie der Name schon sagt hat das was mit Sudokus zu tun:
-Es generiert Sudokus
-Es löst Sudokus
-Man kann damit Sudokus selber lösen
-Es überprüft Sudokus
das ganze in verschidenen Größen und Formaten, bis jetzt gibts folgende:
Blöcke/Spielfeldgröße
33 /99 :das Standardsudoku schlechthin
32 /66
22 /44
34 /1212
33 /99 Samurai
Backtracking und Ausdünnen werden verwendet.
Die generierten Sudokus sind zwar immer mit Logik eindeutig lösbar aber nicht immer ganz einfach, da das Programm ziemlich effektiv ausdünnt und davon ausgeht, dass man das auch macht.
hier ein Screenshot mit einem samurai Sudoku drauf:
Was geplan ist:
-weitere Formate (x sudoku, 1616/ 44, 2 ineinander geschachtelte...)
-unterschidliche Schwierigkeitsgrade für die generierten Sudokus
-speichern Funktion
-Chaossudoku und ein Editor dafür
-eventuell Webservice
Hallo,
ich hab mir dein zip-Archiv runter geladen und muss sagen "Nicht schlecht her Specht" 😉 Dein ZIP-Archiv lässt sich mit Ark unter KDE 4.1 nicht öffnen. Warum auch immer.
Jedoch vermisse ich den SourceCode.
Was willst du denn mit dem Code? Da stehen eh kaum Kommentare drin und zum reinschauen reicht doch auch reflector.
Wenn jemand helfen will: Ich kann eine Komponente, die Anfragen über http beantwortet gut gebrauchen:
-extra Thread,sodass man nur eine Startmethode aufrufen muss
-soll bei einer Anfrage eine methode aufrufen, die dann einen string zurückgibt und das las html an den Browser schicken
-soll den Standartbrowser starten können
-soll sich die addresse/port so wählen, dass es auch bei 2 Instanzen gleichzeitig keine probleme gibt
-keine ungefangenen exceptions vonwegen ungültige Anfrage,Verbindung unterbrochen etc.
Ps: ich verwende 7zip zum packen.
Zu deiner Thread Sache:
Verwende doch den BackgroundWorker
Web Abfragen:
Gibt es die WebClient Class einfach mal suchen 😉
Standart Browser öffnen:
Process.Start("http://www.google.de");
Wünsche:
"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger Dijkstra
@HyperteX
Threads und so bekomm ich auch alleine hin und mit der Klasse Httplistener und der doku auch den Rest. Html ist sowieso Fleißarbeit.
Allerdings hatte ich bei Netzwerkgeschichten bisher immer eine längere Testphase, weil mehrere anfragen gleichzeitig managen und alle Fehler bei der Übertragung abfangen und managen doch recht aufwändig war. Deshalb dacht ich, es könnte jemand was in der Richtung für mein Projekt schreiben.
-Für eine Zoomfunktion müsste ich einiges ändern.
-Speichern und laden ist da schon einfacher. Steht allerdings gaanz weit hinten auf meiner liste.
-Zur Bedienung: wie kann man das denn einfacher machen? Bis jetzt muss man zuerst die Form des Sudokus generieren: Das Menue mit dem Gitter als Symbol. Dann die Zahlen: Das menue mit der 1 und dem Stern.
Also entweder ich versteh net was Du willst, oder du stellst dir das anders vor 🙂
Du willst doch irgend was mit irgend welchen Webseiten (z.B. PHP) oder so austauschen oder? Oder Willst Du irgendwie daraus ein Netzwerkspiel für 2+ Spieler machen (jedoch bleibt mir der Sinn bei Sudoku verschleiert 🙂
Wegen der Bedienung.
Du könntest z.B. einen Wizard machen, welcher dich durch den Start begleitet. Also:
-> Modus: Generieren oder Lösen?
-> Spielfläche
-> Sonstiges
-> Und Los!
Nochmal wegen dem Threading:
Warum generierst Du net einfach im backgroundWorker oder so? das is doch wahrscheinlich ne Sache von Minuten bis das läuft 🙂
"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger Dijkstra
Hallo ihr beiden,
behandelt solche Nebenkriegsschauplätze bitte nicht in "Projekte". Macht bei Bedarf einen extra Thread dafür auf.
herbivore
So jetzt gibts ne neue Version.
Hi,
habs grad nochmal in der neuen version gespielt = schöne Änderungen!
Ich hab noch zu meinen vorherigen Vorschlägen neue 🙂
Gruß
HyperteX
"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger Dijkstra
nö, kannte ich noch nicht, ist mir jetzt aber zu kompliziert (viertel vor 11 bin ich noch nicht ganz wach) 😉
Von mir auch noch ein paar Hinweise:
Man kann mehrstellige Zahlen in ein Feld eingeben.
Schön wäre es, wenn sich das Spielfeld an das Fenster anpassen würde.
Vllt. den Fortschrittsbalken net in ein eigenes Fenster.
Diesen Eingabemodus verstehe ich auch nicht.
Ansonsten schön gemacht, bin grade dabei ein Samurai-Sudoku zu lösen. =)
So ich bin grade aus dem Urlaub zurück und muss sagen: die nächste Version veröffentliche ich wenn überhaupt frühestens in ca. 1,5 wochen.
-Ich hab noch einen Fehler gefunden, dass beim Ausdünnen bestimmte Kombinationen nicht getestet werden. Das führt dazu, dass nicht so viele Sudokus ohne backtracking gelöst werden können. (2erpaare werden alle gestestet.) Das Lösen des Fehlers verschlechtert die Performance ziemlich.
-Weitere Optimierungen, um dem entgegenzuwirken einbauen
-Außerdem will ich noch eine Weitere Lösungstechnik einbauen.
-Dann kommen noch Schwirigkeitsgrade dran. Dafür muss ich aber die Art, wie Sodokus erstellt werden, etwas verändern.
Danach kommt die Gui erst dran.
- Man kann mehrstellige Zahlen in ein Feld eingeben.
Wie soll man sonst sudokus mit 12 oder 16 Feldern pro Block/Spalte/Zeile ausfüllen?
Hallo,
kennt ihr eigentlich schon die Beschreibung für das Lösen eines Sudokus
Weder kannte ich das, noch hab ich ernsthaft Lust mich da durchzuarbeiten.
- Vorgegebene Zahlen lassen sich bearbeiten => Schreibschutz
Gute idee! aber gehört zu gui.
Wenn man mehrere Fehler macht heißt es immer noch "Sie haben EINEN Fehler gemacht."
Das steht ziemlich weit unten auf der Todo Liste. Ich hatte die Funktion nur in die Gui eingebaut,weil ich die entsprechenden Funktionen schon woanders gebraucht hatte.
- Was ist der Eingabemodus und was ändert er?
Dass die Zahlen eine andere Farbe haben und gesondert behandelt werden können.
Ich überlege grade, ob ich damit Sudokuhefte herausgeben kann/soll.
*Vorschau guck* man was für ein langer Post
gepatchte exe, die sich ohne administratorrechte starten lässt.
sonst keinerlei veränderungen zur obigen version.