-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/dev' into native-binary-windows
# Conflicts: # bin/main/edu/rpi/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml # bin/main/edu/rpi/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.6.0.20150526-2032.xml # bin/main/edu/rpi/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml # bin/main/edu/rpi/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml # bin/main/edu/rpi/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml # bin/main/edu/rpi/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml # bin/main/edu/rpi/legup/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml # bin/main/edu/rpi/legup/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.6.0.20150526-2032.xml # bin/main/edu/rpi/legup/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml # bin/main/edu/rpi/legup/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml # bin/main/edu/rpi/legup/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml # bin/main/edu/rpi/legup/legup/config # bin/main/edu/rpi/legup/legup/main_window.fxml # bin/main/edu/rpi/legup/log4j2.properties # bin/main/edu/rpi/legup/puzzle/skyscrapers/TODO.md # bin/main/edu/rpi/legup/puzzle/skyscrapers/rules/TODO.md # bin/main/log4j2.xml # src/main/java/edu/rpi/legup/Legup.java # src/main/java/edu/rpi/legup/app/GameBoardFacade.java # src/main/java/edu/rpi/legup/ui/lookandfeel/components/MaterialTextFieldUI.java
- Loading branch information
Showing
417 changed files
with
7,930 additions
and
5,161 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
name: Bug report | ||
description: Create a report to help us improve | ||
title: "[BUG] <description>" | ||
labels: [ bug ] | ||
body: | ||
- type: textarea | ||
id: description | ||
attributes: | ||
label: "Description" | ||
description: "A clear and concise description of what the bug is." | ||
placeholder: "If your issue relates to a particular puzzle, make sure to remember to add the corresponding label to the issue." | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: reproduce | ||
attributes: | ||
label: "Steps to Reproduce" | ||
description: "Steps to reproduce the behavior:" | ||
placeholder: "1. Go to '...' | ||
2. Click on '....' | ||
3. See error" | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: expected_behavior | ||
attributes: | ||
label: "Expected Behavior" | ||
description: "A clear and concise description of what you expected to happen." | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: screenshot | ||
attributes: | ||
label: "Screenshots" | ||
description: "If applicable, add screenshots to help explain your problem." | ||
placeholder: "![DESCRIPTION](LINK.png)" | ||
validations: | ||
required: false | ||
- type: textarea | ||
id: files | ||
attributes: | ||
label: "Puzzle Files" | ||
description: "If applicable, add any puzzle files to help explain your problem." | ||
placeholder: You will need to zip up the puzzle files before you can attach them to your issue. | ||
validations: | ||
required: false | ||
- type: textarea | ||
id: additional_context | ||
attributes: | ||
label: "Additional Context" | ||
description: "Add any other context about the problem here." | ||
validations: | ||
required: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: Enhancement request | ||
description: Improve an already-existing feature | ||
title: "[ENHANCEMENT] <description>" | ||
labels: [ enhancement ] | ||
body: | ||
- type: textarea | ||
id: current_behavior | ||
attributes: | ||
label: "Describe the current behavior of what you're trying to improve. If your enhancement request related to a problem, please also describe the problem." | ||
description: "A clear and concise description of the current behavior and problem." | ||
placeholder: "Ex. I'm always frustrated when [...]" | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: solution | ||
attributes: | ||
label: "Describe the improvement you'd like" | ||
description: "A clear and concise description of what you want to happen." | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: alternatives | ||
attributes: | ||
label: "Describe alternatives you've considered" | ||
description: "A clear and concise description of any alternative solutions or features you've considered." | ||
validations: | ||
required: false | ||
- type: textarea | ||
id: additional_context | ||
attributes: | ||
label: "Additional Context" | ||
description: "Add any other context or screenshots about the feature request here." | ||
validations: | ||
required: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
name: Feature request | ||
description: Suggest an idea for this project | ||
title: "[FEATURE] <description>" | ||
<<<<<<< HEAD | ||
labels: [ new feature ] | ||
======= | ||
labels: [ enhancement, new feature ] | ||
>>>>>>> b28ba6c38166142ecd457ffee2797fffc89a51b4 | ||
body: | ||
- type: textarea | ||
id: description | ||
attributes: | ||
label: "Is your feature request related to a problem? Please describe." | ||
description: "A clear and concise description of what the problem is." | ||
placeholder: "Ex. I'm always frustrated when [...]" | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: solution | ||
attributes: | ||
label: "Describe the solution you'd like" | ||
description: "A clear and concise description of what you want to happen." | ||
validations: | ||
required: true | ||
- type: textarea | ||
id: alternatives | ||
attributes: | ||
label: "Describe alternatives you've considered" | ||
description: "A clear and concise description of any alternative solutions or features you've considered." | ||
validations: | ||
required: false | ||
- type: textarea | ||
id: additional_context | ||
attributes: | ||
label: "Additional Context" | ||
description: "Add any other context or screenshots about the feature request here." | ||
validations: | ||
required: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
## Description | ||
|
||
<!-- Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change. --> | ||
|
||
<!-- If your pull request is not related to a particular issue, delete the statement below. --> | ||
Closes #(issue) | ||
|
||
## Type of change | ||
|
||
- [ ] Bug fix (non-breaking change which fixes an issue) | ||
- [ ] New feature (non-breaking change which adds functionality) | ||
- [ ] Enhancement (improvement to an already existing feature) | ||
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) | ||
|
||
## How Has This Been Tested? | ||
|
||
<!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. --> | ||
|
||
## Checklist: | ||
|
||
- [ ] I have performed a self-review of my code | ||
- [ ] I have commented my code, particularly in hard-to-understand areas | ||
- [ ] I have made corresponding changes to the documentation (if applicable) | ||
- [ ] My changes generate no new warnings | ||
- [ ] I have added tests that prove my fix is effective or that my feature works | ||
- [ ] New and existing unit tests pass locally with my changes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,45 +1,80 @@ | ||
# Legup | ||
### A Project by Dr. van Heuveln | ||
Logic Engine for Grid-Using Puzzles - a better way to learn formal logic | ||
<p align="center"> | ||
<img src="https://user-images.githubusercontent.com/46334090/180582690-a65937c6-6766-40f7-a21e-c1d8bbb3b26a.png"></a> | ||
<br /> | ||
<br /> | ||
<a href="https://choosealicense.com/licenses/gpl-3.0/"><img src="https://img.shields.io/badge/license-GPL%203.0-red" alt="GPL 3.0 License"></a> | ||
<a href="https://discord.gg/Ym5p6zUQjE"><img src="https://img.shields.io/discord/882735190785527848.svg?label=discord&color=yellow&logo=discord" alt="Discord"></a> | ||
<br /> | ||
<i>A tool to teach formal logic using puzzles</i> | ||
</p> | ||
<hr /> | ||
|
||
## Goal | ||
The main goal of the Legup is to provide a better interface for students to learn basic principles of logical reasoning. | ||
Legup (**L**ogic **E**ngine for **G**rid-**U**sing **P**uzzles) is a better way to learn formal logic. It was created by [Dr. Bram van Heuveln](https://science.rpi.edu/itws/faculty/bram-van-heuveln), whose goal for this project is to provide a better interface for students to learn the basic principles of logical reasoning. | ||
|
||
> Note: A web version of Legup ([Bram-Hub/LegupWeb](https://github.com/Bram-Hub/LegupWeb)) based on this app version of Legup is actively being developed. However, it is very much in the early stages of development and will not be ready for general use for quite a while. Contributions to both versions of Legup are greatly appreciated. If you are interested in using Legup for educational purposes, please use this app version. | ||
## Table of Contents | ||
- [Background](#background) | ||
- [Use Cases](#use-cases) | ||
- [For Educators](#for-educators) | ||
- [For Students](#for-students) | ||
- [Documentation](#documentation) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
|
||
## Background | ||
Dr. van Heuveln has taught logic courses on a frequent basis for the past 15 years, and noted that a good number of students struggle with the systems of modern formal logic that were developed in the late 1800's and early 1900's, and that have been universally used in logic courses since. These traditional systems use abstract linear symbol strings such as `(P & Q) -> (R v S)`, and deploy even more abstract rules such as & Elim to infer new symbol strings from old ones, thus engaging the user in logical reasoning. | ||
|
||
This project brings about the idea that there are more pedagogically effective ways for students to learn the basic and important principles of logical reasoning. | ||
|
||
Legup uses a more visual representation in a more concrete and engaging environment. These and other features of the Legup interface are suspected to have several advantages over more traditional interfaces in terms of learning logic. | ||
|
||
## Use Cases | ||
The Legup interface allows the user to solve different types of grid-based logical puzzles. Probably the best known example of such a puzzle is the popular Sudoku puzzle, but there are many other types of puzzles that are based on the principle of filling in cells of a square or rectangular grid with different kinds of objects. In all cases, the user is provided certain clues that will force a unique configuration of objects in the grid. These types of puzzles are often advertised as "logic puzzles," and are claimed to train one's logical mind as, using deduction, users should be able to infer which object goes where. | ||
|
||
The Legup interface allows the user to solve different types of grid-based logical puzzles. Probably the best known example of such a puzzle is the popular Sudoku puzzle, but there are many other types of puzzles that are based on the principle of filling in cells of a square or rectangular grid with different kinds of objects. In all cases, the user is provided certain clues that will force a unique configuration of objects in the grid. These types of puzzles are often advertised as 'logic puzzles', and are claimed to train one's logical mind as, using deduction, users should be able to infer which object goes where. | ||
So, how does the Legup interface differ from online platforms for grid-based games? The most important difference is that the Legup interface requires the user to explicitly indicate their logical reasoning. Thus, solving the puzzle due to some lucky guesses is no longer an option! The interface will congratulate the user less on the fact that the user was able to solve the puzzle, but more on how the user solved the puzzle. This is essential to logic. Logic is not about the truth or the correct or best answer, but about deductive implication and valid inference. What follows from what, and why? | ||
|
||
So, how does the Legup interface differ from online platforms for grid-based games? The most important difference is that the Legup interface requires the user to explicitly indicate their logical reasoning. Thus, solving the puzzle due to some lucky guesses is no longer an option! The interface will congratulate the user less on the fact that the user was able to solve the puzzle, but more on how the user solved the puzzle. This is essential to logic: logic is not about the truth or the correct or best answer, but about deductive implication and valid inference: what follows from what, and why? | ||
Legup also provides a single interface that is capable of supporting many different types of puzzles. Since most of the interface remains the same, however, users wil start to recognize certain similarities between the different puzzles. In particular, since they have to explicitly state their reasoning, users should start to see strong similarities in their logical reasoning patterns from puzzle to puzzle, is the very basis of the abstract logical reasoning principles taught in traditional logic courses. However, rather than being "thrown in the water" with abstract principles based on obscure symbols, users instead are dealing with a concrete, fun, and engaging logic puzzle. As such, Legup aims to give its users a "leg up" when it comes to the understanding of logic. | ||
|
||
Legup also provides a single interface that is capable of supporting many different types of puzzles. Since most of the interface remains the same, however, users wil start to recognize certain similarities between the different puzzles. In particular, since they have to explicitly state their reasoning, users should start to see strong similarities in their logical reasoning patterns from puzzle to puzzle, is the very basis of the abstract logical reasoning principles taught in traditional logic courses. However, rather than being 'thrown in the water' with abstract principles based on obscure symbols, users instead are dealing with a concrete, fun, and engaging logic puzzle. As such, LEGUP aims to give its users a 'leg up' when it comes to the understanding of logic. | ||
## For Educators | ||
If you are an educator interested in using Legup, go to the [releases page](https://github.com/Bram-Hub/Legup/releases) to download the latest release of Legup. You can have your students download Legup from the same page. Some sample puzzle files can be found in the [puzzle files folder](https://github.com/Bram-Hub/Legup/tree/master/puzzles%20files). | ||
|
||
## Gradle | ||
## For Students | ||
If you are a student interested in learning the basics of logic, Legup is a great way for you to get started. If your instructor is using Legup in the classroom and you are looking for extra practice, you can reference the sample puzzle files can be found in the [puzzle files folder](https://github.com/Bram-Hub/Legup/tree/master/puzzles%20files) to get more practice. | ||
|
||
This project uses Gradle for dependency management. | ||
Additionally, if you are interested in computer science and programming, please consider contributing to Legup! Not only would it a great way to practice logical reasoning, but it is also a great way to dip your toes into open source software and contributing to open source projects. | ||
|
||
## XML Board Specifications | ||
## Documentation | ||
Documentation is actively being worked on on the [Legup wiki](https://github.com/Bram-Hub/Legup/wiki). | ||
|
||
An example for the Battleship puzzle demonstrates the proper format for XML files to be read in. Puzzles have particular x and y values associated with a location of each puzzleElement. The board size dictates the square size of the board. Legup supports many puzzles, such as Light Up, Nurikabe, Short Truth Table, etc., with others such as Battleship, Skyscrapers, and Tree Tent actively in development. | ||
Documentation is very much in the early stages, and we would greatly appreciate anyone who is willing to help write and structure the documentation. Currently, the priority is to write detailed documentation on how Nurikabe works, as it is the puzzle that is the most developed within Legup. | ||
|
||
## Contributing | ||
All contributions to Legup will be greatly appreciated. Currently, we need the most help in the following areas: | ||
- Documentation | ||
- Test suites | ||
|
||
Please read our [contribution guidelines](CONTRIBUTING.md) for more detailed guidelines on how to contribute to Legup. | ||
|
||
## License | ||
Legup is licensed under the GPL-3.0 license, which can be viewed [here](LICENSE). | ||
``` | ||
<edu.rpi.legup.Legup> | ||
<edu.rpi.legup.puzzle qualifiedClassName="edu.rpi.legup.puzzle.battleship.Battleship"> | ||
<board size="10"> | ||
<puzzleElement> | ||
<puzzleElement value="1" x="2" y="0"/> | ||
<puzzleElement value="1" x="6" y="0"/> | ||
<puzzleElement value="2" x="1" y="1"/> | ||
<puzzleElement value="-1" x="8" y="1"/> | ||
<puzzleElement value="-1" x="2" y="2"/> | ||
</puzzleElement> | ||
</board> | ||
</edu.rpi.legup.puzzle> | ||
</edu.rpi.legup.Legup> | ||
``` | ||
Element values are dependent on the type of `edu.rpi.legup.puzzle`. | ||
Legup: A Better Way to Learn Formal Logic | ||
Copyright (C) 2022, the Legup Developers | ||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
the Free Software Foundation, either version 3 of the License, or | ||
(at your option) any later version. | ||
This program is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
GNU General Public License for more details. | ||
You should have received a copy of the GNU General Public License | ||
along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
``` | ||
|
||
Some of the icons used in Legup were taken from or derived from the icons found on https://fonts.google.com/icons, which | ||
is licensed under the [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html). |
Oops, something went wrong.