-
Notifications
You must be signed in to change notification settings - Fork 15
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
Allow 'alternative' letters #93
Comments
This seems like a useful feature. It will probably get used quite rarely, but I think it's worth adding, especially as it would not add too much code complexity. I'll add it, hopefully soon. Sometimes the alternative letters for cells go together. In the sense that the crossword might have two distinct solutions (here's the famous example). I'll probably add support for that scenario too. |
This is what I'm implementing (excerpt from my change to README.md). PTAL and comment here if you think it needs tweaking. @criptik Alternative lettersSometimes you would want to permit alternative spellings of some words. You
Both S and Z will be allowed by "Check this" and "Check all!", in If an exolve-alternatives section has more than one cell, then it is treated
The above says that there is an alternative solution to the puzzle, in which 1a Revealed in-clue solutions will include all possible solutions for a clue. |
Sounds reasonable although I would have to see the user interface when you
get that implemented.
…-- Tom
On Tue, Dec 17, 2024 at 6:51 PM Viresh Ratnakar ***@***.***> wrote:
This is what I'm implementing (excerpt from my change to README.md). PTAL
and comment here if you think it needs tweaking. @criptik
<https://github.com/criptik>
Alternative letters
Sometimes you would want to permit alternative spellings of some words. You
can do that by using one or more exolve-alternatives sections. Each such
single-line section has one or more space-separated entries that specify
alternative letters for specific cells (identified using the
extended chessboard notation
<#m_-1829017037450584286_extended-chessboard-notation>). Example:
exolve-width: 7
exolve-height: 3
exolve-grid:
IDOLISE
O.....V
UTILISE
exolve-alternatives: f1:Z
exolve-alternatives: r3c6:Z
Both S and Z will be allowed by "Check this" and "Check all!", in
IDOLISE/IDOLIZE and UTILISE/UTILIZE. Similarly, "Reveal this" and "Reveal
all!"
will not change any letter that the solver might have entered in a cell, if
it's listed as an alternative for that cell.
If an exolve-alternatives section has more than one cell, then it is
treated
as an all-or-nothing group. For example, if the above puzzle had this
additional line:
exolve-alternatives: r1c2:P r1c3:G r1c4:R r1c5:A r1c6:D r3c2:N r3c3:T r3c4:E r3c5:N r3c6:S
The above says that there is an alternative solution to the puzzle, in
which 1a
is INTENSE *and* 3a is UPGRADE. This can be used to craft puzzles that
might have
two (or more!) distinct solutions, such as this
famous example
<https://www.alaricstephen.com/main-featured/2017/7/3/the-clintonbobdole-crossword>
.
Note that every cell that is forced must be explicitly listed in a group,
if
it is also a part of another group. Thus, the r3c6 cell has to be included
in
the third exolve-alternatives line (even though it is S in both IDOLISE
and
INTENSE), to prevent it from being allowed to be Z when the INTENSE/UPGRADE
solution is used.
Revealed in-clue solutions will include all possible solutions for a clue.
The solutions where some exolve-alternatives groups are used will be
shown with a superscript that is a comma-separated list of all group
numbers
used in crafting that alternative. For example, 1a will show "IDOLISE,
IDOLIZE2, INTENSE3" and 3a will show "UTILISE,
UTILIZE1, UPGRADE3".
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACES2Z2GDRKV6PNH3X6KR7D2GDBKZAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJQGAYTSOBVHE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Thanks for looking into this.
…On Tue, Dec 17, 2024 at 10:30 PM criptik ***@***.***> wrote:
Sounds reasonable although I would have to see the user interface when you
get that implemented.
-- Tom
On Tue, Dec 17, 2024 at 6:51 PM Viresh Ratnakar ***@***.***>
wrote:
> This is what I'm implementing (excerpt from my change to README.md).
PTAL
> and comment here if you think it needs tweaking. @criptik
> <https://github.com/criptik>
> Alternative letters
>
> Sometimes you would want to permit alternative spellings of some words.
You
> can do that by using one or more exolve-alternatives sections. Each such
> single-line section has one or more space-separated entries that specify
> alternative letters for specific cells (identified using the
> extended chessboard notation
> <#m_-1829017037450584286_extended-chessboard-notation>). Example:
>
> exolve-width: 7
> exolve-height: 3
> exolve-grid:
> IDOLISE
> O.....V
> UTILISE
> exolve-alternatives: f1:Z
> exolve-alternatives: r3c6:Z
>
> Both S and Z will be allowed by "Check this" and "Check all!", in
> IDOLISE/IDOLIZE and UTILISE/UTILIZE. Similarly, "Reveal this" and
"Reveal
> all!"
> will not change any letter that the solver might have entered in a cell,
if
> it's listed as an alternative for that cell.
>
> If an exolve-alternatives section has more than one cell, then it is
> treated
> as an all-or-nothing group. For example, if the above puzzle had this
> additional line:
>
> exolve-alternatives: r1c2:P r1c3:G r1c4:R r1c5:A r1c6:D r3c2:N r3c3:T
r3c4:E r3c5:N r3c6:S
>
> The above says that there is an alternative solution to the puzzle, in
> which 1a
> is INTENSE *and* 3a is UPGRADE. This can be used to craft puzzles that
> might have
> two (or more!) distinct solutions, such as this
> famous example
> <
https://www.alaricstephen.com/main-featured/2017/7/3/the-clintonbobdole-crossword>
> .
> Note that every cell that is forced must be explicitly listed in a
group,
> if
> it is also a part of another group. Thus, the r3c6 cell has to be
included
> in
> the third exolve-alternatives line (even though it is S in both IDOLISE
> and
> INTENSE), to prevent it from being allowed to be Z when the
INTENSE/UPGRADE
> solution is used.
>
> Revealed in-clue solutions will include all possible solutions for a
clue.
> The solutions where some exolve-alternatives groups are used will be
> shown with a superscript that is a comma-separated list of all group
> numbers
> used in crafting that alternative. For example, 1a will show "IDOLISE,
> IDOLIZE2, INTENSE3" and 3a will show "UTILISE,
> UTILIZE1, UPGRADE3".
>
> —
> Reply to this email directly, view it on GitHub
> <
#93 (comment)>,
> or unsubscribe
> <
https://github.com/notifications/unsubscribe-auth/ACES2Z2GDRKV6PNH3X6KR7D2GDBKZAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJQGAYTSOBVHE>
> .
> You are receiving this because you were mentioned.Message ID:
> ***@***.***>
>
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD54ZS4PZ7ESNGMWYOGAGND2GDT4TAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJQGIZTOMBWGE>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I've finished implementing this. Still testing a bit more though. I'll probably check it in tomorrow. However, I've made the implementation available in my "dev" directory. You can try these examples or try making your own puzzles (and let me know if you find any issues or have any tweak-ideas!). https://viresh-ratnakar.github.io/dev/test-farrell-quantum.html I made some changes to the draft README (mainly added some details, but also added a couple of constraints). Here's the updated README section. Alternative lettersSometimes you would want to permit alternative spellings of some words. You
Both S and Z will be allowed by "Check this" and "Check all!", in If an exolve-alternatives section has more than one cell, then it is treated
Here, there is an alternative solution to the puzzle in which 1d is OAR and We disallow specifying the same cell in more than one The above way of specifying alternatives, with the non-duplicated-cell Revealed in-clue solutions will include all possible solutions for a clue.
As described in the above help-text, clicking on any variant will set We disallow using |
v1.59 has been checked in, and this is now supported as described above. |
Awesome, thanks!
…On Sun, Dec 22, 2024, 4:46 AM Viresh Ratnakar ***@***.***> wrote:
v1.59 has been checked in, and this is now supported as described above.
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD54ZS7Q4IW6WIS47ATIO332G2DABAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJYGM4TMMRVHA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I didn't get a chance to try this out, but I will try the verfsion
version. One note, when I tried
git pull origin master
followed by
git checkout dev
I did not see the new test files you mentioned (maybe they weren't added to
git at that point?). But as I say I will try the released version.
Wanted to also mention that I had seen this equally amazing Schrodinger
crossword a few years ago...
- Puzzle at https://pmxwords.com/2022-puzzle-12-whats-in-the-box/
- Solution at
https://pmxwords.com/2022-puzzle-12-whats-in-the-box-solution/
I'm sure that was a difficult one to construct!
…-- Tom Deneau
On Sat, Dec 21, 2024 at 3:56 PM Viresh Ratnakar ***@***.***> wrote:
I've finished implementing this. Still testing a bit more though. I'll
probably check it in tomorrow.
However, I've made the implementation available in my "dev" directory. You
can try these examples or try making your own puzzles (and let me know if
you find any issues or have any tweak-ideas!).
https://viresh-ratnakar.github.io/dev/test-farrell-quantum.html
https://viresh-ratnakar.github.io/dev/test-alternatives.html
https://viresh-ratnakar.github.io/dev/exolve-m.js
I made some changes to the draft README (mainly added some details, but
also added a couple of constraints). Here's the updated README section.
Alternative letters
Sometimes you would want to permit alternative spellings of some words. You
can do that by using one or more exolve-alternatives sections. Each such
single-line section has one or more space-separated entries that specify
alternative letters for specific cells (identified using the
extended chessboard notation
<#m_9075788059758232947_extended-chessboard-notation>). Example:
exolve-width: 7
exolve-height: 3
exolve-grid:
OXIDISE
U.....V
REALISE
exolve-alternatives: r1c6:Z
exolve-alternatives: r3c6:Z
Both S and Z will be allowed by "Check this" and "Check all!", in
OXIDISE/OXIDIZE (1a) and REALISE/REALIZE (3a). Similarly, "Reveal this" and
"Reveal all!" will not change any letter that the solver might have
entered in
a cell, if it's listed as an alternative for that cell.
If an exolve-alternatives section has more than one cell, then it is
treated
as an all-or-nothing group. For example, we can add this line to the above:
exolve-alternatives: r2c1:A r2c7:Y
Here, there is an alternative solution to the puzzle in which 1d is OAR
*and*
2d is EYE. This can be used to craft puzzles that might have
two (or more!) distinct solutions, such as this famous example
<https://viresh-ratnakar.github.io/test-farrell-quantum.html> by Jeremiah
Farrell.
We disallow specifying the same cell in more than one exolve-alternatives
section. The reason is to avoid the possibility of puzzles where the solver
may reach a dead-end conflict in choices from two groups. Dealing with such
conflicts would have required adding code complexity as well as user
interface
complexity.
The above way of specifying alternatives, with the non-duplicated-cell
constraint just described, means that you cannot specify more than one
alternative for a cell. We think that's reasonable, but if someone comes
up with an interesting puzzle in which more than one alternative is
warranted
for some cell, please let us know and we can consider supporting that
scenario.
Revealed in-clue solutions will include all possible solutions for a clue.
The solutions where some exolve-alternatives groups are used will be
shown with a superscript that is a comma-separated list of all group
numbers
used in crafting that alternative. For example, 1a will show "OXIDISE,
OXIDIZE2", and 3a will show "REALISE, REALIZE1".
The revealed in-clue solutions also show the following help-text when
hovered
over:
This is an alternative solution to the clue. Clicking on it
will set any currently visible letters in it to this variant. If
the setter has created an alternative solution group with more than one
cell (group numbers are shown in superscripts of solution variants)
then clicking will set all revealed visible letters in the group to
reflect this variant.
As described in the above help-text, clicking on any variant will set
all currently visible revealed cells to the values implied by the
alternatives groups used in that variant.
We disallow using exolve-alternatives when there ar diagramless cells or
when any cell does not have a solution. We disallow more than 3 distinct
groups
of alternatives within any single clue (as it's an unlikely scenario and
the
listing of all possible solutions would be too long).
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACES2Z5ZP2IVSFGIBYKAEB32GXPYRAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJYGI2TANBWGE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Viresh --
I tried the release version on the puzzle I was working on and I like it.
Thanks for putting this all together.
I noticed that if I try reveal cell on one of the two alternatives cells,
it shows the grid based alternative with no other notes, but I think that
is OK.
…-- Tom Deneau
On Sat, Dec 21, 2024 at 3:56 PM Viresh Ratnakar ***@***.***> wrote:
I've finished implementing this. Still testing a bit more though. I'll
probably check it in tomorrow.
However, I've made the implementation available in my "dev" directory. You
can try these examples or try making your own puzzles (and let me know if
you find any issues or have any tweak-ideas!).
https://viresh-ratnakar.github.io/dev/test-farrell-quantum.html
https://viresh-ratnakar.github.io/dev/test-alternatives.html
https://viresh-ratnakar.github.io/dev/exolve-m.js
I made some changes to the draft README (mainly added some details, but
also added a couple of constraints). Here's the updated README section.
Alternative letters
Sometimes you would want to permit alternative spellings of some words. You
can do that by using one or more exolve-alternatives sections. Each such
single-line section has one or more space-separated entries that specify
alternative letters for specific cells (identified using the
extended chessboard notation
<#m_9075788059758232947_extended-chessboard-notation>). Example:
exolve-width: 7
exolve-height: 3
exolve-grid:
OXIDISE
U.....V
REALISE
exolve-alternatives: r1c6:Z
exolve-alternatives: r3c6:Z
Both S and Z will be allowed by "Check this" and "Check all!", in
OXIDISE/OXIDIZE (1a) and REALISE/REALIZE (3a). Similarly, "Reveal this" and
"Reveal all!" will not change any letter that the solver might have
entered in
a cell, if it's listed as an alternative for that cell.
If an exolve-alternatives section has more than one cell, then it is
treated
as an all-or-nothing group. For example, we can add this line to the above:
exolve-alternatives: r2c1:A r2c7:Y
Here, there is an alternative solution to the puzzle in which 1d is OAR
*and*
2d is EYE. This can be used to craft puzzles that might have
two (or more!) distinct solutions, such as this famous example
<https://viresh-ratnakar.github.io/test-farrell-quantum.html> by Jeremiah
Farrell.
We disallow specifying the same cell in more than one exolve-alternatives
section. The reason is to avoid the possibility of puzzles where the solver
may reach a dead-end conflict in choices from two groups. Dealing with such
conflicts would have required adding code complexity as well as user
interface
complexity.
The above way of specifying alternatives, with the non-duplicated-cell
constraint just described, means that you cannot specify more than one
alternative for a cell. We think that's reasonable, but if someone comes
up with an interesting puzzle in which more than one alternative is
warranted
for some cell, please let us know and we can consider supporting that
scenario.
Revealed in-clue solutions will include all possible solutions for a clue.
The solutions where some exolve-alternatives groups are used will be
shown with a superscript that is a comma-separated list of all group
numbers
used in crafting that alternative. For example, 1a will show "OXIDISE,
OXIDIZE2", and 3a will show "REALISE, REALIZE1".
The revealed in-clue solutions also show the following help-text when
hovered
over:
This is an alternative solution to the clue. Clicking on it
will set any currently visible letters in it to this variant. If
the setter has created an alternative solution group with more than one
cell (group numbers are shown in superscripts of solution variants)
then clicking will set all revealed visible letters in the group to
reflect this variant.
As described in the above help-text, clicking on any variant will set
all currently visible revealed cells to the values implied by the
alternatives groups used in that variant.
We disallow using exolve-alternatives when there ar diagramless cells or
when any cell does not have a solution. We disallow more than 3 distinct
groups
of alternatives within any single clue (as it's an unlikely scenario and
the
listing of all possible solutions would be too long).
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACES2Z5ZP2IVSFGIBYKAEB32GXPYRAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJYGI2TANBWGE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Thanks! Yes, I think setters would not want to reveal the full "quantum" nature with just a single cell-reveal. Note that the alternative picked for revealing a cell would be the one consistent with any currently forced alternatives group (from another cell in the group having been filled already). |
sounds good to me...
…On Sun, Dec 22, 2024 at 1:37 PM Viresh Ratnakar ***@***.***> wrote:
Thanks!
Yes, I think setters would not want to reveal the full "quantum" nature
with just a single cell-reveal. Note that the alternative picked for
revealing a cell would be the one consistent with any currently forced
alternatives group (from another cell in the group having been filled
already).
—
Reply to this email directly, view it on GitHub
<#93 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACES2Z3PG7ZVOCCMM7Q5OVD2G4IILAVCNFSM6AAAAABTZSVS2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJYGU3TCNZWHA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Will close this bug tomorrow |
Some words have alternative spellings. (I am not expert on any language but examples could be gray/grey or show/shew etc ... correct me if wrong) In Sanskrit based words in Indian languages word like 'कोश' can be written either as 'कोश' or 'कोष' (meaning a collection or a treasury). The setter may wish to allow both the alternative letters as acceptable.
Is there any way to achieve this in exolve. If it is, pl let me know. If it is not there, I suggest you may allow '/' between alternative letters (like 'श/ष') so that both can be considered when evaluating.
Thanks
The text was updated successfully, but these errors were encountered: