Hacker
27.06.2006, 13:38:26
Ponieważ mi się nudziło wpadłem na pomysł napisania rozwiązywacza sudoku (jak się potem okazało w sieci jest takich programów sporo). No ale cóż... Proszę o ocenę
OpisWpisujesz liczby, które masz podane w sudoku do formularza w odpowiednie miejsca.
Klikasz ok.
Program po chwili powinien dać wynik (pomimo wielu operacji na tablicach, a ja myślałem, że będzie to trochę mielił).
Wyświetlone zostanie rozwiązane sudoku razem z logiem z rozwiązywania.
LinkiRozwiązywacz sudokukod źródłowy 1kod źródłowy 2
dr_bonzo
27.06.2006, 13:43:56
Nawet nie wiem jak to ma dzialac? Daj troczeopisu na stronie
TO tylko sprawdza czy wpisano prawidlowo liczby?
Czy rozwiazuje sudoku po wpisaniu wyjsciowych liczb?
Hacker
27.06.2006, 13:46:41
Rozwiązywacz - rozwiązuje
Po co opis wpisujesz i jazzzzzzda
siemakuba
27.06.2006, 15:17:10
jedno co musisz zrobić na pewno, to dodanie maxlength do inputów. Cóź to za sudoku, w którym mogę sobie wpisać w jedno pole np. 98234 ? :P
pozdr.
Nie działa ten twój skrypt ;]
Hacker
27.06.2006, 18:03:52
jak to nie działa??
Brałem najtrudniejsze zadanka ze stronek które znalazłem i działał...
Maxlength ok się zrobi
bim2
27.06.2006, 18:57:24
Mi też nie działa

Niemożliwe do wykonania
Taki pech, tobie rozwiązywał wszystko, a mi pierwszego lepszego nie mógł trzasnąć ;]
Przykład brałem z :
http://sudoku.friko.net/pl/Dokładnie taki:

W ogóle trochę mały ten skrypt, zwłaszcza że czasem zdarzają się przykłady gdzie trzeba założyć pewną odpowiedź i na jej podstawie sprawdzać dalej diagram itd... Nie każdy przykład da się rozwiązać samymi porównaniami.
tiraeth
27.06.2006, 19:31:14
Wziąłem pierwszy lepszy diagram
STĄD i zadziałało
TomASS
27.06.2006, 22:08:29
Na ostatnie wakacje był konkurs na rozwiązywanie SUDOKU, pomyśałem, okej - jestem programistą i napiszę sobie do tego skrypt, po co się męczyć. Okazało się to nie takie proste, otóż, w bardziej skomplikowanych przykładach, nie da się rozwiązać SUDOKU tylko przez same porównania. Próbowałem rozwiązać to poprzez "strzelanie" komputer w sytuacji patowej, wybiera jakąś liczbę i przeprowadza obliczenia, jeśli okazało się to niepoprawnym rozumowaniem to "strzela" dalej. Niestety ta metoda nie sprawdza się zawsze (podobnie jak Twój skrypt).
Ale chylę czoła, bo dużo sudoku można nim rozwiązać
Hacker
28.06.2006, 09:14:53
hmmm... dzięki tomASS zobaczę ten przykład i dopracuje skrypt... Mój skrypt opiera się tylko na logice
EDIT:
tes, to twoje sudoku nie ma jednoznacznego unikalnego rozwiązania

A takie sudoku to wedłud mnie jest do d**y
Wziąłem pierwsze lepsze.
Ale jak widzisz TomASS napisał to co ja o tych porównaniach.
W każdym razie powodzenia
Hacker
28.06.2006, 10:18:30
Dobra jak znajdę chwilę czasu dopiszę strzelanie w ostateczności...
Hmm... Dlaczego nikt nie komentuje kodu źródłowego? Czyżby nikomu nie chciało się wnikać w to jak to działa?
Jojo
28.06.2006, 11:17:07
Nie to żebym się czepiał ale ja ten kod gdzieś już widziałem... chociaż może tylko mi się zdaje...
Hacker
28.06.2006, 11:50:28
No, może widziałeś podobny kod, bo jak mówię potem się okazało, że sporo jest tego w sieci. Ale zapewniam ciebie, że ten kod jest w 100% napisany przeze mnie od zera
EDIT:
ufff...
Sprawdzcie nową wersję powinno rozwiązać WSZYSTKO
bim2
29.06.2006, 18:06:03
Cytat
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
Notice: Undefined offset: 0 in /home/hacker/ftp/sudoku/sudoku.php on line 160
I w dodatku nie rozwiazało. Były dwa okienka calkowcie puste ;P Brałem gre z :
http://sudoku.friko.net/pl/
Hacker
30.06.2006, 09:42:47
hmmm... ciekawe mógłbyś podać to sudoku??
bim2
30.06.2006, 16:33:22
Hacker
30.06.2006, 19:54:43
hmmmm... ciekawe tylko chyba się nie zrozumieliśmy...
Podaj cyfry albo przynajmniej z jakiego dnia było to sudoku...
Heh już ich nie mam

Sprawdzilem czy dziala i koniec. Losowałem tak aby były dwa puste okienka ;P. Wszedzie w twoim skrypcie zamiast liczb daly się 0
Hacker
1.07.2006, 12:52:52
hmmm...
To najprawdopodobniej było to.

Już naprawiłem sprawdź
EDIT
i znowu sudoku z wieloma rozwiązaniami...
I tera działa pięknie

GZ
Hacker
1.07.2006, 18:17:26
jak to wcale nie??
Podaj przykład... Albo chociaż screena daj.
TomASS
1.07.2006, 22:39:27
Tutaj ktoś uporał się z problemem rozwiązywania sudoku, które mają wiele rozwiązań.
Vengeance
1.07.2006, 22:46:25
Czy ja wiem, czy te "strzelanie" jest aż tak trudne w realizacji?
Sądze, że można rozwiązać to tak. Rozwiązywacz SUDOKU niech będzie klasą, która jako konstruktor przyjmuje tablicę dwuwymiarową odzwierciedlającą każde pole i przypisaną do niego liczbę.
Gdy okazuje się, że w polu mogą być np. 2 możliwości, następuje coś w rodzaju uruchomienia kolejnego wątku. Czyli skrypt tworzy 2 nowe obiekty rozwiązywacza SUDOKU podając im tablicę z liczbami które już odgadł + tymi dwoma możliwościami. I tak rekurencyjnie, aż któryś z rozwiązywaczy dojdzie do sedna sprawy tj. poprawnego wyniku.
Co prawda łatwo opisać, a pewnie trudniej skodzić - ale może pomysł się przyda. Rekurencja ot co.
Hacker
3.07.2006, 13:57:00
@vegance
Patrz na mój kod masz tam to samo tylko, że nie na obiektach rozwiązywacza tylko odpowiada za to funkcja randomize i tablica $backup ot co.
a jeżeli chodzi o "skodzenie" twojego pomysłu to w jakim chcesz języku Pascal, Delphi, C++, php, Java, JavaScript, a może asembler

?
Mój rozwiązywacz także mógłby podawać wszystkie rozwiązania ale było by to poprostu zbyt duże obciążanie serwera...
Vengeance
3.07.2006, 20:29:59
Ja do innych niż kochane php się nie dotykam ;P Ono mnie utrzymuje i go nie zdradze ;P
Hacker
26.03.2007, 11:57:42
Hmmm...
@Vegance ja się pytałem w czym chcesz takowy kod odemnie otrzymać...

@Vengeance Looknij, ostatnio mi się nudziło i zrodziło się coś takiego w Javie.
SolverGUISolverDzięki tiraeth. Ktoś testował??
tiraeth
26.03.2007, 15:49:28
W sumie nie odkopałeś tematu

Cytat
Ps. Sorry za dwa długie posty - niestety nie mam już serwera, na który mógłbym to wrzucić.
phpfi.comwrzuć tam i zedytuj posta
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.