Piero V.

Risolviamo i Sudoku... con C++

Da quando ho imparato a fare i Sudoku mi sono sempre chiesto come fare un programma che li risolvesse 😊

La cosa non è difficile, soprattutto per quelli semplici, che ero già riuscito a risolvere con PHP 😊

Tuttavia non ero andato più avanti perché non avevo considerato la risoluzione tramite brute force, invece recentemente, anche per consolidare la mia conoscenza di C++, mi sono messo e ho fatto questo programmino.

In pratica l’algoritmo di risoluzione si divide in due parti: la prima con un loop crea le possibili soluzioni per ogni cella e le inserisce fino a quando il sudoku non viene più modificato. Quindi se ci sono celle ancora vuote (con possibili soluzioni) tenta il brute force, altrimenti esce. Il brute force è implementato tramite ricorsione: prima ordino le soluzioni in modo da partire dalla cella con meno soluzioni possibili, quindi prendo le soluzioni una ad una e provo a vedere se impostandole ce la faccio a risolvere il sudoku. Quando ce l’ho fatta termino il programma.

Se volete il sorgente, eccolo qui: sudoku.cpp.

L’ho provato su Linux e andava.

Penso che si possa migliorare il programma ma per il momento mi va bene così 😊

Aggiornamento 31/05/2012: aggiunto un meccanismo di controllo, perché prima con certi sudoku difficili il brute force falliva.

Plugin RewriteURLs (v2.3.2) [Flatpress]

English

Hi, I’ve corrected another small bug of the RewriteURLs plugin.

It didn’t handle correctly the feed of comments.

License: GNU GPL v2

Download

Italiano

Ho corretto un altro piccolo bug del plugin RewriteURLs.

Non prendeva i feed dei commenti.

Licenza: GNU GPLv2

Download

Plugin Mobile (v1.0.1) [Flatpress]

English

I’ve written an update for the Mobile Plugin.

Changelog:

  • Cleaned the code
  • W3C CSS Validator now loads the desktop version of the site
  • Added the mobile Smarty block that is displayed only in mobile devices
  • Now the mobile site can be viewed also on normal sites
  • Added a new link: enable plugin mobile only for this page ($plmobilep)

Remember to escape HTML links to avoid XSS attacks.

I would like to add a Smartphone site different form the mobile one but I should study better the mobile useragents, so I decided to release these fixes for the moment.

License: GNU GPL v2

Download

Italiano

Ho scritto un aggiornamento per il Plugin Mobile.

Cambiamenti:

  • Ripulito il codice
  • Il validatore CSS del W3C ora carica la versione Desktop anziché quella mobile
  • Aggiunto il blocco mobile per i template che può essere usato, per esempio, per visualizzare un messaggio di avvertimento ai browser mobili quando guardano la versione desktop
  • La versione mobile ora può essere raggiunta anche dai browser normali
  • Aggiunto il link per abilitare il plugin mobile per la pagina corrente ($plmobilep)

Ricordatevi di fare l’escape HTML ai link per evitare gli attacchi XSS.

Licenza: GNU GPL v2

Download

VDFN KISS

Come potete osservare, VDFN ha una nuova veste 😌 .

Volevo un qualcosa che rispondesse al concetto di KISS, ovvero, in informatica, Keep It Simple Stupid.

Avevo notato che tra il gradiente e tra l’immagine trasparente l’altra grafica era difficile da usare anche per i dispositivi mobili.

Così sono tornato al blu e ho rimosso quasi tutte le trasparenze (si salvano solo quella nei blockquote che sono fatte comunque con i CSS3).

Gli angoli arrotondati sono fatti con CSS3, ma non penso che compromettano l’usabilità del sito 😉

Fatemi sapere cosa ne pensate.

Plugin RewriteURLs (v2.3.1) [Flatpress]

English

I’ve made a mistake when I added the hooks for the next/previous page URL, so there was only the next page link.

Now I’ve fixed it. Sorry 😭

License: GNU GPL v2

Download

Italiano

Aggiungendo gli hook per l’URL della pagina successiva/precedente ho commesso un errore e veniva sempre fuori pagina successiva.

Ora ho corretto. Mi scuso per l’errore commesso.

Licenza: GNU GPL v2

Download