Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions src/InteractiveEvolve.js
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ let WriterManager = ({index, cons, setCons, texts, setTexts, categories, user, s
<div class="smallTooltip">
<button className="lockButton" onClick={deleteWriter}><img src={"./icons/lock.png"} width="30" height="30"/></button>
<span class="tooltiptext">
<p>Remove hint Lock</p>
<p>Unlock hint for generator</p>
</span>
</div>

Expand Down Expand Up @@ -234,16 +234,16 @@ let ConstraintWriter = ({cons, setCons, texts, setTexts, categories, user, sessi
}

return <div>
<h2>Included Hints <div class="tooltip"> &#40; ? &#41;
<h2>Hints in Selected Puzzle <div class="tooltip"> &#40; ? &#41;
<span class="tooltiptext">
<p>These are the hints are not in the current puzzle, but will be included in all puzzles when you generate the next round.</p>
<p>These are the hints in the currently selected puzzle. Lock hints to enforce them to be included in the next round of generated puzzles.</p>
</span>
</div></h2>
<p>No generated puzzle added. Select a puzzle or generate the next round.
</p>
<h2>Not Included <div class="tooltip"> &#40; ? &#41;
<h2>Hints for Next Round <div class="tooltip"> &#40; ? &#41;
<span class="tooltiptext">
<p>These are the hints are not in the current puzzle, but will be included in all puzzles when you generate the next round.</p>
<p>These hints are not in the current puzzle, but will be included in all puzzles when you generate the next round.</p>
</span>
</div></h2>

Expand All @@ -253,7 +253,7 @@ let ConstraintWriter = ({cons, setCons, texts, setTexts, categories, user, sessi
<div class="smallTooltip">
<button className='smallButton' onClick={add_filter}>+</button>
<span class="tooltiptext">
<p>Add new hint lock</p>
<p>Add new locked hint</p>
</span>
</div>

Expand Down Expand Up @@ -317,7 +317,7 @@ let ShowAndEdit = ({generatedPuzzle, cons, setCons, texts, setTexts, categories,
<div class="smallTooltip">
<button className="unlockButton" onClick={() => lock_hint(grammar,generatedPuzzle.hints[idx] )}><img src={"./icons/lock.png"} width="30" height="30"/></button>
<span class="tooltiptext">
<p>Add hint lock</p>
<p>Lock hint for generator</p>
</span>
</div>

Expand Down
20 changes: 10 additions & 10 deletions src/home.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export default HomePage = ({user, publicKey, mode}) => {

<p>This is Puzzle Garden. This is an experimental tool for generating logic grid puzzles. With this interface you will be able to create, play, and share your own logic grid puzzles. </p>

<p>If this is your first time, or if you need a refresher, using this interface, please refer to the tutorial page at the top menu. This will guide you with the basics you need to get started making puzzles.</p>
<p>If this is your first time, or if you need a refresher on using this interface, please refer to the tutorial page at the top menu. This will guide you with the basics you need to get started making puzzles.</p>



Expand All @@ -74,24 +74,24 @@ export default HomePage = ({user, publicKey, mode}) => {
<p>We will update this page as we get questions. Please contact shyne.f@northeatern.edu with any questions.</p>

<h2>What is a logic grid puzzle?</h2>
<p>Logic grid puzzles are a particular type puzzle that started out as pen and paper puzzles. You may also have heard them referred to as "Zebra" or "Einstein" puzzles.
In this puzzles you have to use a series of hints to determine if entities are related ("O") or not related ("X"). Each entity belongs to exactly one other entity in each of the categories.
For example in our murder mystery example scenario you have to determine where each suspect was at each time. If you have the hints "Ms. Scarlet is the study", you can place an "O" in the grid space between Ms.Scarlet and Study, a "X" for all other suspects in the study, and a "X" for all other rooms Ms. Scarlet could have been in. </p>
<h2> Why are the hints not always grammatically correct</h2>
<p>In our tool hints are not actually written in English, but in a format that represents the logical relationship between entities. This serves as the easiest way to communicate between human authors/readers and the generation system. Hints can be manually edited once they are liked. </p>
<p>Logic grid puzzles are a particular type of puzzle that started out as pen and paper puzzles. You may also have heard them referred to as "Zebra" or "Einstein" puzzles.
In these puzzles you have to use a series of hints to determine if entities are related ("O") or not related ("X"). Each entity belongs to exactly one other entity in each of the other categories.
For example, in our murder mystery example scenario you have to determine where each suspect was at each time. If you have the hint "Ms. Scarlet is the study", you can place an "O" in the grid space intersecting Ms.Scarlet and Study, a "X" for all other suspects in the study, and a "X" for all other rooms Ms. Scarlet could have been in. </p>
<h2> Why are the hints not always grammatically correct?</h2>
<p>In our tool hints are not actually written in English, but in a format that represents the logical relationship between entities. This serves as the easiest way to communicate between human authors/readers and the generation system. A puzzle's hints can be manually edited once it is "liked". </p>
<h2>Why does it take a long time to generate puzzles?</h2>
<p>The larger the puzzle, the more time it will take to generate. In most cases you just need to be patient, especially if you have puzzles larger than 3 categories or 4 entities per category. Really large puzzle might cause a server timeout, and may never generate.
<p>The larger the puzzle, the more time it will take to generate. In most cases you just need to be patient, especially if you have puzzles larger than 3 categories or 4 entities per category. Really large puzzles might cause a server timeout, and may never generate.

If task other then generations (e.g. logging in, posting a puzzle) please contact us at shyne.f@northeastern.edu.
If tasks other than generations fail (e.g. logging in, posting a puzzle) please contact us at shyne.f@northeastern.edu.
</p>

<h2>How are puzzles generated?</h2>
<p>Puzzles are generated using a type of algorithm called a Genetic Algorithm.
This program <b>does not</b> use generative AI (such as Chat-GPT), and does not use any training data.
Instead puzzles are first randomly generated, by creating lists of clues. These puzzles are then optimized until they become solvable. This generator creates many puzzles but only keeps the puzzle with the smallest hint size for puzzles with the same difficulty and solution. </p>
Instead puzzles are first randomly generated, by creating lists of hints. These puzzles are then optimized until they become solvable. This generator creates many puzzles but only keeps the puzzles with the smallest number of hints for puzzles with the same difficulty and solution. </p>

<h2>How does this project help research?</h2>
<p>We are looking how to best make interfaces where humans work with a computational system. By trying our system and providing feedback, you are helping other designers better create tools like this in the future.</p>
<p>We are looking into how to best make interfaces where humans work with a computational system. By trying our system and providing feedback, you are helping other designers better create tools like this in the future.</p>

</div>

Expand Down
2 changes: 1 addition & 1 deletion src/puzzleTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ let CheckSolution = ({puzzle, solution}) => {
if (isSolved(puzzle, solution)){
setContent(<p>The solution is correct</p>)
}else{
setContent(<p>One or more marks or missing or incorrect</p>)
setContent(<p>One or more marks is missing or incorrect</p>)
}
}

Expand Down
Loading