Java Programming Assignment
.
Description: Unit 11 - Classes and Objects in Java
This unit is about creating and using classes to define new objects in Java.
Your tasks for the week are:
Read Chapter 9 up to and including section 9.4 Example – Array of Objects: Monopoly Board Squares.
Complete Lab 9A – Creating Multiple Independent Class Files in IntelliJ IDEA. This does not need to be submitted for a grade, it is intended to show you how to create independent class files in IntelliJ. It is preparation for the programming assignment you will submit.
Complete the Unit 11 Programming Assignment. It is the exercise at the end of the chapter: Creating A Player Class for a Monopoly Game. It requires you to create a new class for a player in a simplified version of a Monopoly game, and then add instructions to the main() method in the Project's executable class to test your Player class.
Complete the exercise at the end of the chapter 9: Creating A Player Class for a Monopoly Game. This is the programming project for the Chapter. It requires you to create a new class for a player in a simplified version of a Monopoly game and then add instructions to the main() method in the Project's executable class to test your Player class.
Description: Unit 12 - Java Graphics
The topic for this unit is drawing graphics in Java using the Canvas class and the Graphics class.
Your tasks are to:
read Chapter 11 - Java Graphics
explore the sample graphics programs.
complete the graphics programming project, which will be you final project.
All work for the semester must be submitted before the semester deadline -- the end of the day on Thursday, December 12, 2019. Please start your project as early as possible so that you have time to experiment with graphics and think about your design.
Your task for this assignment is use the Java Canvas and Graphics classes to create an example of a computer generated image. This is an opportunity for you to explore computer graphics and exercise some individual creativity.
You should submit well-documented code, along with a lab report describing your work. What happened in the process of exploration and design for your project? How does your code work? How did you use other features of Java, such as branching routines or loops in your work? Tell us about the thoughts behind your finished work. What influenced your work?
Your work can be as simple or as complex as you would like, but be careful about taking on something that will be enormously time consuming. If you decide to work on figurative art, It might help to start with a single idea or concept, such as snowfall in the city, or along the Schuylkill. Abstract or figurative art can both be static or dynamic. Imagine how, for example, the Bedroom Window example at the end of this chapter could be subtly dynamic.
Your finished image for this project should be suitable for a general audience.
This assignment will be the final project for our class, which you will submit as an assignment and which will be presented to your fellow students using a class discussion.
Monopoly/.idea/misc.xml
Monopoly/.idea/modules.xml
Monopoly/.idea/workspace.xml
1574779618329 1574779618329
Monopoly/build.xml
Builds, tests, and runs the project Monopoly.
Monopoly/build/built-jar.properties
#Sun, 24 Nov 2013 12:45:02 -0500 C\:\\Users\\cherbert\\Desktop\\NetBeansProjects\\Monopoly=
Monopoly/build/classes/.netbeans_automatic_build
Monopoly/build/classes/.netbeans_update_resources
Monopoly/build/classes/monopoly/BoardSquare.class
package monopoly;
synchronized class BoardSquare {
private String name;
private String type;
private int price;
private int rent;
private String color;
public void BoardSquare();
public void BoardSquare(String, String, int, int, String);
public String getName();
public String getType();
public int getPrice();
public int getRent();
public String getColor();
public String toString();
}
Monopoly/build/classes/monopoly/Monopoly.class
package monopoly;
public synchronized class Monopoly {
public void Monopoly();
public static void main(String[]) throws Exception;
public static void loadArray(BoardSquare[]) throws Exception;
}
Monopoly/build/classes/monopoly/Monopoly.rs
monopoly.Monopoly monopoly.BoardSquare
Monopoly/manifest.mf
Manifest-Version: 1.0 X-COMMENT: Main-Class will be added automatically by build
Monopoly/Monopoly.iml
Monopoly/Monopoly1.iml
Monopoly/nbproject/build-impl.xml
Must set src.dir Must set test.src.dir Must set build.dir Must set dist.dir Must set build.classes.dir Must set dist.javadoc.dir Must set build.test.classes.dir Must set build.test.results.dir Must set build.classes.excludes Must set dist.jar Must set javac.includes No tests executed. Must set JVM to use for profiling in profiler.info.jvm Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
Monopoly/nbproject/genfiles.properties
build.xml.data.CRC32=f3074cd0 build.xml.script.CRC32=57d6b473 build.xml.stylesheet.CRC32=8064a381@1.75.2.48 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. nbproject/build-impl.xml.data.CRC32=f3074cd0 nbproject/build-impl.xml.script.CRC32=f24615cf nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
Monopoly/nbproject/private/private.properties
compile.on.save=true user.properties.file=C:\\Users\\Chuck\\AppData\\Roaming\\NetBeans\\8.0.2\\build.properties
Monopoly/nbproject/private/private.xml
file:/C:/Users/Chuck/Documents/NetBeansProjects/Monopoly/src/monopoly/Monopoly.java
Monopoly/nbproject/project.properties
annotation.processing.enabled=true annotation.processing.enabled.in.editor=false annotation.processing.processor.options= annotation.processing.processors.list= annotation.processing.run.all.processors=true annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output build.classes.dir=${build.dir}/classes build.classes.excludes=**/*.java,**/*.form # This directory is removed when the project is cleaned: build.dir=build build.generated.dir=${build.dir}/generated build.generated.sources.dir=${build.dir}/generated-sources # Only compile against the classpath explicitly listed here: build.sysclasspath=ignore build.test.classes.dir=${build.dir}/test/classes build.test.results.dir=${build.dir}/test/results # Uncomment to specify the preferred debugger connection transport: #debug.transport=dt_socket debug.classpath=\ ${run.classpath} debug.test.classpath=\ ${run.test.classpath} # This directory is removed when the project is cleaned: dist.dir=dist dist.jar=${dist.dir}/Monopoly.jar dist.javadoc.dir=${dist.dir}/javadoc excludes= includes=** jar.compress=false javac.classpath= # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false javac.processorpath=\ ${javac.classpath} javac.source=1.7 javac.target=1.7 javac.test.classpath=\ ${javac.classpath}:\ ${build.classes.dir} javac.test.processorpath=\ ${javac.test.classpath} javadoc.additionalparam= javadoc.author=false javadoc.encoding=${source.encoding} javadoc.noindex=false javadoc.nonavbar=false javadoc.notree=false javadoc.private=false javadoc.splitindex=true javadoc.use=true javadoc.version=false javadoc.windowtitle= main.class=monopoly.Monopoly manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF mkdist.disabled=false platform.active=default_platform run.classpath=\ ${javac.classpath}:\ ${build.classes.dir} # Space-separated list of JVM arguments used when running the project. # You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. # To set system properties for unit tests define test-sys-prop.name=value: run.jvmargs= run.test.classpath=\ ${javac.test.classpath}:\ ${build.test.classes.dir} source.encoding=UTF-8 src.dir=src test.src.dir=test
Monopoly/nbproject/project.xml
org.netbeans.modules.java.j2seproject Monopoly
Monopoly/out/production/Monopoly/monopoly/BoardSquare.class
package monopoly;
public synchronized class BoardSquare {
private String name;
private String type;
private int price;
private int rent;
private String color;
public void BoardSquare();
public void BoardSquare(String, String, int, int, String);
public String getName();
public String getType();
public int getPrice();
public int getRent();
public String getColor();
public String toString();
}
Monopoly/out/production/Monopoly/monopoly/Monopoly.class
package monopoly;
public synchronized class Monopoly {
public void Monopoly();
public static void main(String[]) throws Exception;
public static void loadArray(BoardSquare[]) throws Exception;
public static void printArray(BoardSquare[]) throws Exception;
}
Monopoly/out/production/Monopoly1/monopoly/BoardSquare.class
package monopoly;
public synchronized class BoardSquare {
private String name;
private String type;
private int price;
private int rent;
private String color;
public void BoardSquare();
public void BoardSquare(String, String, int, int, String);
public String getName();
public String getType();
public int getPrice();
public int getRent();
public String getColor();
public String toString();
}
Monopoly/out/production/Monopoly1/monopoly/Monopoly.class
package monopoly;
public synchronized class Monopoly {
public void Monopoly();
public static void main(String[]) throws Exception;
public static void loadArray(BoardSquare[]) throws Exception;
public static void printArray(BoardSquare[]) throws Exception;
}
Monopoly/squares.txt
Go plain 0 0 null Mediterranean Ave. property 2 60 Dark Purple Community Chest card 0 0 null Baltic Ave. property 4 60 Dark Purple Income Tax tax 200 0 null Reading Railroad railroad 25 200 null Oriental Ave property 6 100 Light Blue Chance card 0 0 null Vermont Ave. property 6 100 Light Blue Connecticut Ave. property 8 120 Light Blue Jail/Just Visiting plain 0 0 null St. Charles Place property 10 140 Light Purple Electric Company utility 10 150 null States Ave. property 10 140 Light Purple Virginia Ave. property 12 160 Light Purple Pennsylvania Railroad railroad 25 200 null St. James Place property 14 180 Orange Community Chest card 0 0 null Tennessee Ave. property 14 180 Orange New York Ave. property 16 200 Orange Free Parking plain 0 0 null Kentucky Ave. property 18 220 Red Chance card 0 0 null Indiana Ave. property 18 220 Red Illinois Ave. property 20 240 Red B & O Railroad railroad 25 200 null Atlantic Ave. property 22 260 Yellow Ventnor Ave. property 22 260 Yellow Water Works utility 10 150 null Marvin Gardens property 24 280 Yellow Go To Jail toJail 0 0 null Pacific Ave. property 26 300 Green No. Carolina Ave. property 26 300 Green Community Chest card 0 0 null Pennsylvania Ave. property 28 320 Green Short Line Railroad railroad 25 200 null Chance chance 0 0 null Park Place property 25 350 Dark Blue Luxury Tax tax 100 0 null Boardwalk property 50 400 Dark Blue
Monopoly/src/monopoly/BoardSquare.java
Monopoly/src/monopoly/BoardSquare.java
/* BoardSquare.java
* CSCI 111 Fall 2019
* last edited November 22, 2019 by C. Herbert
*
* This file defines the BoardSquare class
* for BoardSquare objects in a simplified version of a Monopoly game.
* The BoardSquare class is required for the project to work properly.
*
* This is for teaching purposes only.
* Monopoly and the names and images used in Monopoly are
* registered trademarks of Parker Brothers, Hasbro, and others.
*/
package monopoly ;
public class BoardSquare {
private String name ; // the name of the square
private String type ; // property, railroad, utility, or community
private int price ; // cost to buy the square; zero means not for sale
private int rent ; // rent paid by a player who lands on the square
private String color ; // many are null; this is not the Java Color class
// constructors
public BoardSquare () {
name = "" ;
type = "" ;
price = 0 ;
rent = 0 ;
color = "" ;
} // end Square()
public BoardSquare ( String name , String type , int price , int rent , String color ) {
this . name = name ;
this . type = type ;
this . price = price ;
this . rent = rent ;
this . color = color ;
} // end BoardSquare()
// accessors for each property
public String getName () {
return name ;
} //end getName()
public String getType () {
return type ;
} //end getType()
public int getPrice () {
return price ;
} //end getPrice()
public int getRent () {
return rent ;
} //end getRent()
public String getColor () {
return color ;
} //end getColor()
// a method to return the BoardSquare's data as a String
public String toString () {
String info ;
info = ( name + ", " + type + ", " + price + ", " + rent + ", " + color );
return info ;
} //end toString()
} // end class BoardSquare
//***************************************************************************
Monopoly/src/monopoly/Monopoly.java
Monopoly/src/monopoly/Monopoly.java
/* Monopoly.java
* CSCI 111 Fall 2019
* last edited November 22, 2019 by C. Herbert
*
* This file contains the executable class Monopoly
* for a simplified version of a Monopoly game.
* It requires access to the BoardSquare class to work properly.
*
* The software creates an array for 40 BoardSquares and loads data
* into the array from a simple text data file
*
*It also has code to test the program by printing the data from the array
*
* This is for teaching purposes only.
* Monopoly and the names and images used in Monopoly are
* registered trademarks of Parker Brothers, Hasbro, and others.
*/
package monopoly ;
import java . util . * ;
public class Monopoly {
public static void main ( String [] args ) throws Exception {
// create an array for the 40 squares on a Monopoly board
BoardSquare [] square = new BoardSquare [ 40 ]; // array of 40 monopoly squares
// call the method to load the array
loadArray ( square );
// test the code by printing the data for each square
printArray ( square );
} // end main()
//***********************************************************************
// method to load the BoardSquare array from a data file
public static void loadArray ( BoardSquare [] sq ) throws Exception {
// declare temporary variables to hold BoardSquare properties read from a file
// each variable corresponds by name to a property of a BoardSquare object
String inName ;
String inType ;
int inPrice ;
int inRent ;
String inColor ;
// Create a File class object linked to the name of the file to be read
java . io . File squareFile = new java . io . File ( "squares.txt" );
// Create a Scanner named infile to read the input stream from the file
Scanner infile = new Scanner ( squareFile );
/* This loop reads data into the array of BoardSquares.
* Each item of data is a separate line in the file.
* There are 40 sets of data for the 40 squares.
*/
for ( int i = 0 ; i < 40 ; i ++ ) {
// read data from the file into temporary variables
// read Strings directly; parse integers
inName = infile . nextLine ();
inType = infile . nextLine ();
inRent = Integer . parseInt ( infile . nextLine ());
inPrice = Integer . parseInt ( infile . nextLine ());
inColor = infile . nextLine ();
// initialze each array element with the BoardSquare initializing constructor
sq [ i ] = new BoardSquare ( inName , inType , inPrice , inRent , inColor );
} // end for
infile . close ();
} // endLoadArray
//***********************************************************************
// test method to print data from the array of BoarsSquares
public static void printArray ( BoardSquare [] sq ) throws Exception {
// print header above each row
System . out . println ( "Data from the array of Monopoly board squares.\n" );
System . out . printf ( "%-22s%-12s%6s%6s%14s%n" , "name" , "type" , "price" , "rent" , "color" );
System . out . println ( "****************************************************************" );
// print data in formatted columns, one square per row
for ( int i = 0 ; i < 40 ; i ++ ) {
System . out . printf ( "%-22s" , sq [ i ]. getName ());
System . out . printf ( "%-12s" , sq [ i ]. getType ());
System . out . printf ( "%6d" , sq [ i ]. getPrice ());
System . out . printf ( "%6d" , sq [ i ]. getRent ());
System . out . printf ( "%14s%n" , sq [ i ]. getColor ());
} // end for
} // end printArray
//***********************************************************************
} // end class BoardSquare
//***************************************************************************