Coder Social home page Coder Social logo

carsonfb / nonogram-solver Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 61 KB

This is a FOSS program written in Python for solving nonogram puzzles. Nonograms are a type of logic puzzle wherein a list of numbers are given for each row and column signifying which cells of a grid to fill in and which to leave blank.

Home Page: https://carson.ballweb.org/software

Python 61.43% CSS 2.22% JavaScript 32.28% HTML 4.07%
python js javascript html css puzzle solver nonogram

nonogram-solver's Introduction

About Me

Personal

Wow, what a broad question, I'm not sure where to begin.

I love animals and have had (or my family when I was growing up), birds (a dove and parakeet), goldfish (a couple lived to about 20 years old), a tarantula (G. porteri), dogs, and a cat. I rehome spiders who are in dangerous (for them) locations in my house to more beneficial places for everyone involved.

I have a wide variety of interests including listining to music of many different genres (both recorded and live), writing and playing music (though I am good at neither), watching movies (mostly comedy, horror, sci-fi/fantasy, and documentaries), reading (mostly non-fiction these days), playing video games, puns, walking in forest preserves, and programming.

I started typing programs from books and magazines into my family's Commodore VIC-20 when I was 4, and stared writing my own programs in Commodore BASIC when I was 8, though none of those are what anyone would consider a masterpiece. I moved on to GW-BASIC, Pascal, C, and x86 Aseembly language over the next several years. Because of this interest, I was occasionally being paid in pizzas to write small utilities for a tiny company that I knew the owner of in junior high and highschool. I got my first real programming job while in college.

Which brings me to...

Professional

I have been a full-time professional programmer for 25 years and, in that time, have used a number of languages (though some for only a short while):

  • Assembly Language (x86)
  • Bash (Linux, UNIX)
  • Batch (DOS/Windows)
  • C
  • C++
  • C#
  • COBOL
  • CSS
  • HTML
  • JavaScript
  • Perl
  • PHP
  • Python
  • SQL (Oracle, MySQL, SQL Server, Postgres)
  • VBA
  • VBScript
  • Visual Batch Script

I've also used a number of other languages non-professionally:

  • AutoIt
  • BASIC (various flavors)
  • FORTRAN
  • Java
  • Pascal

These days, in my full-time employment, I mostly use Perl, Python, SQL, CSS, JavaScript, and HTML with a bit of Bash here and there.

Programming Interests

I find a number of topics (in both my professional as well as my hobby programming) interesting. These include (in no particular order):

  • programatic image manipulation

  • automation

  • data collection and analysis

  • machine learning and artificial intelligence

  • puzzle solving

My desire is to write software that helps people in their daily lives or helps society as a whole.

And that brings me to...

Software I've released

My most recent side project, Last Listened, is a program that creates an image with the details of the last songs the user listened to for placing on a website, audio program, etc. Currently, it supports Last.fm, but it is extensible via plugins to support any number of services, local databases, Excel files, or whatever the user needs. This combines my interests of image manipulation as well as data collection and analysis.

Another program that I've released plays the 1980s game "Dragon's Lair". I've always liked that game, but have never been good at it so I decided to work smarter, not harder and create a bot in AutoIt to play it for me.

Nonogram Solver, as its name would imply, solves nonogram puzzles. Mostly, this was written to see if I could come up with an algorithm to solve puzzles like this. I'm sure there are probably more efficient algorithms out there for solving nonograms and some of the code could be improved by using libraries such as pandas, but this was more of quick proof of concept than a "best in show" solver. As small code changes could have huge impacts on the functionality, code tests are ran on each start up to verify that the logic still works correctly. The interface is written in HTML, CSS, and JS and uses webview to communicate between the Python and the interface.

GoldFire Redux is a Python port of a demo I wrote in Assembly language and C in my teens. Most of the keyboard commands from the original have been implemented. Also, all palette files from the original have been included. Additional palette files can be created by the end-user (as in the original).

FakeSysKey is a small C# program that imitates the Windows utility SysKey for use in scambaiting. SysKey creates a system password (distinct from the login password) and makes a computer unusable without the password. Scammers, at least a few years ago, were running SysKey on unspecting users' computers and extorting them for the password. Scambaiters could replace to replace the official version on their VM (or actual computer for those who live dangerously) with this look-alike. This had two benefits. The first is that this imitation does not actually encrypt anything. The second is that, upon submitting the form, FakeSysKey always reports that the passwords do not match and displays the password in plain text. If the scammer has locked anyone's computer, and the scambaiter has their contact information, they may be able to use this password to help the victim recover their computer. At least one major YouTube scambaiter had been using this program. This has probably been the biggest help to society of any of my side projects.

I have a number of other projects in the works as well as old projects that are no longer useful, but may be of interest to someone. Be sure to check back so you don't miss anything.

Contact

LinkedIn button YouTube button GMail button

nonogram-solver's People

Contributors

carsonfb avatar samej71 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

samej71

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.