Skip to content

Commit

Permalink
Fixed conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
mattsweet417 committed Aug 5, 2022
2 parents 0047382 + b28ba6c commit 18130cc
Show file tree
Hide file tree
Showing 1,828 changed files with 10,617 additions and 16,151 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Bug report
description: Create a report to help us improve
title: "[BUG] <description>"
labels: [bug]
labels: [ bug ]
body:
- type: textarea
id: description
Expand Down
4 changes: 4 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
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
Expand Down
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<!-- 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)
Closes #(issue)

## Type of change

Expand Down
34 changes: 23 additions & 11 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,34 @@ name: Java CI with Gradle

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build -x test
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build -x test

checkstyle:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: gradlew executable
run: chmod +x gradlew
- name: Run checkstyle
run: ./gradlew check
147 changes: 143 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,144 @@
.gradle/*
# Created by https://www.toptal.com/developers/gitignore/api/intellij+all,gradle,java
# Edit at https://www.toptal.com/developers/gitignore?templates=intellij+all,gradle,java

### Intellij+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### Intellij+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.

.idea/*
out/*
build/*
.DS_Store

!.idea/codeStyles
!.idea/runConfigurations

### Java ###
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

### Gradle ###
.gradle
**/build/
!src/**/build/

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Avoid ignore Gradle wrappper properties
!gradle-wrapper.properties

# Cache of project
.gradletasknamecache

# Eclipse Gradle plugin generated files
# Eclipse Core
.project
# JDT-specific (Eclipse Java Development Tools)
.classpath

# End of https://www.toptal.com/developers/gitignore/api/intellij+all,gradle,java

**/.DS_Store
gradle/wrapper/gradle-wrapper.properties
13 changes: 13 additions & 0 deletions .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/codeStyles/codeStyleConfig.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 0 additions & 10 deletions .idea/misc.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

52 changes: 43 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,63 @@
# Legup

### A Project by Dr. van Heuveln

Logic Engine for Grid-Using Puzzles - a better way to learn formal logic

## Goal
The main goal of the Legup is to provide a better interface for students to learn basic principles of logical reasoning.

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.
The main goal of the Legup is to provide a better interface for students to learn basic principles of logical reasoning.

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.
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.
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.

## Gradle

This project uses Gradle for dependency management.

## XML Board Specifications

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.
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.

```
<edu.rpi.legup.Legup>
<edu.rpi.legup.puzzle qualifiedClassName="edu.rpi.legup.puzzle.battleship.BattleShip">
<edu.rpi.legup.puzzle qualifiedClassName="edu.rpi.legup.puzzle.battleship.Battleship">
<board size="10">
<puzzleElement>
<puzzleElement value="1" x="2" y="0"/>
Expand All @@ -42,4 +70,10 @@ An example for the Battleship puzzle demonstrates the proper format for XML file
</edu.rpi.legup.puzzle>
</edu.rpi.legup.Legup>
```

Element values are dependent on the type of `edu.rpi.legup.puzzle`.

## Licensing

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).
3 changes: 0 additions & 3 deletions bin/main/edu/.idea/.gitignore 2

This file was deleted.

Empty file removed bin/main/edu/rpi/.metadata/.lock 2
Empty file.
Loading

0 comments on commit 18130cc

Please sign in to comment.