Closed Vermeille closed 7 years ago
I started a fork earlier today where I'm just putting some comments around everything (mapping the README to the bits of the code it's relevant to, annotating the closures, etc). I'm not aiming to refactor it because I haven't written any C# before, but if anyone wants to collaborate on informal docs I'd be happy to. I am trying to get to the point where I understand it well enough to write a Python port. https://github.com/margaret/WaveFunctionCollapse/tree/docs
Agreed -- some of the variables can be inferred fairly easily upon inspection (FMX
(width), FMY
(height), T
(number of patterns/combinations), N
(sample size)), but others are harder, like stationary
, periodic
, and propagator
. Would be great to get some comments on those 😄
margaret , that's really nice. Correcting the formatting is something that would be a first good step to make it a little more pleasant, but, sadly, not more meaningful. The two majors big steps I see are: 1) renaming variables so that they bare some more meaning, and 2) splitting the code into more smaller functions with a meaningful name.
What's the scope of the work you're doing? I could help you informally or continue where you would stop. Somewhat amusingly, I'm planning to do a talk about clean code for students of my school, that could be a case study!
@Vermeille Hi! What lines have the wrong indentation?
@nanodeath
stationary
is a probability distribution that WFC reads from a sample or a tiles data file. It describes probabilities of each tile to be placed on the observation step.
periodic
is a boolean variable which tells if the output should be periodic or not.
propagator
contains information about which tiles/patterns agree with each other when placed nearby.
I'll link build instructions from the readme. Closing.
Hello,
The source code is seriously unreadable:
Those point are seriously hindering the amazing work that this algorithm is. No one is able to understand such code. It's even hard to make use of it.
I can help with formatting, but not refactoring since I obviously can't understand what's going on.