Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

For working with ripple effect #2

Closed

Conversation

david-bakin
Copy link

Jonathan,

This pull request is FYI, mainly. I wanted to use DlxLib to solve Ripple Effect puzzles - DlxLib can't quite handle that since I need what Knuth calls secondary columns in a generalized cover problem (pg. 17 of his paper).

I started to modify DlxLib ... and got carried away. In addition to adding primary/secondary columns I pretty much changed the entire O-O structure of the data matrix itself, adding special Root and Row objects to the Column and Data objects. Yet at the end of the day your demos work unchanged (demo 3 - the one that shows pentominoes fitting the 8x8 board incrementally as the search progresses is especially nice).

So ... this pull is for your entertainment/information. Though if you have suggestions for me, I'd be happy to hear them.

…s well

as Column.  Also, using interfaces for (some amount of) clarity.  None of these
interfaces or classes are actually hooked up yet.  Also, declaring
DlxLibTests.dll a 'friend' of DlxLib.dll, so it can use types declared
internal to DlxLib.dll
…stead.

Made ColumnObject and HeaderObject abstract to ensure they're never instantiated.
between the data object interfaces and between them
and the data object class tree.
…vailable,

plus change visibility to protected internal for testing.  Fix their implementations.  Also,
more coverage of unit tests of RootObject and RowObject.
…s I've broken

creating a general matrix.  Nearly complete code coverage on relevant new code
in DataObject, ElementObject, HeaderObject, ColumnObject, RowObject, and
RootObject.
which all DataObjects will know.  Also add factory methods to RootObject
for all objects.
100% coverage of object classes (so far).
CreateEmptyMatrix to handle secondary columns.  AddMatrix and AddRow
implemented.  ToCoordinates and ToArray implemented to read out data
elements.
@taylorjg
Copy link
Owner

Hi - I'm am unfamiliar with the whole pull request process so I'll have to do some reading to get up to speed. I'm in the middle of starting a new job and also doing an online course (Principles of Reactive Programming) so I'm a bit busy at the moment. But I'll get back to you when I can. Thanks for your patience.

@david-bakin
Copy link
Author

No rush at all! Like I said, for your entertainment/amusement mainly.
Good luck on your new job. -- David

On Sat, May 16, 2015 at 4:29 AM, Jonathan Taylor notifications@github.com
wrote:

Hi - I'm am unfamiliar with the whole pull request process so I'll have to
do some reading to get up to speed. I'm in the middle of starting a new job
and also doing an online course (Principles of Reactive Programming) so I'm
a bit busy at the moment. But I'll get back to you when I can. Thanks for
your patience.


Reply to this email directly or view it on GitHub
#2 (comment).

@taylorjg
Copy link
Owner

BTW, do you have a working example of a Ripple Effect puzzle solver?

@david-bakin
Copy link
Author

Nope - it's in progress though! A day or two should do it.

On Sat, May 16, 2015 at 11:00 AM, Jonathan Taylor notifications@github.com
wrote:

BTW, do you have a working example of a Ripple Effect puzzle solver?


Reply to this email directly or view it on GitHub
#2 (comment).

@taylorjg
Copy link
Owner

Cool - I'd be interested to see it.
Cheers,
Jon

@taylorjg
Copy link
Owner

taylorjg commented Oct 1, 2015

Hi David,

I have decided not to merge in this pull request because of the large size/scope of the changes. However, I'd like to thank you for making me aware of secondary columns. I have now added support for them to DlxLib in version 1.3 which I released last night. I added some more Solve overloads with an additional parameter, numPrimaryColumns. I then made a small internal tweak and it seems to work fine.

FYI, I have created a couple more demo programs that make use of secondary columns:

Regards,
Jon.

@taylorjg taylorjg closed this Oct 1, 2015
@david-bakin
Copy link
Author

thanks! I'll look at them

On Thu, Oct 1, 2015 at 11:15 AM, Jonathan Taylor notifications@github.com
wrote:

Hi David,

I have decided not to merge in this pull request because of the large
size/scope of the changes. However, I'd like to thank you for making me
aware of secondary columns. I have now added support for them to DlxLib in
version 1.3 which I released last night. I added some more Solve
overloads with an additional parameter, numPrimaryColumns. I then made
a small internal tweak and it seems to work fine.

FYI, I have created a couple more demo programs that make use of secondary
columns:

Regards,
Jon.


Reply to this email directly or view it on GitHub
#2 (comment).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants