Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-03-2008, 10:25   #1 (permalink)
Rc-freak
 
Benutzerbild von Domsi
 
Registriert seit: Sep 2004
Ort: Steiermark (Ö)
Beiträge: 1.152
Sudoku - Nicht logischlösbar

Schönen Tage euch alle!!!!

Ich hab schon vor längerer Zeit versucht ein Sudoku zu machen. Ich hab mich jetzt in den Ferien mal wieder rangesetzt:

Das Sudoku-Feld wird erstellt, es werden alle Felder ausgefüllt und alle Regeln eingehalten. Also der Generator is fertig und funktioniert ohne Fehler. Mein Problem ist aber das Ausblenden der Felder um Sudoku spielen zu können.
Es bleiben 34 Zahlen am Feld über. Es ist fast lösbar, außer bei den letzten 4-10 Zahlen ist es nurmehr durch Raten lösbar. (Bei 20 Spielen, 1 mal logisch lösbar).

Für Anfänger ist es leicht zu machen, da lass ich vom flash ausrechnen ob durch anwenden der 3 regeln es lösbar ist. (Also auf einfachste weiße).

Aber wie sieht es mit den schweren sudokus aus. Wie kann die Logischlösbar machen bzw. das errechnen lassen. (Also ich mein unter schwer, die wo man durch sehr hohen logischen Aufwand die Zahlen findet)

Muss ich da bestimmte Zahlen einfach weglassen oder von jeder Zahl eine max. Anzahl aufscheinen lassen.

Kann ich überhaupt die Schwierigkeitsstufen so einfach festlegen ohne es vom Computer brechnen zu lassen? Wenn ja wie?

Lg, Domsi

edit: Die zahlen werden jetzt nur per zufall aus den Feldern gelöscht.
__________________
Für Rechtschreibfehler haftet meine Tastatur.

Frühstücken tun alle (Nutella)

http://www.dominik-klein.at|Einfache Flashanfängertuts|Geburtstagsreminder

lg, Domsi

Geändert von Domsi (17-03-2008 um 10:27 Uhr)
Domsi ist offline   Mit Zitat antworten
Alt 17-03-2008, 12:12   #2 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Du musst eben den "sehr hohen logischen Aufwand" bei dir auch im Programm umsetzen. Ein Rätsel ist dann einfach, wenn man ohne diese neuen Regeln logisch zum Ergebnis kommen kann, ist das Sudoku einfach, wenn man sie benötigt, ist es schwer, und wenn man raten muss, verwirfst du es.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 17-03-2008, 17:14   #3 (permalink)
Rc-freak
 
Benutzerbild von Domsi
 
Registriert seit: Sep 2004
Ort: Steiermark (Ö)
Beiträge: 1.152
Ja nur die Umsetzung schaff ich nicht.

Sie sind entweder nur einfach oder nur durch raten zu schaffen.

Gibt es zum erstellen irgendwelche tipps oder sowas, wie man sie logisch lösbar machen kann??? Wie gesagt bis auf die letzten 4-10 zahlen is alles logisch und in den letzten Spielzügen wirds nichts mehr.

Muss ich da die Zahlen nach einem bestimmen Muster oder bestimmte Anzahl (Anzahl der einzelnen Zahlen) anwenden....

dabei komm ich nicht, ich weiß nicht wie ich weitermachen soll.
__________________
Für Rechtschreibfehler haftet meine Tastatur.

Frühstücken tun alle (Nutella)

http://www.dominik-klein.at|Einfache Flashanfängertuts|Geburtstagsreminder

lg, Domsi
Domsi ist offline   Mit Zitat antworten
Alt 17-03-2008, 17:41   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
wollte ich auch schon längst gemacht haben ... naja :-)

in meiner fernsehzeitschrift gibt es immer 3 sudokus: leicht mittel schwer

leicht ist,
wenn man durch ausschluss das rätzel komplett lösen kann.
ausschluss ist z.b.: in dieser zeile ist schon eine 9 in der ist schon eine 9, in dieser spalte ist schon eine 9, ein feld ist schon belegt, also bleibt 'dieses' feld übrig ...
hierbei hat man auch immer sehr schnell komplette zeilen/ spalten und blöcke vollständig. und zwar überall.

schwer ist,
wenn man alle ausschlüsse durch hat und der rest ist mehrdeutig (so wie du geschrieben hast) für alle restlichen fälle sind mindestens 2 felder möglich.
jetzt müsste man ein bleistift nehmen und ausprobieren - dazu bin ich dann immer zu faul ;-)
das soll der computer machen, der kann sowas besser.

mittel ist,
das weiss ich nicht genau, woran die das ausmachen. vielleicht, wenn man beim ausschluss zusätzlich zu zeilen und spalten auch noch die blöcke mit berücksichtigt?
und hier bleiben ganze blöcke bis zum schluss unbesetzt.


ein kriterium könnte auch die anzahl und schwere der ausschlüsse sein:
in der zeile nicht, in der spalte nicht ... == x bedingungen für diese stelle

+ je mögliches/notwendiges backtracking nochmal x punkte
+ natürlich die anzahl der zu vervollständigenden ziffern



jedenfalls dürfte es keine formel geben, wann was was ist. also ausprobieren und dabei nach den oben genannten kriterien bewerten.


Zitat:
Zitat von Domsi Beitrag anzeigen
Muss ich da die Zahlen nach einem bestimmen Muster oder bestimmte Anzahl (Anzahl der einzelnen Zahlen) anwenden....
backtracking ist ein allgemein bekanntes verfahren um z.b. irrgarten zu durchqueren oder schach-, dame- spielzüge zu ermitteln usw.
http://de.wikipedia.org/wiki/Backtracking
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (17-03-2008 um 17:45 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 17-03-2008, 18:22   #5 (permalink)
Nagelneuer User
 
Benutzerbild von hazy fantazy
 
Registriert seit: Dec 2005
Beiträge: 924
Ich habe vor einiger Zeit auch schon mal ein bißchen danach gegooglet. Es gab damals ein Open Source Paket, auf das sich alle anderen bezogen hatten. Ich weiss leider nicht mehr welches es war, aber das kriegst du bestimmt schnell selbst heraus. Da kannst du dir bestimmt was abschauen.
__________________
The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D
hazy fantazy ist offline   Mit Zitat antworten
Alt 17-03-2008, 18:40   #6 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Ein erster Schritt könnte sein, sich erstmal zu allen leeren Feldern zu merken, welche Zahlen nicht direkt auszuschließen sind, (Zeile, Spalte, Block)
Damit wiederum kannst du dir dann wiederum weitere Schlüsse überlegen, beispielsweise, wenn in einem Block die 3 nur an zwei Feldern stehen kann, und diese Felder in einer Zeile / Spalte sind, dann kann in dieser Zeile / Spalte keine weitere 3 stehen.
Wenn man sich da einige Beispiele aufmalt, kann man sicher viele solche Regeln finden.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 17-03-2008, 19:12   #7 (permalink)
Rc-freak
 
Benutzerbild von Domsi
 
Registriert seit: Sep 2004
Ort: Steiermark (Ö)
Beiträge: 1.152
hm...

Danke euch.

Da waren jetzt einige brauchbare Vorschläge dabei. Ich werde einfach mal solche Sudokus generieren und dann austesten was wäre wenn. Und mit den "alten Hilfsmitteln" Stift und Papier das ausprobieren wie ich es dem Computer mitteilen kann.

(Eigentlich ist das Programmieren von Sudoku, wie das Lösen von Sudokus, man muss logisch denken und man trainiert seine "Sudoku-Fähigkeiten")

Naja ich werde mich hier dann mal versuchen. Wenn ich eine weitergekommen bin werde ich mich wieder melden.

Aber trotzdem schon mal, danke für eure Antworten.

Lg, Domsi
__________________
Für Rechtschreibfehler haftet meine Tastatur.

Frühstücken tun alle (Nutella)

http://www.dominik-klein.at|Einfache Flashanfängertuts|Geburtstagsreminder

lg, Domsi
Domsi ist offline   Mit Zitat antworten
Alt 19-03-2008, 12:54   #8 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
ich probier nie

also man kann doch jedes ohne probieren direkt lösen.
wenn man z.b. durch ausschließen nciht weiterkommt guckt man nach
spalten bzw. reihen dort müssen ja auch alle zahlen von 1-9 vorkommen
und dann guckt man wieder was wo hinkann.

wenn 2 zahlen möglich sind geht man eben so 2-3 schritte mit der zahl im
kopf weiter und schaut ob die möglich ist.

also ich hab noch nie mit bleistift daneben geschrieben...is doch voll blödi :P ^^

vllt müsstest du erstmal eine computerlösung anbieten können bei jedem
von dir generierten sudoku. dann kannst du doch anstatt es rückwärts zu
bearbeiten einfach vorwärts gehen und an gewissen stellen zahlen wegnehmen, wo du weißt das kann man normal logisch lösen, da der computer es über diesen weg ja nach den normalen regeln macht?
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 19-03-2008, 14:49   #9 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.649
Vielleicht hilfts dir ja
http://www.spiegel.de/wissenschaft/m...488244,00.html
__________________
we will stop enhancing the truth in 3, 2, ...
SpecOps-12 ist offline   Mit Zitat antworten
Alt 19-03-2008, 15:22   #10 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von _crypto_ Beitrag anzeigen
ich probier nie ... wenn 2 zahlen möglich sind geht man eben so 2-3 schritte mit der zahl im kopf weiter und schaut ob die möglich ist.
eine originelle interpretation von "nicht probieren" :-)))


--------------------
und wikipedia ist immer gut, wenn man eine erklärung haben möchte
http://de.wikipedia.org/wiki/Sudoku
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (19-03-2008 um 15:24 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 19-03-2008, 15:32   #11 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
Zitat:
Zitat von hgseib Beitrag anzeigen
eine originelle interpretation von "nicht probieren" :-)))
im sinne von mit bleistift und so
damit versaut man doch alles wenns dann nicht klapt
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 23-03-2008, 22:41   #12 (permalink)
?-Developer
 
Registriert seit: Jul 2004
Ort: Zuchwil (CH)
Beiträge: 903
Wie gut ist deine Sudoku-Löser-Funktion? Denn du musst zuerst ein
Sudoku per Programmierung lösen können, bevor du den Generator
richtig nutzen kannst
__________________
Nur tote Fische schwimmen mit dem Strom
silentx ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele