SukakuExplainer
mojo
SukakuExplainer | mojo | |
---|---|---|
28 | 51 | |
57 | 2,654 | |
- | 0.4% | |
0.0 | 7.9 | |
over 2 years ago | 26 days ago | |
Java | Perl | |
GNU Lesser General Public License v3.0 only | Artistic License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SukakuExplainer
-
I am proud to say that I finally decided to be brave and use a pen to complete my puzzles. I got majority of them incorrect.
The SE rating system is based on a list of Sudoku techniques that have been ranked (somewhat subjectively) by how difficult they are to spot and apply. A computer solver uses that list and repeatedly applies the easiest available move from the list to the puzzle until it is solved. The difficulty of the hardest individual step un that path then determines the difficulty of the complete puzzle. Here is the list in question: https://github.com/SudokuMonster/SukakuExplainer/wiki/Difficulty-Ratings-in-Sukaku-Explainer-v1.17.8
-
How can I host a perl based website on a vps?
The most complex function is handling the hint generation. Because I'm not smart enough to code the hint generation myself, the hard work is done using a Java tool called Sukaku Explainer which I use to generate one complete solution path for the whole puzzle in HTML. My Perl functions feed a queue of requests into a single instance of the Java program (my 1GB VPS couldn't handle more than one). The HTML is then munged into JSON like this for consumption by the frontend. The JSON is also saved to a file, so that if two people ask for hints for the same puzzle Nginx can directly return the contents of that file - that way the function only gets called if the file does not already exist.
-
This diabolical puzzle was the daily on the Sudoku app today
Sudoku/Sukaku Explainer Rating, it's the second very established difficulty metric for Sudoku puzzles. It ranges from 1.0 (only Singles) to 12.7 (“Dynamic Forcing Chains(+Dynamic Forcing Chains) in Pencilmark Sudoku”).
-
Sudoku Techniques listed by frequency…
If you always find out that the next step that you didn't spot is a WXYZ-Wing, that most likely means that you know all the techniques the computer solver uses for the difficulty level you currently use, except for WXYZ-Wings. I was at this exact point for quite some time (my subreddit flair references that struggle), and I took it as a challenge to get good at ALS-XZ-based techniques. The underlying reason was just the ordering of techniques used for SE rating (used in SudokuExchange.com for grading puzzles) though, not some truth inherent to Sudoku in general.
- Can't Get Enough Sudoku Puzzles With XY and XYZ Wings
-
Are there apps more difficult than others?
There are extreme differences between different apps. To compare difficulty, I will use the (well established) SE rating system as described here. It rates the hardest single step a sophisticated computer needed in order to solve a puzzle on a scale from 1.0 (easiest, only one empty cell left in a row/column/box) to 12.7 (basically impossible for humans, crazy chains within chains). The “Hard” puzzle of the New York Times is typically rated between 3.0 and 3.4.
-
Sudoku Explainer download?
Sukaku Explainer is a straight extension of the original Sudoku Explainer that also supports Sukaku (Pencilmark) puzzles. The JAR file from the “Releases” page can be started directly if you have Java installed.
-
What is everyone's favorite app?
SudokuExchange.com is always worth considering. It has all the advantages you mention about Sven's Sudoku Pad, plus a large collections of puzzles from trivial to brutally hard. The difficulty ratings and hints are delegated to Sukaku Explainer, which is a very mature and highl-quality solver. Some not-so-obvious features:
-
I am stuck! What technique can I use?
Wow, this is a very tough puzzle, especially for the “Expert” category. Which app is this from? The computer solver Sukaku Explainer needs multiple Forcing Chains and ALS-Wings to solve it and rates the hardest step 7.2 SE (out of 13). A normal “Expert” puzzle is not expected to require any technique above 5.5, and most never touch 4.5: https://github.com/SudokuMonster/SukakuExplainer/wiki/Difficulty-Ratings-in-Sukaku-Explainer-v1.17.8
-
Thought I was making the final moves, then I got stuck. Some advice would be apreciated !
If you want to avoid all Wings and harder techniques, you can hover over the yellow line under each puzzle on SudokuExchange.com to see its SE Rating. Everything below 4.0 (around the middle of the “Hard” section) is guaranteed not to require any Wings.
mojo
- Mojolicious
-
CSS in Perl
Initial thoughts
-
Perl 5.38 Released
If you end up doing web development, check out Mojolicious:
https://mojolicious.org/
-
How can I host a perl based website on a vps?
If you choose to go down the Mojolicious road, there's lots of deployment information and guides in the Mojolicious Cookbook.
-
Mojo may be the biggest programming language advance in decades
I guess this will make it harder to search for Mojo(licious)-related stuff. 😩
-
Getting the result/reject values from a Mojo::Promise using async subs
But if I want the return value of 'test_p' or the error message 'This is an error', I can't seem to figure that out. I tried looking at the promise tests (https://github.com/mojolicious/mojo/blob/main/t/mojo/promise.t) but that didn't seem to work either.
-
Choose boring tools
Several! The 3 big players in order of release are Catalyst, (released in 2005), Dancer2 (Dancer was first released in 2009, but went through a complete re-write as Dancer2 around 2013), and Mojolicious (released in 2010).
-
Guidance on Building a Web Application in Perl
This project sounds to me like the perfect excuse to learn Mojolicious if you're interested in converting your scripts into a web application using Perl.
-
i3mojo -- an i3status replacement in Perl
Awesome! I still use Perl on a pretty regular basis both for work and fun. I really enjoy it. Definitely take a look at Mojolicious if you haven't already. It's primarily focused on being a web framework (both server and client), but it's nicely modular so you can use bits and pieces of the stack. In i3mojo, I used the Mojo::IOLoop event loop, Mojo::Base as a base class system, and Mojo::UserAgent as a web client for some plugins.
-
The beauty of CGI and simple design
Last time I used Perl for anything web it was via https://mojolicious.org/
It even does event-based and websockets
What are some alternatives?
ns-usbloader - Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files.
Flask - The Python micro framework for building web applications.
sudoku-exchange-puzzle-bank - Data set of Sudoku puzzles
go - The Go programming language
fsss2 - Fast Simple Sudoku Solver 2
node - Node.js JavaScript runtime ✨🐢🚀✨
Hodoku2 - An updated version of HoDoKu in a new repo
Django - The Web framework for perfectionists with deadlines.
LANraragi - Web application for archival and reading of manga/doujinshi. Lightweight and Docker-ready for NAS/servers.
Express - Fast, unopinionated, minimalist web framework for node.
CPython - The Python programming language
Laravel - Laravel is a web application framework with expressive, elegant syntax. We’ve already laid the foundation for your next big idea — freeing you to create without sweating the small things.