GithubHelp home page GithubHelp logo

cs56-discretemath-towers-sierpinski's People

Contributors

ashedden avatar caitscarberry avatar carammelkamp avatar gonfunko avatar jaeaster avatar jstaahl avatar kjorg50 avatar mastergberry avatar pconrad avatar scottbishop avatar shadowaries avatar sierrasch avatar thisdotjacob avatar wmateer avatar wolfenbarger avatar

Stargazers

 avatar

Watchers

 avatar  avatar

cs56-discretemath-towers-sierpinski's Issues

Integrate the Color Picker GUI in with the SVG GUI

~depends #31

Integrate the color picker as part of the swing GUI. Launch the color picker with the press of a button within the GUI, and when the color picker is closed, re-create the output xml file and re-display it.

~estimated 250

Change size of Sierpiski's Triangle within GUI

Add the ability to change the number of disks in the Sierpinski's Triangle/ Towers of Hanoi display that you get with ant run from the GUI so you do not have to exit and re-enter the application. This should function similarly to how it does with the Pascal's triangle that you get from ant runPascal.

Improve project organization

Change package so it uses domain style naming. Create lib file with jar. Create build.xml instead of using netbeans generated build.xml.

~estimated 30

Backing-up a Screen in Color Picker

Currently, when the user runs "ant EX_DEF," a pop-up window will show. But if the user chooses the button "Choose New Scheme," a second pop-up window will show. If the user clicks on the "x" exit button on the pop-up, both pop-ups will close.

Implement a 'back' button to revert back to the first pop-up window, as well as control the functionality of the 'x' exit button to do the same.

~estimated 120

Add test files

There are currently no test cases for this project. Add unit tests for PascalTriangle and SierpinskiTriangle

200 points

Make appearance configurable

Allow custom attributes for SierpinskiTriangleBuilder such as side thickness, font, side color, image size, background-color, etc. Also handle / provide defaults for when these values are not set.

~estimated 50

Allow output image dimensions to be specified

Add size option to SierpinskiTriangleBuilder and use scaling to adjust to desired dimensions. Include parameters to command line call so that image size can be determined.

~estimated 25

Implement color picker in GUI

(5) Allow user to select colors in the GUI from a color picker, and then write those values back to the properties file.

~estimate: 120

Main entry point

Create a main entry page for the program so everything fits together better. This should function as something of a menu from which the user can navigate to all the current parts of the program and descriptions.

Create a swing GUI for the SVG triangle

Right now the only way to view the triangle produced by

ant run

is to open the output file in a web browser.

Create a swing GUI using some library for viewing HTML5 documents such as JavaFX which will display the xml file outputted by the program.
See: http://docs.oracle.com/javafx/2/swing/swing-fx-interoperability.htm

Your swing GUI should also include zoom buttons to allow the user to zoom as far in or out as they like (after all, we are working with Scalable Vector Graphics).

~estimated 300

Fix color scheme creater GUI

Currently the color scheme creator GUI (run using ant EX_GUI) is very confusing and not aesthetically pleasing. Fix the layout of the window to make it more logical, make the instructions clearer, and clean up the look of the window to make it more navigable and user friendly.

Redo row amounts of Pascal Triangle

Currently, to see a Pascal triangle with a different number of rows you must exit the program and rebuild with a new amount of rows. Fix this so the user can enter a number of rows in the GUI, click a button, and the new Pascal Triangle will replace the old one.

Implement properties file to store disk colors

(4) Use a "properties" file to allow the user to specify the colors for the disks by writing hex colors into the properties file.

Note: a "properties" file is a standard Java "thing"---use that interface.

~estimate: 120

Fix color picker GUI

Need to fix the layout of the color picker. Buttons should be put in a more sensible order and the GUI should be cleaned up so it's more obvious what the user should do.

Change Color Picker Window Setup

The color picker using "ant EX_DEF" currently has a gray background and simple color scheme. The buttons are a bit confusing as to make the user experience a little less seamless. Improve the graphics of the window to make it more aesthetically pleasing while maintaining functionality.

~estimated 120

Refactor SVG classes

Change algorithm so that SVDefinitions and SVUse classes are used to draw content once, instead of redrawing similar elements for each subs triangle.

~estimated 75

Update Color Picker Program

Right now, the color picker program run with

ant EX_DEF

has 5 color selections to choose from. There appears to be some slight typos with the name and associated colors. For example, choosing the "Winter" color theme appears to actually result in the Rainbow theme. The "Rainbow" color theme results in a red/orange/yellow theme which doesn't seem to be "Rainbow."

In addition to the issue above, add in 5 new, interesting color schemes.

~estimated 100

Make sure that S.java doesn't throw an exception with main is run with no arguments.

You always need a

if (args.length != EXPECTED_VALUE_GOES_HERE) {
System.out.println("Usage: blah blah blah");
System.exit(1);
}

when you are using args[0], args[1], etc.

Fix this.

~estimated 120

(the 120 I took out for having not done this the first time.)

Also: add the echos that you have in the help target into the run target as well. :-)

Fix the vertical alignment of the disks on each peg

Within each set of towers the disks do not align properly in a vertical fashion. It seems that closer to the center of the entire triangle the alignment is more true. However, outwards towards the edges it gets worse.

Variable Size Pascals Triangle

Add functionality to the Pascal Triangle portion of the program so that the user can input their desired size of the triangle and the image will be displayed as desired.

Remove the issue of overlapping towers

When the user runs the program with a number of disks greater than 3, there are points on the triangle that towers will overlap with each other. The problem does not seem to get worse with more disks (the overlap past 3 disks remains constant). Figure out a way to remove this overlap possibly by repositioning the render location of the towers.

Improve appearance

Make disks look nicer and numbers easier to read by adding a background circle of white inside each disks. Make disks larger and allow font to be changed easily in one place.

Create a background for towers so they look better and are easier to read. Make background with opacity so they do not take over the entire triangle. Include a border and border radius.

~estimated 60

Update Pascal's Triangle GUI

The image of Pascal's Triangle currently has a gray background and simple color scheme. Improve the graphics of the image to make it more aesthetically pleasing.

~estimated 120

Sierpiski Triangle Drawing Swing application

Goal 1: Write a Java class with a method that

n, the number of disks
colors, a java.util.ArrayList of size n
width width and height in pixels
Will draw on the screen in a Swing gui a representation of diagrams similar to those shown in the linnks above (which were hand drawn.)

~estimate: 360

For now, these can be hard coded, though they should be in one place in the code so they can be easily changed:

edgefont a font specification for the edge labels
diskfont a font specification for the disk labels

Pascal's Triangle Swing GUI

There are some interesting relationships between Pascal's Triangle, Sierpinski's Triangle, and the Tower of Hanoi.

For Pascal's Triangle, if every number were in a square and we were to shade in that square if the number were odd, we would observe a pattern that is the Sierpinski's Triangle.
See link:
https://www.zeuscat.com/andrew/chaos/pascal.sierpinski.clear.gif

Another relation in Pascal's Triangle is the sum of the terms in each row of the triangle.
Simply put: the sum of the numbers in the nth row minus 1 == the total number of moves required to move an ordered stack of nth discs from one column to another.
(Note: The starting row in Pascal's Triangle is the 0th row)
Example:
If we had 0 discs, we need 0 moves. ((1) - 1)
If we had 1 disc, we need 1 move. ((1+1) - 1)
If we had 2 discs, we need 3 moves. ((1+2+1) - 1)
If we had 3 discs, we need 7 moves. ((1+3+3+1) - 1)

Create a Swing GUI to observe this phenomenon.

~estimated 250

Modify the color picker to actually change the color scheme of the SVG output

Right now the color picker program, run with

ant EX_DEF

or

ant EX_GUI

does not change the color scheme of the outputted SVG image.

You will notice that there is a file named colors.properties in the root directory of the project. If the hex color code values there are modified before the program is run with

ant run

then you will notice a change in the color scheme of the outputted SVG image.

Modify the color picker program to save to this colors.properties file and change the color scheme of the outputted SVG image.

~estimated 100

Improve SVG rendering performance

Add SVDefinitions and SVUse classes to SVGraphics package so that and elements can be utilized. This will increase speed and reduce the required processing power substantially.

~estimated 75

Fix the starting scroll position in the larger view mode.

Right now when the user clicks on the "large" button the screen is pushed far away off to the top left corner of the screen, and nothing is visible. Instead, start the horizontal scroll position of the view in the center of the triangle so that when the user clicks the "large" button they can see the top of the triangle.

Visually clarify moves

Make disk color correspond to current move (triangle side color) similar to the sample Sierpinski triangle provided.

~estimated 30

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.