From ee989cb74081e38c7285e8247975c2e5e2e86a20 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Tue, 16 Sep 2014 15:02:36 -0500 Subject: [PATCH 01/11] Finished car thang see bane --- Chapter3Practice/Car.java | 69 +++++++ Chapter3Practice/CarTest.java | 82 ++++++++ Chapter3Practice/README.TXT | 13 ++ Chapter3Practice/doc/Car.html | 194 +++++++++++++++++++ Chapter3Practice/doc/allclasses-frame.html | 32 +++ Chapter3Practice/doc/allclasses-noframe.html | 32 +++ Chapter3Practice/doc/constant-values.html | 45 +++++ Chapter3Practice/doc/index.html | 37 ++++ Chapter3Practice/doc/logfile.txt | 47 +++++ Chapter3Practice/doc/package-frame.html | 33 ++++ Chapter3Practice/doc/package-list | 1 + Chapter3Practice/doc/package-summary.html | 48 +++++ Chapter3Practice/doc/resources/inherit.gif | Bin 0 -> 57 bytes Chapter3Practice/doc/stylesheet.css | 29 +++ Chapter3Practice/package.bluej | 38 ++++ 15 files changed, 700 insertions(+) create mode 100644 Chapter3Practice/Car.java create mode 100644 Chapter3Practice/CarTest.java create mode 100644 Chapter3Practice/README.TXT create mode 100644 Chapter3Practice/doc/Car.html create mode 100644 Chapter3Practice/doc/allclasses-frame.html create mode 100644 Chapter3Practice/doc/allclasses-noframe.html create mode 100644 Chapter3Practice/doc/constant-values.html create mode 100644 Chapter3Practice/doc/index.html create mode 100644 Chapter3Practice/doc/logfile.txt create mode 100644 Chapter3Practice/doc/package-frame.html create mode 100644 Chapter3Practice/doc/package-list create mode 100644 Chapter3Practice/doc/package-summary.html create mode 100644 Chapter3Practice/doc/resources/inherit.gif create mode 100644 Chapter3Practice/doc/stylesheet.css create mode 100644 Chapter3Practice/package.bluej diff --git a/Chapter3Practice/Car.java b/Chapter3Practice/Car.java new file mode 100644 index 00000000..31223379 --- /dev/null +++ b/Chapter3Practice/Car.java @@ -0,0 +1,69 @@ + + +/** + * A cool hot hip young class + * tracks fuel remaining in the car as it is driven based + * on feul efficiencey + * + * @Arresh + * @version 12 september + */ +public class Car +{ + /** the fuel efficiency of this car measured in miles per gallon*/ + private double fuelEfficiency; + /**the number of gallons of fuel left in the tank*/ + private double fuelInTank; + + /** + * Default constructor for a Car of specified fuel efficiency + */ + public Car(double efficiency) + { + this.fuelEfficiency = efficiency; + this.fuelInTank = 0; + } + + /** + * Adds the specofoed number of gallons of fuel to this car's tank + * + * @pre the specified number of gallons does not excede this cars gass capacity8 + * @param gallons number of gallons of fuel to add to this car's tank + */ + public void addGas(double gallons) + { + this.fuelInTank =this.fuelInTank + gallons; + + } + + + /** + * Updates fuel in this car's tank based on the specified number of miles driven + * and this car's fuel efficiency + * + * @pre Specified number of miles does not exceed the fuel in this car's tank + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param miles number of miles this car has driven + */ + public void drive(double miles) + { + double gallonsBurned = miles/ this.fuelEfficiency; + this.fuelInTank = this.fuelInTank - gallonsBurned; + + } + + /** + * returns number of gallons of fuel left in this car's tank + * + * @return's number of gallons of fuel left in this car's tank + */ + public double getGasInTank() + { + // put your code here + return this.fuelInTank; + } + + + +} diff --git a/Chapter3Practice/CarTest.java b/Chapter3Practice/CarTest.java new file mode 100644 index 00000000..8601e906 --- /dev/null +++ b/Chapter3Practice/CarTest.java @@ -0,0 +1,82 @@ + + +import static org.junit.Assert.*; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Write a description of test class CarTest here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class CarTest +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class CarTest + */ + public CarTest() + { + // initialise instance variables + x = 0; + } + + /** + * Sets up the test fixture. + * + * Called before every test case method. + */ + @Before + public void setUp() + { + } + + /** + * Tears down the test fixture. + * + * Called after every test case method. + */ + @After + public void tearDown() + { + } + + @Test + public void testGetGasInTank() + { + Car testCar = new Car(50); + double gallons = testCar.getGasInTank(); + assertEquals(0.0, gallons, 1e-6); + } + + @Test + public void testAddGas() + { + Car testCar = new Car(50); + testCar.addGas(20); + double gallons = testCar.getGasInTank(); + assertEquals(20.0, gallons, 1e-6); + + testCar.addGas(5); + gallons = testCar.getGasInTank(); + assertEquals(25.0, gallons, 1e-6); + } + + @Test + public void testDrive() + { + Car testCar = new Car(50); + testCar.addGas(20); + testCar.drive(25); + double gallons = testCar.getGasInTank(); + assertEquals(19.5, gallons, 1e-6); + + testCar.drive(100); + gallons = testCar.getGasInTank(); + assertEquals(17.5, gallons, 1e-6); + } +} \ No newline at end of file diff --git a/Chapter3Practice/README.TXT b/Chapter3Practice/README.TXT new file mode 100644 index 00000000..0de5dc9d --- /dev/null +++ b/Chapter3Practice/README.TXT @@ -0,0 +1,13 @@ +------------------------------------------------------------------------ +This is the project README file. Here, you should describe your project. +Tell the reader (someone who does not know anything about this project) +all she needs to know. The comments should usually include at least: +------------------------------------------------------------------------ + +PROJECT TITLE: +PURPOSE OF PROJECT: +VERSION or DATE: +DEPENDENCIES: +HOW TO START THIS PROJECT: +AUTHORS: +USER INSTRUCTIONS: diff --git a/Chapter3Practice/doc/Car.html b/Chapter3Practice/doc/Car.html new file mode 100644 index 00000000..2d7e827d --- /dev/null +++ b/Chapter3Practice/doc/Car.html @@ -0,0 +1,194 @@ + + + + + + + +Car + + + + + + + + + + + + +
+ +
+ +

+Class Car

+
+java.lang.Object
+  extended by Car
+
+
+
+
public class Car
extends java.lang.Object
+ + +

+A cool hot hip young class + tracks fuel remaining in the car as it is driven based + on feul efficiencey +

+ +

+

+
Version:
+
12 september
+
+
+ +

+ + + + + + + + + + + +
+Constructor Summary
Car(double fuelEfficiency) + +
+          Default constructor for a Car of specified fuel efficiency
+  + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddGas(double gallons) + +
+          Adds the specofoed number of gallons of fuel to this car's tank
+ voiddrive(double miles) + +
+          Updates fuel in this car's tank based on the specified number of miles driven + and this car's fuel efficiency
+ doublegetGasInTank() + +
+          returns number of gallons of fuel left in this car's tank
+ + + + + + + +
Methods inherited from class
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Constructor Detail
+ +

+Car

+
+public Car(double fuelEfficiency)
+
+
Default constructor for a Car of specified fuel efficiency +

+

+ + + + + + + + +
+Method Detail
+ +

+addGas

+
+public void addGas(double gallons)
+
+
Adds the specofoed number of gallons of fuel to this car's tank +

+

+
Parameters:
gallons - number of gallons of fuel to add to this car's tank
+
+
+
+ +

+drive

+
+public void drive(double miles)
+
+
Updates fuel in this car's tank based on the specified number of miles driven + and this car's fuel efficiency +

+

+
Parameters:
miles - number of miles this car has driven
+
+
+
+ +

+getGasInTank

+
+public double getGasInTank()
+
+
returns number of gallons of fuel left in this car's tank +

+

+
+
+
+ +
+ +
+ + + diff --git a/Chapter3Practice/doc/allclasses-frame.html b/Chapter3Practice/doc/allclasses-frame.html new file mode 100644 index 00000000..61e1ad96 --- /dev/null +++ b/Chapter3Practice/doc/allclasses-frame.html @@ -0,0 +1,32 @@ + + + + + + + +All Classes + + + + + + + + + + + +All Classes +
+ + + + + +
Car +
+
+ + + diff --git a/Chapter3Practice/doc/allclasses-noframe.html b/Chapter3Practice/doc/allclasses-noframe.html new file mode 100644 index 00000000..4c79ed39 --- /dev/null +++ b/Chapter3Practice/doc/allclasses-noframe.html @@ -0,0 +1,32 @@ + + + + + + + +All Classes + + + + + + + + + + + +All Classes +
+ + + + + +
Car +
+
+ + + diff --git a/Chapter3Practice/doc/constant-values.html b/Chapter3Practice/doc/constant-values.html new file mode 100644 index 00000000..7a31f44c --- /dev/null +++ b/Chapter3Practice/doc/constant-values.html @@ -0,0 +1,45 @@ + + + + + + + +Constant Field Values + + + + + + + + + + + + +
+ +
+
+

+Constant Field Values

+
+
+Contents + +
+ +
+ + + diff --git a/Chapter3Practice/doc/index.html b/Chapter3Practice/doc/index.html new file mode 100644 index 00000000..ad7f4725 --- /dev/null +++ b/Chapter3Practice/doc/index.html @@ -0,0 +1,37 @@ + + + + + + + +Generated Documentation (Untitled) + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="Car.html">Non-frame version.</A> + + + diff --git a/Chapter3Practice/doc/logfile.txt b/Chapter3Practice/doc/logfile.txt new file mode 100644 index 00000000..b300e6a2 --- /dev/null +++ b/Chapter3Practice/doc/logfile.txt @@ -0,0 +1,47 @@ +Class documentation +<---- javadoc command: ----> +C:\PROGRA~1\Java\JDK17~1.0_6\bin\javadoc.exe +-author +-version +-nodeprecated +-package +-noindex +-notree +-nohelp +-nonavbar +-source +1.7 +-classpath +C:\Program Files\BlueJ\lib\bluejcore.jar;C:\Program Files\BlueJ\lib\junit-4.8.2.jar;\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice +-d +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc +-encoding +UTF-8 +-charset +UTF-8 +-docletpath +C:\Program Files\BlueJ\lib\bjdoclet.jar +-doclet +bluej.doclet.doclets.formats.html.HtmlDoclet +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java +<---- end of javadoc command ----> +Loading source file \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java... +Constructing Javadoc information... +Standard Doclet version 1.7.0_60 +Building tree for all the packages and classes... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\Car.html... +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java:11: warning - @Arresh is an unknown tag. +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java:31: warning - @pre is an unknown tag. +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java:46: warning - @pre is an unknown tag. +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java:46: warning - @post is an unknown tag. +\\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\Car.java:56: warning - @return's is an unknown tag. +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\package-frame.html... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\package-summary.html... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\constant-values.html... +Building index for all the packages and classes... +Building index for all classes... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\allclasses-frame.html... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\allclasses-noframe.html... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\index.html... +Generating \\NNHSSRV2.hs.sd203.org\aamleshi$\AP Comp Sci\unit2Classes\Chapter3Practice\doc\stylesheet.css... +5 warnings diff --git a/Chapter3Practice/doc/package-frame.html b/Chapter3Practice/doc/package-frame.html new file mode 100644 index 00000000..e8b03275 --- /dev/null +++ b/Chapter3Practice/doc/package-frame.html @@ -0,0 +1,33 @@ + + + + + + + +<Unnamed> + + + + + + + + + + + +<Unnamed> + + + + +
+Classes  + +
+Car
+ + + + diff --git a/Chapter3Practice/doc/package-list b/Chapter3Practice/doc/package-list new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Chapter3Practice/doc/package-list @@ -0,0 +1 @@ + diff --git a/Chapter3Practice/doc/package-summary.html b/Chapter3Practice/doc/package-summary.html new file mode 100644 index 00000000..f261d437 --- /dev/null +++ b/Chapter3Practice/doc/package-summary.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + +
+ +
+

+Package <Unnamed> +

+ + + + + + + + + +
+Class Summary
CarA cool hot hip young class + tracks fuel remaining in the car as it is driven based + on feul efficiencey
+  + +

+

+
+
+ +
+ + + diff --git a/Chapter3Practice/doc/resources/inherit.gif b/Chapter3Practice/doc/resources/inherit.gif new file mode 100644 index 0000000000000000000000000000000000000000..c814867a13deb0ca7ea2156c6ca1d5a03372af7e GIT binary patch literal 57 zcmZ?wbhEHbIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X literal 0 HcmV?d00001 diff --git a/Chapter3Practice/doc/stylesheet.css b/Chapter3Practice/doc/stylesheet.css new file mode 100644 index 00000000..6ea9e516 --- /dev/null +++ b/Chapter3Practice/doc/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF; color:#000000 } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ +.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} + diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej new file mode 100644 index 00000000..71d1c412 --- /dev/null +++ b/Chapter3Practice/package.bluej @@ -0,0 +1,38 @@ +#BlueJ package file +objectbench.height=76 +objectbench.width=804 +package.editor.height=838 +package.editor.width=706 +package.editor.x=0 +package.editor.y=0 +package.numDependencies=0 +package.numTargets=2 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +target1.association=CarTest +target1.editor.height=1010 +target1.editor.width=840 +target1.editor.x=840 +target1.editor.y=0 +target1.height=50 +target1.name=Car +target1.naviview.expanded=true +target1.showInterface=false +target1.type=ClassTarget +target1.typeParameters= +target1.width=80 +target1.x=70 +target1.y=50 +target2.editor.height=1010 +target2.editor.width=840 +target2.editor.x=0 +target2.editor.y=0 +target2.height=50 +target2.name=CarTest +target2.showInterface=false +target2.type=UnitTestTargetJunit4 +target2.typeParameters= +target2.width=80 +target2.x=100 +target2.y=20 From 5f6714478b5bef90aa235057a8d9402d74e0e8e2 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Fri, 19 Sep 2014 15:11:15 -0500 Subject: [PATCH 02/11] made changes lol --- Chapter3Practice/Door.java | 64 ++++++++++++ Chapter3Practice/DoorTest.java | 48 +++++++++ Chapter3Practice/Target.java | 63 +++++++++++ Chapter3Practice/TargetComponent.java | 40 +++++++ Chapter3Practice/TargetVeiwer.java | 40 +++++++ Chapter3Practice/VendingMachine.java | 78 ++++++++++++++ Chapter3Practice/VendingMachineTest.java | 48 +++++++++ Chapter3Practice/package.bluej | 128 +++++++++++++++++++---- Coin.pdf | Bin 0 -> 194229 bytes 9 files changed, 489 insertions(+), 20 deletions(-) create mode 100644 Chapter3Practice/Door.java create mode 100644 Chapter3Practice/DoorTest.java create mode 100644 Chapter3Practice/Target.java create mode 100644 Chapter3Practice/TargetComponent.java create mode 100644 Chapter3Practice/TargetVeiwer.java create mode 100644 Chapter3Practice/VendingMachine.java create mode 100644 Chapter3Practice/VendingMachineTest.java create mode 100644 Coin.pdf diff --git a/Chapter3Practice/Door.java b/Chapter3Practice/Door.java new file mode 100644 index 00000000..6e221fd4 --- /dev/null +++ b/Chapter3Practice/Door.java @@ -0,0 +1,64 @@ + + +/** + * not to be confused with The Doors + * + * @author (your name) + * @version (a version number or a date) + */ +public class Door +{ + /** says the name of the door */ + private String name; + private boolean state; + + /** + * Default constructor for objects of class Door + */ + public Door(boolean beggining_state, String beggining_name) + { + this.state = beggining_state; + this.name = beggining_name; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public void close() + { + this.state = false; + } + + public void open() + { + this.state = true; + } + + public String getName() + { + return this.name; + } + public boolean getState() + { + return this.state; + } + public void setName(String newName) + { + this.name = newName; + } + + public void setState(boolean newState) + { + this.state = newState; + } + + +} diff --git a/Chapter3Practice/DoorTest.java b/Chapter3Practice/DoorTest.java new file mode 100644 index 00000000..5ebd849d --- /dev/null +++ b/Chapter3Practice/DoorTest.java @@ -0,0 +1,48 @@ + + +import static org.junit.Assert.*; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Write a description of test class DoorTest here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class DoorTest +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class DoorTest + */ + public DoorTest() + { + // initialise instance variables + x = 0; + } + + /** + * Sets up the test fixture. + * + * Called before every test case method. + */ + @Before + public void setUp() + { + } + + /** + * Tears down the test fixture. + * + * Called after every test case method. + */ + @After + public void tearDown() + { + } + +} diff --git a/Chapter3Practice/Target.java b/Chapter3Practice/Target.java new file mode 100644 index 00000000..59791d91 --- /dev/null +++ b/Chapter3Practice/Target.java @@ -0,0 +1,63 @@ +import java.awt.Graphics2D; +import java.awt.geom.Ellipse2D; +import java.awt.Color; + +/** + * A target shape that can be positioned anywhere on the screen + * + * @Arresh + * @version (a version number or a date) + */ +public class Target +{ + /** description of instance variable x (add comment for each instance variable) */ + private int xLeft; + private int yTop; + + /** + * @param x + * @param y + */ + public Target(int x, int y) + { + xLeft = x; + yTop = y; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre assumes that there exists a 10X 10 square with upper left verticie as + * inputs + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param g2 The graphics context + * @return description of the return value + */ + public void draw(Graphics2D g2) + { + //the number of the ring is the radius, the smaller nestled in the larger + Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 1, 1); + Ellipse2D.Double ring2 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 2, 2); + Ellipse2D.Double ring3 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 3, 3); + Ellipse2D.Double ring4 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 4, 4); + Ellipse2D.Double ring5 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 5, 5); + g2.setColor(Color.BLACK); + g2.draw(ring1); + g2.fill(ring1); + g2.setColor(Color.WHITE); + g2.draw(ring2); + g2.fill(ring2); + g2.setColor(Color.BLACK); + g2.draw(ring3); + g2.fill(ring3); + g2.setColor(Color.WHITE); + g2.draw(ring4); + g2.fill(ring4); + g2.setColor(Color.BLACK); + g2.draw(ring5); + g2.fill(ring5); + } + +} diff --git a/Chapter3Practice/TargetComponent.java b/Chapter3Practice/TargetComponent.java new file mode 100644 index 00000000..9d0963f3 --- /dev/null +++ b/Chapter3Practice/TargetComponent.java @@ -0,0 +1,40 @@ + + +/** + * Write a description of class TargetComponent here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class TargetComponent +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class TargetComponent + */ + public TargetComponent() + { + // initialise instance variables + x = 0; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public int sampleMethod(int y) + { + // put your code here + return x+y; + } + +} diff --git a/Chapter3Practice/TargetVeiwer.java b/Chapter3Practice/TargetVeiwer.java new file mode 100644 index 00000000..833888a6 --- /dev/null +++ b/Chapter3Practice/TargetVeiwer.java @@ -0,0 +1,40 @@ + + +/** + * Write a description of class TargetVeiwer here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class TargetVeiwer +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class TargetVeiwer + */ + public TargetVeiwer() + { + // initialise instance variables + x = 0; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public int sampleMethod(int y) + { + // put your code here + return x+y; + } + +} diff --git a/Chapter3Practice/VendingMachine.java b/Chapter3Practice/VendingMachine.java new file mode 100644 index 00000000..6ba88950 --- /dev/null +++ b/Chapter3Practice/VendingMachine.java @@ -0,0 +1,78 @@ + + +/** + * Simulates the tool of the capitalist opressors + * + * @author Arresh + * @version ¯\_(ツ)_/¯ + */ +public class VendingMachine +{ + /** description of instance variable x (add comment for each instance variable) */ + private int cans; + private int coins; + private int profit; + + /** + * Default constructor for objects of class VendingMachine + */ + public VendingMachine() + { + this.cans = 10; + this.coins = 0; + this.profit = 0; + } + + public VendingMachine(int startCans) + { + // initialise instance variables + this.cans = startCans; + this.coins = 0; + this.profit = 0; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public int insertCoin() + { + // put your code here + this.coins += 1; + return 1; + } + + public void vendCan(int insertedCoins) + { + this.cans -= insertedCoins; + } + + public void reset(int refillCans) + { + this.profit += this.coins; + this.coins = 0; + this.cans += refillCans; + } + + public int getCans() + { + return this.cans; + } + + public int getCoins() + { + return this.coins; + } + + public int getProfit() + { + return this.profit; + } +} diff --git a/Chapter3Practice/VendingMachineTest.java b/Chapter3Practice/VendingMachineTest.java new file mode 100644 index 00000000..4973870e --- /dev/null +++ b/Chapter3Practice/VendingMachineTest.java @@ -0,0 +1,48 @@ + + +import static org.junit.Assert.*; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Write a description of test class VendingMachineTest here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class VendingMachineTest +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class VendingMachineTest + */ + public VendingMachineTest() + { + // initialise instance variables + x = 0; + } + + /** + * Sets up the test fixture. + * + * Called before every test case method. + */ + @Before + public void setUp() + { + } + + /** + * Tears down the test fixture. + * + * Called after every test case method. + */ + @After + public void tearDown() + { + } + +} diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej index 71d1c412..246ba75e 100644 --- a/Chapter3Practice/package.bluej +++ b/Chapter3Practice/package.bluej @@ -3,36 +3,124 @@ objectbench.height=76 objectbench.width=804 package.editor.height=838 package.editor.width=706 -package.editor.x=0 +package.editor.x=840 package.editor.y=0 package.numDependencies=0 -package.numTargets=2 +package.numTargets=9 package.showExtends=true package.showUses=true project.charset=UTF-8 -target1.association=CarTest -target1.editor.height=1010 -target1.editor.width=840 -target1.editor.x=840 -target1.editor.y=0 +target1.editor.height=700 +target1.editor.width=900 +target1.editor.x=637 +target1.editor.y=56 target1.height=50 -target1.name=Car +target1.name=TargetComponent target1.naviview.expanded=true target1.showInterface=false target1.type=ClassTarget target1.typeParameters= -target1.width=80 -target1.x=70 -target1.y=50 -target2.editor.height=1010 -target2.editor.width=840 -target2.editor.x=0 -target2.editor.y=0 +target1.width=130 +target1.x=140 +target1.y=210 target2.height=50 -target2.name=CarTest +target2.name=TargetVeiwer target2.showInterface=false -target2.type=UnitTestTargetJunit4 +target2.type=ClassTarget target2.typeParameters= -target2.width=80 -target2.x=100 -target2.y=20 +target2.width=100 +target2.x=190 +target2.y=110 +target3.association=CarTest +target3.editor.height=1010 +target3.editor.width=840 +target3.editor.x=840 +target3.editor.y=0 +target3.height=50 +target3.name=Car +target3.naviview.expanded=true +target3.showInterface=false +target3.type=ClassTarget +target3.typeParameters= +target3.width=80 +target3.x=70 +target3.y=50 +target4.editor.height=1010 +target4.editor.width=840 +target4.editor.x=0 +target4.editor.y=0 +target4.height=50 +target4.name=DoorTest +target4.naviview.expanded=true +target4.showInterface=false +target4.type=UnitTestTargetJunit4 +target4.typeParameters= +target4.width=80 +target4.x=220 +target4.y=20 +target5.association=DoorTest +target5.editor.height=1010 +target5.editor.width=840 +target5.editor.x=840 +target5.editor.y=0 +target5.height=50 +target5.name=Door +target5.naviview.expanded=true +target5.showInterface=false +target5.type=ClassTarget +target5.typeParameters= +target5.width=80 +target5.x=190 +target5.y=50 +target6.editor.height=1010 +target6.editor.width=840 +target6.editor.x=840 +target6.editor.y=0 +target6.height=50 +target6.name=Target +target6.naviview.expanded=true +target6.showInterface=false +target6.type=ClassTarget +target6.typeParameters= +target6.width=80 +target6.x=10 +target6.y=240 +target7.editor.height=1010 +target7.editor.width=840 +target7.editor.x=0 +target7.editor.y=0 +target7.height=50 +target7.name=CarTest +target7.showInterface=false +target7.type=UnitTestTargetJunit4 +target7.typeParameters= +target7.width=80 +target7.x=100 +target7.y=20 +target8.editor.height=700 +target8.editor.width=900 +target8.editor.x=40 +target8.editor.y=20 +target8.height=50 +target8.name=VendingMachineTest +target8.naviview.expanded=true +target8.showInterface=false +target8.type=UnitTestTargetJunit4 +target8.typeParameters= +target8.width=140 +target8.x=40 +target8.y=150 +target9.association=VendingMachineTest +target9.editor.height=1010 +target9.editor.width=840 +target9.editor.x=840 +target9.editor.y=0 +target9.height=50 +target9.name=VendingMachine +target9.naviview.expanded=true +target9.showInterface=false +target9.type=ClassTarget +target9.typeParameters= +target9.width=120 +target9.x=10 +target9.y=180 diff --git a/Coin.pdf b/Coin.pdf new file mode 100644 index 0000000000000000000000000000000000000000..32f354e7793d2289bd4dbed25c432b45623f760f GIT binary patch literal 194229 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

Ovbd=5|I$kM+uW%1{Dn%VKH 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

`9D-`$$h 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⪻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 AQ~&?~ literal 0 HcmV?d00001 From 71fc1836d420151d8d3ce660331b18df53fc1941 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Mon, 22 Sep 2014 15:05:50 -0500 Subject: [PATCH 03/11] Finished targeterino see above --- Chapter3Practice/Target.java | 35 ++++++------ Chapter3Practice/TargetComponent.java | 39 +++++--------- Chapter3Practice/TargetVeiwer.java | 40 +++++--------- Chapter3Practice/package.bluej | 77 +++++++++++++++------------ 4 files changed, 89 insertions(+), 102 deletions(-) diff --git a/Chapter3Practice/Target.java b/Chapter3Practice/Target.java index 59791d91..e812db80 100644 --- a/Chapter3Practice/Target.java +++ b/Chapter3Practice/Target.java @@ -38,26 +38,29 @@ public Target(int x, int y) public void draw(Graphics2D g2) { //the number of the ring is the radius, the smaller nestled in the larger - Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 1, 1); - Ellipse2D.Double ring2 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 2, 2); - Ellipse2D.Double ring3 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 3, 3); - Ellipse2D.Double ring4 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 4, 4); - Ellipse2D.Double ring5 = new Ellipse2D.Double(xLeft + 5, yTop + 5, 5, 5); - g2.setColor(Color.BLACK); - g2.draw(ring1); - g2.fill(ring1); + Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft+40, yTop +40, 20, 20); + Ellipse2D.Double ring2 = new Ellipse2D.Double(xLeft + 30, yTop +30, 40, 40); + Ellipse2D.Double ring3 = new Ellipse2D.Double(xLeft+20, yTop +20, 60, 60); + Ellipse2D.Double ring4 = new Ellipse2D.Double(xLeft+10, yTop+10 , 80, 80); + Ellipse2D.Double ring5 = new Ellipse2D.Double(xLeft, yTop , 100, 100); + g2.setColor(Color.RED); + g2.draw(ring5); + g2.fill(ring5); g2.setColor(Color.WHITE); - g2.draw(ring2); - g2.fill(ring2); - g2.setColor(Color.BLACK); + g2.draw(ring4); + g2.fill(ring4); + g2.setColor(Color.RED); g2.draw(ring3); g2.fill(ring3); g2.setColor(Color.WHITE); - g2.draw(ring4); - g2.fill(ring4); - g2.setColor(Color.BLACK); - g2.draw(ring5); - g2.fill(ring5); + g2.draw(ring2); + g2.fill(ring2); + g2.setColor(Color.RED); + g2.draw(ring1); + g2.fill(ring1); + + + } } diff --git a/Chapter3Practice/TargetComponent.java b/Chapter3Practice/TargetComponent.java index 9d0963f3..15defa4c 100644 --- a/Chapter3Practice/TargetComponent.java +++ b/Chapter3Practice/TargetComponent.java @@ -1,4 +1,6 @@ - +import java.awt.Graphics; +import java.awt.Graphics2D; +import javax.swing.JComponent; /** * Write a description of class TargetComponent here. @@ -6,35 +8,18 @@ * @author (your name) * @version (a version number or a date) */ -public class TargetComponent +public class TargetComponent extends JComponent { - /** description of instance variable x (add comment for each instance variable) */ - private int x; - - /** - * Default constructor for objects of class TargetComponent - */ - public TargetComponent() - { - // initialise instance variables - x = 0; - } - /** - * An example of a method - replace this comment with your own - * that describes the operation of the method - * - * @pre preconditions for the method - * (what the method assumes about the method's parameters and class's state) - * @post postconditions for the method - * (what the method guarantees upon completion) - * @param y description of parameter y - * @return description of the return value - */ - public int sampleMethod(int y) + public void paintComponent(Graphics g) { - // put your code here - return x+y; + Graphics2D g2 = (Graphics2D) g; + + int x = getWidth()/2; + int y = getHeight()/2; + + Target target1 = new Target(x,y); + target1.draw(g2); } } diff --git a/Chapter3Practice/TargetVeiwer.java b/Chapter3Practice/TargetVeiwer.java index 833888a6..ada54c15 100644 --- a/Chapter3Practice/TargetVeiwer.java +++ b/Chapter3Practice/TargetVeiwer.java @@ -1,4 +1,4 @@ - +import javax.swing.JFrame; /** * Write a description of class TargetVeiwer here. @@ -8,33 +8,21 @@ */ public class TargetVeiwer { - /** description of instance variable x (add comment for each instance variable) */ - private int x; - - /** - * Default constructor for objects of class TargetVeiwer - */ - public TargetVeiwer() - { - // initialise instance variables - x = 0; - } - /** - * An example of a method - replace this comment with your own - * that describes the operation of the method - * - * @pre preconditions for the method - * (what the method assumes about the method's parameters and class's state) - * @post postconditions for the method - * (what the method guarantees upon completion) - * @param y description of parameter y - * @return description of the return value - */ - public int sampleMethod(int y) + public static void main(String[] args) { - // put your code here - return x+y; + JFrame frame = new JFrame(); + + frame.setSize(400,400); + frame.setTitle("Get More, Pay Less"); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + TargetComponent component = new TargetComponent(); + frame.add(component); + + frame.setVisible(true); + + } } diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej index 246ba75e..3f8d70a4 100644 --- a/Chapter3Practice/package.bluej +++ b/Chapter3Practice/package.bluej @@ -1,63 +1,74 @@ #BlueJ package file +dependency1.from=TargetComponent +dependency1.to=Target +dependency1.type=UsesDependency +dependency2.from=TargetVeiwer +dependency2.to=TargetComponent +dependency2.type=UsesDependency objectbench.height=76 objectbench.width=804 package.editor.height=838 package.editor.width=706 package.editor.x=840 package.editor.y=0 -package.numDependencies=0 +package.numDependencies=2 package.numTargets=9 package.showExtends=true package.showUses=true project.charset=UTF-8 -target1.editor.height=700 -target1.editor.width=900 -target1.editor.x=637 -target1.editor.y=56 +target1.association=CarTest +target1.editor.height=1010 +target1.editor.width=840 +target1.editor.x=840 +target1.editor.y=0 target1.height=50 -target1.name=TargetComponent +target1.name=Car target1.naviview.expanded=true target1.showInterface=false target1.type=ClassTarget target1.typeParameters= -target1.width=130 -target1.x=140 -target1.y=210 +target1.width=80 +target1.x=70 +target1.y=50 +target2.editor.height=1010 +target2.editor.width=840 +target2.editor.x=0 +target2.editor.y=0 target2.height=50 -target2.name=TargetVeiwer +target2.name=DoorTest +target2.naviview.expanded=true target2.showInterface=false -target2.type=ClassTarget +target2.type=UnitTestTargetJunit4 target2.typeParameters= -target2.width=100 -target2.x=190 -target2.y=110 -target3.association=CarTest -target3.editor.height=1010 -target3.editor.width=840 -target3.editor.x=840 -target3.editor.y=0 +target2.width=80 +target2.x=220 +target2.y=20 +target3.editor.height=700 +target3.editor.width=900 +target3.editor.x=637 +target3.editor.y=56 target3.height=50 -target3.name=Car +target3.name=TargetComponent target3.naviview.expanded=true target3.showInterface=false target3.type=ClassTarget target3.typeParameters= -target3.width=80 -target3.x=70 -target3.y=50 -target4.editor.height=1010 -target4.editor.width=840 -target4.editor.x=0 -target4.editor.y=0 +target3.width=130 +target3.x=140 +target3.y=210 +target4.editor.height=700 +target4.editor.width=900 +target4.editor.x=625 +target4.editor.y=111 target4.height=50 -target4.name=DoorTest +target4.name=TargetVeiwer target4.naviview.expanded=true target4.showInterface=false -target4.type=UnitTestTargetJunit4 +target4.type=ClassTarget target4.typeParameters= -target4.width=80 -target4.x=220 -target4.y=20 +target4.width=100 +target4.x=190 +target4.y=120 target5.association=DoorTest target5.editor.height=1010 target5.editor.width=840 @@ -74,7 +85,7 @@ target5.x=190 target5.y=50 target6.editor.height=1010 target6.editor.width=840 -target6.editor.x=840 +target6.editor.x=0 target6.editor.y=0 target6.height=50 target6.name=Target From d9795ca9072359f82821d1b7ba916b2d58b35128 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Wed, 24 Sep 2014 14:28:50 -0500 Subject: [PATCH 04/11] finished targeterino part deux yolo --- Chapter3Practice/Target.java | 29 ++++++++++++++++++++++----- Chapter3Practice/TargetComponent.java | 8 ++++---- Chapter3Practice/package.bluej | 22 ++++++++++---------- 3 files changed, 39 insertions(+), 20 deletions(-) diff --git a/Chapter3Practice/Target.java b/Chapter3Practice/Target.java index e812db80..b6a1297f 100644 --- a/Chapter3Practice/Target.java +++ b/Chapter3Practice/Target.java @@ -1,6 +1,7 @@ import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.Color; +import java.util.Random; /** * A target shape that can be positioned anywhere on the screen @@ -13,15 +14,17 @@ public class Target /** description of instance variable x (add comment for each instance variable) */ private int xLeft; private int yTop; + private int size; /** * @param x * @param y */ - public Target(int x, int y) + public Target(int x, int y, int sise) { xLeft = x; yTop = y; + size = sise; } /** @@ -38,24 +41,40 @@ public Target(int x, int y) public void draw(Graphics2D g2) { //the number of the ring is the radius, the smaller nestled in the larger - Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft+40, yTop +40, 20, 20); + /*Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft+40, yTop +40, 20, 20); Ellipse2D.Double ring2 = new Ellipse2D.Double(xLeft + 30, yTop +30, 40, 40); Ellipse2D.Double ring3 = new Ellipse2D.Double(xLeft+20, yTop +20, 60, 60); Ellipse2D.Double ring4 = new Ellipse2D.Double(xLeft+10, yTop+10 , 80, 80); Ellipse2D.Double ring5 = new Ellipse2D.Double(xLeft, yTop , 100, 100); - g2.setColor(Color.RED); + */ + /* + Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft+40-50, yTop +40-50, 20, 20); + Ellipse2D.Double ring2 = new Ellipse2D.Double(xLeft + 30-50, yTop +30-50, 40, 40); + Ellipse2D.Double ring3 = new Ellipse2D.Double(xLeft+20-50, yTop +20-50, 60, 60); + Ellipse2D.Double ring4 = new Ellipse2D.Double(xLeft+10-50, yTop+10-50 , 80, 80); + Ellipse2D.Double ring5 = new Ellipse2D.Double(xLeft-50, yTop-50 , 100, 100); + */ + Ellipse2D.Double ring1 = new Ellipse2D.Double(xLeft- size/10, yTop - size/10, size/5, size/5); + Ellipse2D.Double ring2 = new Ellipse2D.Double(xLeft - 2*size/10, yTop -2*size/10, 2*size/5, 2*size/5); + Ellipse2D.Double ring3 = new Ellipse2D.Double(xLeft-3*size/10, yTop -3*size/10, 3*size/5, 3*size/5); + Ellipse2D.Double ring4 = new Ellipse2D.Double(xLeft-4*size/10, yTop-4*size/10 ,4*size/5,4*size/5); + Ellipse2D.Double ring5 = new Ellipse2D.Double(xLeft-size/2, yTop-size/2 , size, size); + Random Generator = new Random(); + Color random = new Color(Generator.nextInt(256),Generator.nextInt(256),Generator.nextInt(256)); + + g2.setColor(random); g2.draw(ring5); g2.fill(ring5); g2.setColor(Color.WHITE); g2.draw(ring4); g2.fill(ring4); - g2.setColor(Color.RED); + g2.setColor(random); g2.draw(ring3); g2.fill(ring3); g2.setColor(Color.WHITE); g2.draw(ring2); g2.fill(ring2); - g2.setColor(Color.RED); + g2.setColor(random); g2.draw(ring1); g2.fill(ring1); diff --git a/Chapter3Practice/TargetComponent.java b/Chapter3Practice/TargetComponent.java index 15defa4c..499e2159 100644 --- a/Chapter3Practice/TargetComponent.java +++ b/Chapter3Practice/TargetComponent.java @@ -1,7 +1,7 @@ import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JComponent; - +import java.util.Random; /** * Write a description of class TargetComponent here. * @@ -14,11 +14,11 @@ public class TargetComponent extends JComponent public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; - + Random Generator = new Random(); int x = getWidth()/2; int y = getHeight()/2; - - Target target1 = new Target(x,y); + int size = Generator.nextInt(300) + 50; + Target target1 = new Target(x,y, size); target1.draw(g2); } diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej index 3f8d70a4..116151cd 100644 --- a/Chapter3Practice/package.bluej +++ b/Chapter3Practice/package.bluej @@ -43,10 +43,10 @@ target2.typeParameters= target2.width=80 target2.x=220 target2.y=20 -target3.editor.height=700 +target3.editor.height=523 target3.editor.width=900 -target3.editor.x=637 -target3.editor.y=56 +target3.editor.x=750 +target3.editor.y=543 target3.height=50 target3.name=TargetComponent target3.naviview.expanded=true @@ -56,10 +56,10 @@ target3.typeParameters= target3.width=130 target3.x=140 target3.y=210 -target4.editor.height=700 -target4.editor.width=900 -target4.editor.x=625 -target4.editor.y=111 +target4.editor.height=1010 +target4.editor.width=840 +target4.editor.x=0 +target4.editor.y=0 target4.height=50 target4.name=TargetVeiwer target4.naviview.expanded=true @@ -83,10 +83,10 @@ target5.typeParameters= target5.width=80 target5.x=190 target5.y=50 -target6.editor.height=1010 -target6.editor.width=840 -target6.editor.x=0 -target6.editor.y=0 +target6.editor.height=598 +target6.editor.width=958 +target6.editor.x=751 +target6.editor.y=32 target6.height=50 target6.name=Target target6.naviview.expanded=true From f19bfcb93446bce548603c305753bcde95be0b45 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Wed, 1 Oct 2014 14:43:09 -0500 Subject: [PATCH 05/11] backup? ??? --- AvgOfThree/package.bluej | 10 +++--- Chapter 4 practice/Annuity.java | 39 +++++++++++++++++++++ Chapter 4 practice/README.TXT | 13 +++++++ Chapter 4 practice/StringParsing.java | 36 +++++++++++++++++++ Chapter 4 practice/package.bluej | 50 +++++++++++++++++++++++++++ Chapter 4 practice/rectangle.java | 40 +++++++++++++++++++++ Chapter3Practice/package.bluej | 4 +-- 7 files changed, 185 insertions(+), 7 deletions(-) create mode 100644 Chapter 4 practice/Annuity.java create mode 100644 Chapter 4 practice/README.TXT create mode 100644 Chapter 4 practice/StringParsing.java create mode 100644 Chapter 4 practice/package.bluej create mode 100644 Chapter 4 practice/rectangle.java diff --git a/AvgOfThree/package.bluej b/AvgOfThree/package.bluej index 5f5f50b5..00395d8d 100644 --- a/AvgOfThree/package.bluej +++ b/AvgOfThree/package.bluej @@ -2,9 +2,9 @@ objectbench.height=100 objectbench.width=658 package.editor.height=400 -package.editor.width=560 -package.editor.x=30 -package.editor.y=30 +package.editor.width=865 +package.editor.x=860 +package.editor.y=20 package.numDependencies=0 package.numTargets=1 package.showExtends=true @@ -16,8 +16,8 @@ readme.editor.x=0 readme.editor.y=22 target1.editor.height=700 target1.editor.width=900 -target1.editor.x=70 -target1.editor.y=50 +target1.editor.x=732 +target1.editor.y=309 target1.height=50 target1.name=AvgOfThree target1.naviview.expanded=false diff --git a/Chapter 4 practice/Annuity.java b/Chapter 4 practice/Annuity.java new file mode 100644 index 00000000..296405b8 --- /dev/null +++ b/Chapter 4 practice/Annuity.java @@ -0,0 +1,39 @@ + + +/** + * Write a description of class Annuity here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Annuity +{ + private double PMT = 10000; + private double i = .08; + private double n = 20; + /** + * Default constructor for objects of class Annuity + */ + public Annuity() + { + // initialise instance variables + int presentValue = 0 ; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method(what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public void sampleMethod() + { + double presentValue = PMT * ((((Math.pow(1+i,n-1)-1)/i)/Math.pow(1+n,n-1))+1); + System.out.println(presentValue); + } + +} diff --git a/Chapter 4 practice/README.TXT b/Chapter 4 practice/README.TXT new file mode 100644 index 00000000..0de5dc9d --- /dev/null +++ b/Chapter 4 practice/README.TXT @@ -0,0 +1,13 @@ +------------------------------------------------------------------------ +This is the project README file. Here, you should describe your project. +Tell the reader (someone who does not know anything about this project) +all she needs to know. The comments should usually include at least: +------------------------------------------------------------------------ + +PROJECT TITLE: +PURPOSE OF PROJECT: +VERSION or DATE: +DEPENDENCIES: +HOW TO START THIS PROJECT: +AUTHORS: +USER INSTRUCTIONS: diff --git a/Chapter 4 practice/StringParsing.java b/Chapter 4 practice/StringParsing.java new file mode 100644 index 00000000..0321a0e0 --- /dev/null +++ b/Chapter 4 practice/StringParsing.java @@ -0,0 +1,36 @@ +import java.util.Scanner; + +/** + * Write a description of class StringParsing here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class StringParsing +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class StringParsing + */ + public StringParsing() + { + // initialise instance variables + x = 0; + } + + public void main() + { + Scanner in = new Scanner(System.in); + System.out.print("please imput a number between 1,000 and 999,999:\t"); + String rawNumber = in.next(); + int rawLength = rawNumber.length(); + int commaIndex = rawNumber.indexOf(","); + String firstHalf = rawNumber.substring(0,commaIndex); + String seccondHalf = rawNumber.substring(commaIndex+1); + String number = firstHalf + seccondHalf; + System.out.println(number); + } + +} diff --git a/Chapter 4 practice/package.bluej b/Chapter 4 practice/package.bluej new file mode 100644 index 00000000..e3f0b619 --- /dev/null +++ b/Chapter 4 practice/package.bluej @@ -0,0 +1,50 @@ +#BlueJ package file +objectbench.height=76 +objectbench.width=658 +package.editor.height=400 +package.editor.width=560 +package.editor.x=860 +package.editor.y=20 +package.numDependencies=0 +package.numTargets=3 +package.showExtends=true +package.showUses=true +project.charset=UTF-8 +target1.editor.height=1010 +target1.editor.width=840 +target1.editor.x=840 +target1.editor.y=0 +target1.height=50 +target1.name=rectangle +target1.naviview.expanded=true +target1.showInterface=false +target1.type=ClassTarget +target1.typeParameters= +target1.width=80 +target1.x=160 +target1.y=10 +target2.editor.height=700 +target2.editor.width=900 +target2.editor.x=861 +target2.editor.y=341 +target2.height=50 +target2.name=StringParsing +target2.showInterface=false +target2.type=ClassTarget +target2.typeParameters= +target2.width=100 +target2.x=70 +target2.y=70 +target3.editor.height=700 +target3.editor.width=900 +target3.editor.x=628 +target3.editor.y=508 +target3.height=50 +target3.name=Annuity +target3.naviview.expanded=true +target3.showInterface=false +target3.type=ClassTarget +target3.typeParameters= +target3.width=80 +target3.x=70 +target3.y=10 diff --git a/Chapter 4 practice/rectangle.java b/Chapter 4 practice/rectangle.java new file mode 100644 index 00000000..bf5d5de8 --- /dev/null +++ b/Chapter 4 practice/rectangle.java @@ -0,0 +1,40 @@ +import java.util.Scanner; +/** + * like a square, but not... square + * + * @author arash + * @version (a version number or a date) + */ +public class rectangle +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class rectangle + */ + public rectangle() + { + // initialise instance variables + x = 0; + } + + public void main() + { + Scanner in = new Scanner(System.in); + System.out.print("what is the lenght? \t:"); + double length = in.nextDouble(); + System.out.print("what is the width \t:"); + double width = in.nextDouble(); + double area = length*width; + double perimeter = 2*length + 2*width; + double diagonal = Math.sqrt((Math.pow(length,2)+Math.pow(width,2))); + System.out.print("\nthe area is\t:"); + System.out.println(area); + System.out.print("the perimeter is\t:"); + System.out.println(perimeter); + System.out.print("the diagonal is\t:"); + System.out.println(diagonal); + } + +} diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej index 116151cd..f1ed5178 100644 --- a/Chapter3Practice/package.bluej +++ b/Chapter3Practice/package.bluej @@ -9,8 +9,8 @@ objectbench.height=76 objectbench.width=804 package.editor.height=838 package.editor.width=706 -package.editor.x=840 -package.editor.y=0 +package.editor.x=664 +package.editor.y=112 package.numDependencies=2 package.numTargets=9 package.showExtends=true From 80b343ca84fe1f779fa3d987c87c7d324b6e21a9 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Fri, 3 Oct 2014 15:10:06 -0500 Subject: [PATCH 06/11] did thing thang see above --- Chapter3Practice/package.bluej | 12 ++--- CityscapeLab/Building.java | 57 +++++++++++++++++++++ CityscapeLab/CityscapeComponent.java | 16 ++++-- CityscapeLab/PenroseBuilding.java | 40 +++++++++++++++ CityscapeLab/PortalBuilding.java | 40 +++++++++++++++ CityscapeLab/README.TXT | 4 +- CityscapeLab/package.bluej | 74 ++++++++++++++++++++-------- 7 files changed, 212 insertions(+), 31 deletions(-) create mode 100644 CityscapeLab/Building.java create mode 100644 CityscapeLab/PenroseBuilding.java create mode 100644 CityscapeLab/PortalBuilding.java diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej index f1ed5178..c794f26c 100644 --- a/Chapter3Practice/package.bluej +++ b/Chapter3Practice/package.bluej @@ -9,8 +9,8 @@ objectbench.height=76 objectbench.width=804 package.editor.height=838 package.editor.width=706 -package.editor.x=664 -package.editor.y=112 +package.editor.x=829 +package.editor.y=125 package.numDependencies=2 package.numTargets=9 package.showExtends=true @@ -45,8 +45,8 @@ target2.x=220 target2.y=20 target3.editor.height=523 target3.editor.width=900 -target3.editor.x=750 -target3.editor.y=543 +target3.editor.x=688 +target3.editor.y=370 target3.height=50 target3.name=TargetComponent target3.naviview.expanded=true @@ -85,8 +85,8 @@ target5.x=190 target5.y=50 target6.editor.height=598 target6.editor.width=958 -target6.editor.x=751 -target6.editor.y=32 +target6.editor.x=717 +target6.editor.y=257 target6.height=50 target6.name=Target target6.naviview.expanded=true diff --git a/CityscapeLab/Building.java b/CityscapeLab/Building.java new file mode 100644 index 00000000..ed520860 --- /dev/null +++ b/CityscapeLab/Building.java @@ -0,0 +1,57 @@ +import java.util.Random; +import java.awt.Graphics2D; +import java.awt.Color; +/** + * Creates a building object of a random height given max height + * + * @author Arresh + * @version (a version number or a date) + */ +public class Building +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class Building + */ + public Building(double startPosition, double yMax, double xMax) + { + // initialise instance variables + int blockHeight = 0; + double height = 0; + double width = 0; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre Assumes that t + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public void draw(Graphics2D g2) + { + // put your code here + Random generator = new random(); + Color lightGray = new Color(160,160,160); + Color darkGray = newColor(32,32,32); + blockHeight = generator.random(0,11); + height = blockHeight*(yMax/5); + width = xMax/ 10; + Building2D.Double base = new Building2D.Double(startPosition*xMax/10, yMax, width, height); + int pickColor = generator.random(0,2); + if (pickColor = 0) + { + g2.setColor(lightGray); + else + { + g2.setColor(darkGray); + } + } + g2.fill(base); + +} diff --git a/CityscapeLab/CityscapeComponent.java b/CityscapeLab/CityscapeComponent.java index 188f248e..6edf9241 100644 --- a/CityscapeLab/CityscapeComponent.java +++ b/CityscapeLab/CityscapeComponent.java @@ -26,10 +26,20 @@ public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; - // writing the code for my lab... + Building building1 = new Building(0, getHeight(), getWidth); + Building building2 = new Building(1, getHeight(), getWidth); + Building building3 = new Building(2, getHeight(), getWidth); + Building building4 = new Building(7, getHeigth(), getWidth); + Building building5 = new Building(8, getHeight(), getWidth); + Building building6 = new Building(9, getHeight(), getWidth); + + building1.draw(g2); + building2.draw(g2); + building3.draw(g2); + building4.draw(g2); + building5.draw(g2); + building6.draw(g2); - // create instances of classes and invoke the draw method on each - // ... } diff --git a/CityscapeLab/PenroseBuilding.java b/CityscapeLab/PenroseBuilding.java new file mode 100644 index 00000000..04d07a7d --- /dev/null +++ b/CityscapeLab/PenroseBuilding.java @@ -0,0 +1,40 @@ + + +/** + * Write a description of class PenroseBuilding here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class PenroseBuilding +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class PenroseBuilding + */ + public PenroseBuilding() + { + // initialise instance variables + x = 0; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public int sampleMethod(int y) + { + // put your code here + return x+y; + } + +} diff --git a/CityscapeLab/PortalBuilding.java b/CityscapeLab/PortalBuilding.java new file mode 100644 index 00000000..e706b410 --- /dev/null +++ b/CityscapeLab/PortalBuilding.java @@ -0,0 +1,40 @@ + + +/** + * Write a description of class PortalBuilding here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class PortalBuilding +{ + /** description of instance variable x (add comment for each instance variable) */ + private int x; + + /** + * Default constructor for objects of class PortalBuilding + */ + public PortalBuilding() + { + // initialise instance variables + x = 0; + } + + /** + * An example of a method - replace this comment with your own + * that describes the operation of the method + * + * @pre preconditions for the method + * (what the method assumes about the method's parameters and class's state) + * @post postconditions for the method + * (what the method guarantees upon completion) + * @param y description of parameter y + * @return description of the return value + */ + public int sampleMethod(int y) + { + // put your code here + return x+y; + } + +} diff --git a/CityscapeLab/README.TXT b/CityscapeLab/README.TXT index 1fafd5de..b0d6d0db 100644 --- a/CityscapeLab/README.TXT +++ b/CityscapeLab/README.TXT @@ -26,4 +26,6 @@ Extensions Submission * Submit a pull request in GitHub and submit a link to the request with this assignment. - \ No newline at end of file + +* +*component.repaint(); \ No newline at end of file diff --git a/CityscapeLab/package.bluej b/CityscapeLab/package.bluej index 1ec1b5b6..8c04b262 100644 --- a/CityscapeLab/package.bluej +++ b/CityscapeLab/package.bluej @@ -2,14 +2,17 @@ dependency1.from=CityscapeViewer dependency1.to=CityscapeComponent dependency1.type=UsesDependency +dependency2.from=CityscapeComponent +dependency2.to=Building +dependency2.type=UsesDependency objectbench.height=100 -objectbench.width=658 -package.editor.height=400 -package.editor.width=560 -package.editor.x=30 -package.editor.y=30 -package.numDependencies=1 -package.numTargets=2 +objectbench.width=963 +package.editor.height=398 +package.editor.width=865 +package.editor.x=691 +package.editor.y=44 +package.numDependencies=2 +package.numTargets=5 package.showExtends=true package.showUses=true project.charset=UTF-8 @@ -17,29 +20,58 @@ readme.editor.height=700 readme.editor.width=900 readme.editor.x=0 readme.editor.y=22 -target1.editor.height=700 -target1.editor.width=900 -target1.editor.x=70 -target1.editor.y=50 target1.height=50 -target1.name=CityscapeViewer -target1.naviview.expanded=false +target1.name=PortalBuilding target1.showInterface=false target1.type=ClassTarget target1.typeParameters= -target1.width=130 -target1.x=70 -target1.y=10 +target1.width=100 +target1.x=10 +target1.y=190 target2.editor.height=700 target2.editor.width=900 -target2.editor.x=368 -target2.editor.y=173 +target2.editor.x=703 +target2.editor.y=347 target2.height=50 -target2.name=CityscapeComponent +target2.name=CityscapeViewer target2.naviview.expanded=false target2.showInterface=false target2.type=ClassTarget target2.typeParameters= -target2.width=160 +target2.width=130 target2.x=70 -target2.y=70 +target2.y=10 +target3.height=50 +target3.name=PenroseBuilding +target3.showInterface=false +target3.type=ClassTarget +target3.typeParameters= +target3.width=120 +target3.x=100 +target3.y=130 +target4.editor.height=684 +target4.editor.width=900 +target4.editor.x=82 +target4.editor.y=58 +target4.height=50 +target4.name=Building +target4.naviview.expanded=true +target4.showInterface=false +target4.type=ClassTarget +target4.typeParameters= +target4.width=80 +target4.x=10 +target4.y=130 +target5.editor.height=700 +target5.editor.width=900 +target5.editor.x=704 +target5.editor.y=167 +target5.height=50 +target5.name=CityscapeComponent +target5.naviview.expanded=false +target5.showInterface=false +target5.type=ClassTarget +target5.typeParameters= +target5.width=160 +target5.x=70 +target5.y=70 From 62ef9e72ee39273a42a414e3c1e749f6d5f008a9 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Mon, 6 Oct 2014 15:09:16 -0500 Subject: [PATCH 07/11] did other thing see thing --- Chapter3Practice/package.bluej | 8 ++-- CityscapeLab/Building.java | 52 +++++++++++++++++-------- CityscapeLab/Building.java#backup | 57 ++++++++++++++++++++++++++++ CityscapeLab/CityscapeComponent.java | 12 +++--- CityscapeLab/package.bluej | 44 ++++++++++----------- 5 files changed, 125 insertions(+), 48 deletions(-) create mode 100644 CityscapeLab/Building.java#backup diff --git a/Chapter3Practice/package.bluej b/Chapter3Practice/package.bluej index c794f26c..4837da96 100644 --- a/Chapter3Practice/package.bluej +++ b/Chapter3Practice/package.bluej @@ -9,8 +9,8 @@ objectbench.height=76 objectbench.width=804 package.editor.height=838 package.editor.width=706 -package.editor.x=829 -package.editor.y=125 +package.editor.x=696 +package.editor.y=368 package.numDependencies=2 package.numTargets=9 package.showExtends=true @@ -85,8 +85,8 @@ target5.x=190 target5.y=50 target6.editor.height=598 target6.editor.width=958 -target6.editor.x=717 -target6.editor.y=257 +target6.editor.x=961 +target6.editor.y=298 target6.height=50 target6.name=Target target6.naviview.expanded=true diff --git a/CityscapeLab/Building.java b/CityscapeLab/Building.java index ed520860..ab71844a 100644 --- a/CityscapeLab/Building.java +++ b/CityscapeLab/Building.java @@ -1,5 +1,7 @@ import java.util.Random; +import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.Rectangle; import java.awt.Color; /** * Creates a building object of a random height given max height @@ -10,24 +12,35 @@ public class Building { /** description of instance variable x (add comment for each instance variable) */ - private int x; + private int blockHeight; + private double height; + private double width; + private double position; + private double floor; /** * Default constructor for objects of class Building + * @param startPosition Which block of 2 will the building spawn on + * @param yMax What is the maximum height + * @param xMax The max width */ public Building(double startPosition, double yMax, double xMax) { // initialise instance variables - int blockHeight = 0; - double height = 0; - double width = 0; + Random generator = new Random(); + blockHeight = generator.nextInt(11)+1; + height = blockHeight*(yMax/20); + width = xMax/ 10; + position = startPosition*xMax/10; + floor = yMax; + } /** * An example of a method - replace this comment with your own * that describes the operation of the method * - * @pre Assumes that t + * @pre Assumes that the * @post postconditions for the method * (what the method guarantees upon completion) * @param y description of parameter y @@ -36,22 +49,29 @@ public Building(double startPosition, double yMax, double xMax) public void draw(Graphics2D g2) { // put your code here - Random generator = new random(); + Random generator = new Random(); Color lightGray = new Color(160,160,160); - Color darkGray = newColor(32,32,32); - blockHeight = generator.random(0,11); - height = blockHeight*(yMax/5); - width = xMax/ 10; - Building2D.Double base = new Building2D.Double(startPosition*xMax/10, yMax, width, height); - int pickColor = generator.random(0,2); - if (pickColor = 0) + Color darkGray = new Color(42,42,42); + //Rectangle.Double base = new Rectangle.Double(position, floor, width, height); + Rectangle.Double base = new Rectangle.Double(position, floor-height, width, height); + int pickColor = generator.nextInt(2); + if (pickColor == 0) { g2.setColor(lightGray); + } else - { - g2.setColor(darkGray); - } + { + g2.setColor(darkGray); } g2.fill(base); + g2.setColor(Color.YELLOW); + for (int i = 1; i Date: Tue, 7 Oct 2014 01:50:42 -0500 Subject: [PATCH 08/11] work on lab lab on work --- CityscapeLab/Building.java | 24 ++++++++----- CityscapeLab/CityscapeComponent.java | 6 ++-- CityscapeLab/CityscapeViewer.java | 2 +- CityscapeLab/PenroseBuilding.java | 53 +++++++++++++++++++++------- CityscapeLab/package.bluej | 34 +++++++++++------- 5 files changed, 81 insertions(+), 38 deletions(-) diff --git a/CityscapeLab/Building.java b/CityscapeLab/Building.java index ab71844a..63933299 100644 --- a/CityscapeLab/Building.java +++ b/CityscapeLab/Building.java @@ -28,8 +28,8 @@ public Building(double startPosition, double yMax, double xMax) { // initialise instance variables Random generator = new Random(); - blockHeight = generator.nextInt(11)+1; - height = blockHeight*(yMax/20); + blockHeight = generator.nextInt(7)+2; + height = blockHeight*(yMax/12); width = xMax/ 10; position = startPosition*xMax/10; floor = yMax; @@ -41,10 +41,9 @@ public Building(double startPosition, double yMax, double xMax) * that describes the operation of the method * * @pre Assumes that the - * @post postconditions for the method + * @post A building that fits in the set constraints * (what the method guarantees upon completion) - * @param y description of parameter y - * @return description of the return value + * @param g2 the graphics object that will draw the building */ public void draw(Graphics2D g2) { @@ -64,12 +63,19 @@ public void draw(Graphics2D g2) g2.setColor(darkGray); } g2.fill(base); - g2.setColor(Color.YELLOW); for (int i = 1; i Date: Tue, 7 Oct 2014 15:09:34 -0500 Subject: [PATCH 09/11] Broke triangel Switch from x to y --- CityscapeLab/PenroseBuilding.java | 7 +++++++ CityscapeLab/package.bluej | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CityscapeLab/PenroseBuilding.java b/CityscapeLab/PenroseBuilding.java index e0fd8999..2f4803de 100644 --- a/CityscapeLab/PenroseBuilding.java +++ b/CityscapeLab/PenroseBuilding.java @@ -62,6 +62,13 @@ public void draw(Graphics2D g2) g2.draw(innerBottemSide); g2.draw(innerLeftSide); g2.draw(innerRightSide); + + double x = topVertex.getX() - (innerBottemSide.getX1()- innerBottemSide.getX1()/4); + double y = ((topVertex.getY()-rightVertex.getY())/(topVertex.getX()-rightVertex.getX()))*x + topVertex.getY() - + ((topVertex.getY()-rightVertex.getY())/(topVertex.getX()-rightVertex.getX()))*topVertex.getX(); + Point2D.Double middleTopVertex = new Point2D.Double(x,y); + Line2D.Double topVertexOutcrop = new Line2D.Double(middleTopVertex, topVertex); + g2.draw(topVertexOutcrop); } } diff --git a/CityscapeLab/package.bluej b/CityscapeLab/package.bluej index 19f03a0b..f9d97c6b 100644 --- a/CityscapeLab/package.bluej +++ b/CityscapeLab/package.bluej @@ -12,8 +12,8 @@ objectbench.height=100 objectbench.width=907 package.editor.height=398 package.editor.width=809 -package.editor.x=975 -package.editor.y=225 +package.editor.x=364 +package.editor.y=88 package.numDependencies=3 package.numTargets=5 package.showExtends=true @@ -59,8 +59,8 @@ target3.x=220 target3.y=200 target4.editor.height=891 target4.editor.width=1209 -target4.editor.x=279 -target4.editor.y=59 +target4.editor.x=324 +target4.editor.y=152 target4.height=50 target4.name=Building target4.naviview.expanded=true From 255dbfb43a93a0cf9778873b0f2ff129b0337c1a Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Wed, 15 Oct 2014 01:54:29 -0500 Subject: [PATCH 10/11] Added note to reveiwer see name --- CityscapeLab/NoteToReveiwer.java | 6 +++ CityscapeLab/package.bluej | 65 +++++++++++++++++++------------- 2 files changed, 45 insertions(+), 26 deletions(-) create mode 100644 CityscapeLab/NoteToReveiwer.java diff --git a/CityscapeLab/NoteToReveiwer.java b/CityscapeLab/NoteToReveiwer.java new file mode 100644 index 00000000..3e329826 --- /dev/null +++ b/CityscapeLab/NoteToReveiwer.java @@ -0,0 +1,6 @@ + +/* + * I lost a large portion of the code pertaining to the penrose triangle due to a github sync issue, + * so I know that it does not work. Please focus your commentary on the main building class, + * I know that the other parts have a lot of work before final turn in. + */ \ No newline at end of file diff --git a/CityscapeLab/package.bluej b/CityscapeLab/package.bluej index f9d97c6b..67eb6ad0 100644 --- a/CityscapeLab/package.bluej +++ b/CityscapeLab/package.bluej @@ -12,10 +12,10 @@ objectbench.height=100 objectbench.width=907 package.editor.height=398 package.editor.width=809 -package.editor.x=364 -package.editor.y=88 +package.editor.x=143 +package.editor.y=153 package.numDependencies=3 -package.numTargets=5 +package.numTargets=6 package.showExtends=true package.showUses=true project.charset=UTF-8 @@ -45,41 +45,54 @@ target2.width=100 target2.x=10 target2.y=190 target3.editor.height=700 -target3.editor.width=1116 -target3.editor.x=327 -target3.editor.y=95 +target3.editor.width=900 +target3.editor.x=183 +target3.editor.y=173 target3.height=50 -target3.name=PenroseBuilding +target3.name=NoteToReveiwer target3.naviview.expanded=true target3.showInterface=false target3.type=ClassTarget target3.typeParameters= target3.width=120 -target3.x=220 -target3.y=200 -target4.editor.height=891 -target4.editor.width=1209 -target4.editor.x=324 -target4.editor.y=152 +target3.x=210 +target3.y=10 +target4.editor.height=700 +target4.editor.width=1116 +target4.editor.x=327 +target4.editor.y=95 target4.height=50 -target4.name=Building +target4.name=PenroseBuilding target4.naviview.expanded=true target4.showInterface=false target4.type=ClassTarget target4.typeParameters= -target4.width=80 -target4.x=10 -target4.y=130 -target5.editor.height=700 -target5.editor.width=891 -target5.editor.x=-924 -target5.editor.y=140 +target4.width=120 +target4.x=220 +target4.y=200 +target5.editor.height=891 +target5.editor.width=1209 +target5.editor.x=324 +target5.editor.y=152 target5.height=50 -target5.name=CityscapeComponent -target5.naviview.expanded=false +target5.name=Building +target5.naviview.expanded=true target5.showInterface=false target5.type=ClassTarget target5.typeParameters= -target5.width=160 -target5.x=270 -target5.y=80 +target5.width=80 +target5.x=10 +target5.y=130 +target6.editor.height=700 +target6.editor.width=891 +target6.editor.x=-924 +target6.editor.y=140 +target6.height=50 +target6.name=CityscapeComponent +target6.naviview.expanded=false +target6.showInterface=false +target6.type=ClassTarget +target6.typeParameters= +target6.width=160 +target6.x=270 +target6.y=80 From f5282c381369cfbe34bb8a63220074e7739039b9 Mon Sep 17 00:00:00 2001 From: Count-Dantes Date: Sun, 19 Oct 2014 21:59:49 -0500 Subject: [PATCH 11/11] Final changes removed andrew and penrose :( added new sun :) --- CityscapeLab/AndrewT.java | 27 +++++++ CityscapeLab/Background.java | 47 +++++++++++ CityscapeLab/Building.java | 1 - CityscapeLab/CityscapeComponent.java | 16 +++- CityscapeLab/CityscapeViewer.java | 4 +- CityscapeLab/PenroseBuilding.java | 2 +- CityscapeLab/Sun.java | 67 ++++++++++++++++ CityscapeLab/andrew_arpan_heart2.0.jpg | Bin 0 -> 13642 bytes CityscapeLab/andrew_arpan_heart2.jpg | Bin 0 -> 13642 bytes CityscapeLab/box1.jpg | Bin 0 -> 3427 bytes CityscapeLab/package.bluej | 106 +++++++++++++++++-------- 11 files changed, 230 insertions(+), 40 deletions(-) create mode 100644 CityscapeLab/AndrewT.java create mode 100644 CityscapeLab/Background.java create mode 100644 CityscapeLab/Sun.java create mode 100644 CityscapeLab/andrew_arpan_heart2.0.jpg create mode 100644 CityscapeLab/andrew_arpan_heart2.jpg create mode 100644 CityscapeLab/box1.jpg diff --git a/CityscapeLab/AndrewT.java b/CityscapeLab/AndrewT.java new file mode 100644 index 00000000..3f979a61 --- /dev/null +++ b/CityscapeLab/AndrewT.java @@ -0,0 +1,27 @@ +import java.awt.*; +import javax.swing.*; +import java.io.*; +import javax.imageio.*; +import java.awt.Toolkit; +import java.awt.Graphics; +public class AndrewT extends JFrame +{ + public AndrewT() + { + //this code based on http://www.dreamincode.net/forums/topic/142056-putting-images-into-jframes/ + /*ImageIcon andrew = new ImageIcon ("andrew_arpan_heart.jpg"); + JLabel label = new JLabel (andrew); + add(label); + setSize(0,0); + setVisible(true); + add(andrew); + */ + + + } + public void draw(Graphics g) + { + Image andrew = Toolkit.getDefaultToolkit().createImage("andrew_arpan_heart2.jpg"); + g.drawImage(andrew,0,0,null); + } +} \ No newline at end of file diff --git a/CityscapeLab/Background.java b/CityscapeLab/Background.java new file mode 100644 index 00000000..677dcbfb --- /dev/null +++ b/CityscapeLab/Background.java @@ -0,0 +1,47 @@ +import java.awt.GradientPaint; +import java.awt.Color; +import java.awt.Rectangle; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.util.Random; +/** + * Creates the background for the back of the city + * + * @author (your name) + * @version (a version number or a date) + */ +public class Background +{ + // height the height of the window + // width The width of the window + private int height; + private int width; + + + /** + * Constructor for objects of class Background + */ + public Background(int pullHeight, int pullWidth) + { + // initialise instance variables + height = pullHeight; + width = pullWidth; + } + + /** + * goes through the entire frame and creates a red to blue color gradient + * @param y a sample parameter for a method + * @return the sum of x and y + */ + public void draw(Graphics2D g2) + { + // put your code here + for (float i=0; i < width; i++) + { + GradientPaint gradient = new GradientPaint(i,0,Color.BLUE,i,height,Color.RED,true); + g2.setPaint(gradient); + Rectangle backgroundSegment = new Rectangle((int)i,0,1,height); + g2.fill(backgroundSegment); + } +} +} diff --git a/CityscapeLab/Building.java b/CityscapeLab/Building.java index 63933299..6ff84ed3 100644 --- a/CityscapeLab/Building.java +++ b/CityscapeLab/Building.java @@ -40,7 +40,6 @@ public Building(double startPosition, double yMax, double xMax) * An example of a method - replace this comment with your own * that describes the operation of the method * - * @pre Assumes that the * @post A building that fits in the set constraints * (what the method guarantees upon completion) * @param g2 the graphics object that will draw the building diff --git a/CityscapeLab/CityscapeComponent.java b/CityscapeLab/CityscapeComponent.java index d10d0e39..a73aeaf7 100644 --- a/CityscapeLab/CityscapeComponent.java +++ b/CityscapeLab/CityscapeComponent.java @@ -23,9 +23,13 @@ public class CityscapeComponent extends JComponent * @return description of the return value */ public void paintComponent(Graphics g) + //throws InterruptedException { + //throws InterruptedException Graphics2D g2 = (Graphics2D) g; + Background background1 = new Background(getHeight(), getWidth()); + Building building1 = new Building(0, getHeight(), getWidth() ); Building building2 = new Building(1, getHeight(), getWidth() ); Building building3 = new Building(2, getHeight(), getWidth() ); @@ -33,17 +37,21 @@ public void paintComponent(Graphics g) Building building5 = new Building(8, getHeight(), getWidth() ); Building building6 = new Building(9, getHeight(), getWidth() ); - PenroseBuilding leftPenrose = new PenroseBuilding(0, getWidth(), getHeight()); - PenroseBuilding rightPenrose = new PenroseBuilding(7*getWidth()/10, getWidth(), getHeight()); + //AndrewT andrew = new AndrewT(); + + Sun blackHoleSun = new Sun(0, getWidth(), getHeight()); + background1.draw(g2); building1.draw(g2); building2.draw(g2); building3.draw(g2); building4.draw(g2); building5.draw(g2); building6.draw(g2); - leftPenrose.draw(g2); - rightPenrose.draw(g2); + blackHoleSun.draw(g2); + //andrew.draw(g2); + } + } diff --git a/CityscapeLab/CityscapeViewer.java b/CityscapeLab/CityscapeViewer.java index 1456edfb..8ca70486 100644 --- a/CityscapeLab/CityscapeViewer.java +++ b/CityscapeLab/CityscapeViewer.java @@ -12,13 +12,13 @@ public class CityscapeViewer * main method for the program which creates and configures the frame for the program * */ - public static void main(String[] args) + public static void main(String args[]) { // create and configure the frame (window) for the program JFrame frame = new JFrame(); frame.setSize(1000 /* x */, 600 /* y */); - frame.setTitle("Cityscape"); + frame.setTitle("Andrew's zone"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // a frame contains a single component; create the Cityscape component and add it to the frame diff --git a/CityscapeLab/PenroseBuilding.java b/CityscapeLab/PenroseBuilding.java index 2f4803de..6dfd3c1d 100644 --- a/CityscapeLab/PenroseBuilding.java +++ b/CityscapeLab/PenroseBuilding.java @@ -66,7 +66,7 @@ public void draw(Graphics2D g2) double x = topVertex.getX() - (innerBottemSide.getX1()- innerBottemSide.getX1()/4); double y = ((topVertex.getY()-rightVertex.getY())/(topVertex.getX()-rightVertex.getX()))*x + topVertex.getY() - ((topVertex.getY()-rightVertex.getY())/(topVertex.getX()-rightVertex.getX()))*topVertex.getX(); - Point2D.Double middleTopVertex = new Point2D.Double(x,y); + Point2D.Double middleTopVertex = new Point2D.Double(x/2,y/2); Line2D.Double topVertexOutcrop = new Line2D.Double(middleTopVertex, topVertex); g2.draw(topVertexOutcrop); } diff --git a/CityscapeLab/Sun.java b/CityscapeLab/Sun.java new file mode 100644 index 00000000..1079f984 --- /dev/null +++ b/CityscapeLab/Sun.java @@ -0,0 +1,67 @@ +import java.util.Random; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.awt.Color; +import java.awt.geom.Line2D; +import java.awt.geom.Point2D; +import java.awt.geom.Ellipse2D; +import java.util.Random; +import java.awt.GradientPaint; +/** + * Creates an image of the sun + * + * @Arresh Amleshi + * @version (a version number or a date) + */ +public class Sun +{ + // instance variables - replace the example below with your own + private double xFrame; + private double yFrame; + private double xMax; + private double yMax; + private double position; + + /** + * Constructor for objects of class Sun + */ + public Sun(double startPosition,double initxMax,double inityMax) + { + // initialise instance variables + xMax = initxMax; + yMax = inityMax; + xFrame = 3*xMax/10; + yFrame = yMax/3; + position = startPosition; + } + + + /** + * creates a round sun in the upper left corner that has a random color gradient + * + * @g2 is the Graphics2D that needs to draw it + * @return a round sun with a colour gradient + */ + public void draw(Graphics2D g2) + //throws InterruptedException + { + // put your code here + Random generator = new Random(); + Color randomColor1 = new Color(generator.nextInt(255), generator.nextInt(255), + generator.nextInt(255)); + Color randomColor2 = new Color(generator.nextInt(255), generator.nextInt(255), + generator.nextInt(255)); + GradientPaint gradient = new GradientPaint(0,0,randomColor1,0,255,randomColor2,true); + g2.setPaint(gradient); + Rectangle.Double fullBound = new Rectangle.Double(position,0,xFrame, yFrame); + g2.setPaint(gradient); + //g2.draw(fullBound); + Rectangle.Double squareBound = new Rectangle.Double(position + xFrame/6 ,0,2*xFrame/3 ,yFrame); + g2.draw(squareBound); + Ellipse2D.Double sun = new Ellipse2D.Double(position + xFrame/6 , 0, 2*xFrame/3, yFrame); + g2.fill(sun); + } +} + + diff --git a/CityscapeLab/andrew_arpan_heart2.0.jpg b/CityscapeLab/andrew_arpan_heart2.0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bf3f453f5169244be9b96ba21f2a47dfcb79961 GIT binary patch literal 13642 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 EKP-CN$p8QV literal 0 HcmV?d00001 diff --git a/CityscapeLab/andrew_arpan_heart2.jpg b/CityscapeLab/andrew_arpan_heart2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bf3f453f5169244be9b96ba21f2a47dfcb79961 GIT binary patch literal 13642 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 EKP-CN$p8QV literal 0 HcmV?d00001 diff --git a/CityscapeLab/box1.jpg b/CityscapeLab/box1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e3f915b2fb0ac1f26ffce629dd75ee1ae3366bc3 GIT binary patch literal 3427 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 literal 0 HcmV?d00001 diff --git a/CityscapeLab/package.bluej b/CityscapeLab/package.bluej index 67eb6ad0..8743adda 100644 --- a/CityscapeLab/package.bluej +++ b/CityscapeLab/package.bluej @@ -6,16 +6,19 @@ dependency2.from=CityscapeComponent dependency2.to=Building dependency2.type=UsesDependency dependency3.from=CityscapeComponent -dependency3.to=PenroseBuilding +dependency3.to=Background dependency3.type=UsesDependency +dependency4.from=CityscapeComponent +dependency4.to=Sun +dependency4.type=UsesDependency objectbench.height=100 -objectbench.width=907 -package.editor.height=398 -package.editor.width=809 -package.editor.x=143 -package.editor.y=153 -package.numDependencies=3 -package.numTargets=6 +objectbench.width=1132 +package.editor.height=672 +package.editor.width=1034 +package.editor.x=-1161 +package.editor.y=131 +package.numDependencies=4 +package.numTargets=9 package.showExtends=true package.showUses=true project.charset=UTF-8 @@ -42,8 +45,8 @@ target2.showInterface=false target2.type=ClassTarget target2.typeParameters= target2.width=100 -target2.x=10 -target2.y=190 +target2.x=890 +target2.y=80 target3.editor.height=700 target3.editor.width=900 target3.editor.x=183 @@ -55,12 +58,12 @@ target3.showInterface=false target3.type=ClassTarget target3.typeParameters= target3.width=120 -target3.x=210 -target3.y=10 +target3.x=820 +target3.y=180 target4.editor.height=700 target4.editor.width=1116 -target4.editor.x=327 -target4.editor.y=95 +target4.editor.x=-1140 +target4.editor.y=167 target4.height=50 target4.name=PenroseBuilding target4.naviview.expanded=true @@ -68,31 +71,70 @@ target4.showInterface=false target4.type=ClassTarget target4.typeParameters= target4.width=120 -target4.x=220 -target4.y=200 -target5.editor.height=891 -target5.editor.width=1209 -target5.editor.x=324 -target5.editor.y=152 +target4.x=810 +target4.y=130 +target5.editor.height=700 +target5.editor.width=900 +target5.editor.x=-986 +target5.editor.y=217 target5.height=50 -target5.name=Building +target5.name=Sun target5.naviview.expanded=true target5.showInterface=false target5.type=ClassTarget target5.typeParameters= target5.width=80 -target5.x=10 -target5.y=130 -target6.editor.height=700 -target6.editor.width=891 -target6.editor.x=-924 -target6.editor.y=140 +target5.x=260 +target5.y=480 +target6.editor.height=708 +target6.editor.width=1029 +target6.editor.x=-1050 +target6.editor.y=220 target6.height=50 -target6.name=CityscapeComponent -target6.naviview.expanded=false +target6.name=Building +target6.naviview.expanded=true target6.showInterface=false target6.type=ClassTarget target6.typeParameters= -target6.width=160 -target6.x=270 -target6.y=80 +target6.width=80 +target6.x=10 +target6.y=130 +target7.editor.height=700 +target7.editor.width=900 +target7.editor.x=-1046 +target7.editor.y=235 +target7.height=50 +target7.name=AndrewT +target7.naviview.expanded=true +target7.showInterface=false +target7.type=ClassTarget +target7.typeParameters= +target7.width=80 +target7.x=790 +target7.y=80 +target8.editor.height=700 +target8.editor.width=900 +target8.editor.x=-1031 +target8.editor.y=250 +target8.height=50 +target8.name=Background +target8.naviview.expanded=true +target8.showInterface=false +target8.type=ClassTarget +target8.typeParameters= +target8.width=90 +target8.x=480 +target8.y=40 +target9.editor.height=700 +target9.editor.width=891 +target9.editor.x=-924 +target9.editor.y=140 +target9.height=50 +target9.name=CityscapeComponent +target9.naviview.expanded=false +target9.showInterface=false +target9.type=ClassTarget +target9.typeParameters= +target9.width=160 +target9.x=290 +target9.y=280