AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Sudoku Löser
Thema durchsuchen
Ansicht
Themen-Optionen

Sudoku Löser

Ein Thema von simonko · begonnen am 7. Jun 2006 · letzter Beitrag vom 8. Okt 2006
Antwort Antwort
Seite 1 von 3  1 23      
simonko
Registriert seit: 2. Jun 2005
Hier ein einfacher Sudoku Löser in C gschrieben. Er liest die Werte aus einer txt datei ein und gibt sie in einer anderen aus. Ich hab andere Lösungen hier gesehen, und hab mich aufgeregt, dass die
objektorientierung alles so kompliziert macht.

MFG
Angehängte Dateien
Dateityp: txt input_212.txt (315 Bytes, 102x aufgerufen)
Dateityp: c sudoku_817.c (2,6 KB, 62x aufgerufen)
Dateityp: exe sudoku_151.exe (23,4 KB, 95x aufgerufen)
 
omata

 
Delphi 7 Enterprise
 
#2
  Alt 7. Jun 2006, 19:26
Hallo simonko,

schönes Programm. Etwas unschön ist der harte Programmabsturz, wenn die Input.txt-Datei nicht da ist. Und sonst ist das wie gehabt. Bei folgender Vorgabe braucht dein Solver wie viele andere eben etwas länger...

1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0
0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 0
0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 | 0
0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0
0 | 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0
0 | 0 | 0 | 0 | 0 | 0 | 7 | 0 | 0
0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 0
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9

schade, es geht auch schneller. siehe hier

Aber trotzdem

MfG
Thorsten
  Mit Zitat antworten Zitat
simonko
 
#3
  Alt 7. Jun 2006, 19:30
naja es geht eigentlich um die 2 hauptfunktionen und nicht um die benutzerschnittstelle...
du kannst aber gern alle fehler die dumme benutzer machen könnten abfangen.. ich hab anderes zu tun
  Mit Zitat antworten Zitat
simonko
 
#4
  Alt 7. Jun 2006, 19:33
@Omata eigentlich müsste es ja schneller gehen, wenn ich das sudoku einfach drehe, weil du hast ja am ende mehr zahlen reingemacht. dann sind alle kombinationen die er am anfang rechnet umsonst.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#5
  Alt 7. Jun 2006, 19:35
So wie ich den Code interpretiere, löst er nur eindeutige Sudokus. Wenn es mehrere Lösungen gibt, wird der nicht funktionieren, oder?
Manuel Eberl
  Mit Zitat antworten Zitat
simonko
 
#6
  Alt 7. Jun 2006, 19:37
Doch es funktioniert. Er nimp dabei die erste lösung auf die er kommt.
wenn du das exit(0) entfernst und bei der datei anstatt write append
nimmst würde er alle sudokus reinschreiben. das kann aber gefährlich werdn
wenn du nur ein paar zahlen vorgibst dann gibt es sehr viele lösungen und die
ausgabedatei wird hunderte von MB gros.
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#7
  Alt 7. Jun 2006, 19:39
@simonko: ja natürlich könntest du es drehen. Nur das Programm müsste dann so schlau sein und das vorher wissen. Das Programm soll es ja lösen und nicht du.

@3_of_8: Wenn es mehrere Lösung gibt, wird bei der ersten gültigen aufgehört - das ist doch völlig ausreichend
  Mit Zitat antworten Zitat
simonko
 
#8
  Alt 7. Jun 2006, 19:41
ja dann muss man eben eine funktion schreiben die es dreht. es ist doch nicht so schwer
zu ermitteln wo am meisten werte eingetragen wurden. oder?
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#9
  Alt 7. Jun 2006, 19:48
Backtracking?
Manuel Eberl
  Mit Zitat antworten Zitat
simonko
 
#10
  Alt 7. Jun 2006, 19:49
ja
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz