Thursday, 7 June 2012

Coding Practice: EnCharter



I've been meaning to start learning Python for a while, but as I've been short of an idea for something that I actually wanted to code, it's been very difficult getting past the initial "Hello World!" stage. That all changed recently - I realised that what I would like to make is some charting software for lace. So far the ideal feature list is a bit ambitious (especially when compared with what I've actually managed to do) and I am not entirely sure if there's actually any call for it outside my personal use. So, here's what I've managed to get so far:


  • A grid that you can resize to represent the size of a charted lace repeat
  • When you click on grid squares they cycle from blank to 'INC' to 'DEC' (placeholder graphics at the moment though)
  • A UI window that has the grid resize controls on it and a button called 'evaluate' that doesn't do anything (yet)
Things that still need to go in before I can declare it EnCharter v0.1:
  • The logic that computes whether your repeat obeys loop conservation logic (ie, does the lace pattern have the correct number of stitches per row to make it actually knittable)
  • More types of increase and decrease and their appropriate symbols
  • A way to display row-by-row stitch counts and any possible conflicts generated by the entered stitch pattern.
You're not getting any screenshots of it in action until it looks less like arse.


ETA: Some graphical work just got done. So proud.

ETA2: I think that'll do for now. I've been working on the loop conservation logic, which is causing me to rethink the chart square addressing and how I'm handing what properties stitch types have (at the moment they've just got a position in a vector which is used to determine their loop number) 


Also, the keyboard control for changing stitches doesn't work any more. When I introduced the controls for resizing the repeat grid, some priority thing went wrong so you can never get into keyboard control mode. Bum.

1 comment:

Meg said...

oooh. If you need any testers, let me know!