{"id":123,"date":"2008-11-20T01:00:53","date_gmt":"2008-11-20T00:00:53","guid":{"rendered":"http:\/\/www.devtom.de\/?p=123"},"modified":"2020-02-27T09:41:49","modified_gmt":"2020-02-27T08:41:49","slug":"sudoku","status":"publish","type":"post","link":"https:\/\/devtom.de\/?p=123","title":{"rendered":"Sudoku"},"content":{"rendered":"<p><a href=\"https:\/\/www.devtom.de\/wp-content\/uploads\/2011\/04\/sudoku_thumb.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-124\" title=\"sudoku_thumb\" src=\"https:\/\/www.devtom.de\/wp-content\/uploads\/2011\/04\/sudoku_thumb.gif\" alt=\"\" width=\"147\" height=\"199\"><\/a>In meiner Freizeit l\u00f6se ich gerne <a href=\"http:\/\/de.wikipedia.org\/wiki\/Sudoku\" target=\"_blank\" rel=\"noopener noreferrer\">Sudoku<\/a>-R\u00e4tsel und daher stammt die Idee ein Programm zu entwickeln, das diese Zahlenr\u00e4tsel ausf\u00fcllen kann. Nach dem c\u2019t Programmierwettbewerb hatte ich damit wieder eine neue Aufgabe gefunden, f\u00fcr die ich eine L\u00f6sung implementieren konnte.<\/p>\n<p>Dieses Mal habe ich in Java programmiert und zun\u00e4chst mit einem Konsolenprogramm begonnen, in dem ich die Regeln zum Ausf\u00fcllen eines Sudoku implementiert habe. Anschlie\u00dfend habe ich eine grafische Oberfl\u00e4che zur Visualisierung des Sudoku geschrieben und sp\u00e4ter so erweitert, dass der Nutzer direkt Ziffern eingeben kann.<!--more--><\/p>\n<p>Leichte Sudokus lassen sich durch Anwendung des Ausschlussverfahrens l\u00f6sen. Man findet Ziffern, die nur an einer Stelle innerhalb eines Blocks auftreten k\u00f6nnen. Durch die schrittweise Vervollst\u00e4ndigung des Sudoku kann man weitere Schlussfolgerungen treffen, bis man das R\u00e4tsel gel\u00f6st hat. Dieses Ausschlussverfahren verwendet sog. analytisch-systematische Basismethoden. Bei schweren Sodukus findet man durch Anwendung dieses Verfahrens keine eindeutige L\u00f6sung, so dass man das Feld durch Ausprobieren vervollst\u00e4ndigen muss.<\/p>\n<p>Mit Papier und Stift kann ich schwere Sudokus nicht l\u00f6sen, da mir das Ausprobieren zu aufw\u00e4ndig ist. Auch mein Sudoku-Programm konnte keine schweren R\u00e4tsel l\u00f6sen, da es nur analytisch-systematische Methoden angewandt hat.<\/p>\n<p>Zur L\u00f6sung von schweren Sudokus kann man rekursive Verfahren verwenden, die mit Hilfe von <a href=\"http:\/\/de.wikipedia.org\/wiki\/Backtracking\" target=\"_blank\" rel=\"noopener noreferrer\">Backtracking<\/a> alle m\u00f6glichen Zahlenkombinationen systematisch durchgehen, bis sie eine L\u00f6sung gefunden haben. Im Netz habe ich eine Beschreibung eines solchen Verfahrens entdeckt und in mein Programm eingebaut, so dass jetzt alle Arten von Sudokus gel\u00f6st werden k\u00f6nnen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In meiner Freizeit l\u00f6se ich gerne Sudoku-R\u00e4tsel und daher stammt die Idee ein Programm zu entwickeln, das diese Zahlenr\u00e4tsel ausf\u00fcllen kann. Nach dem c\u2019t Programmierwettbewerb hatte ich damit wieder eine neue Aufgabe gefunden, f\u00fcr die ich eine L\u00f6sung implementieren konnte. &hellip; <a href=\"https:\/\/devtom.de\/?p=123\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[98],"tags":[95,96],"class_list":["post-123","post","type-post","status-publish","format-standard","hentry","category-programming","tag-java","tag-sudoku"],"_links":{"self":[{"href":"https:\/\/devtom.de\/index.php?rest_route=\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devtom.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devtom.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devtom.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devtom.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=123"}],"version-history":[{"count":1,"href":"https:\/\/devtom.de\/index.php?rest_route=\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":352,"href":"https:\/\/devtom.de\/index.php?rest_route=\/wp\/v2\/posts\/123\/revisions\/352"}],"wp:attachment":[{"href":"https:\/\/devtom.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devtom.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devtom.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}