Related questions
The purpose of this assignment is to practice OOP with Decisions, Loops, Arrays and ArrayList,
Input/Output Files, and Constructing Objects and Classes. Create a NetBeans project named
HW2_YourId. Develop classes for the required solutions.
Important: Apply good programming practices:
- Provide API documentation comments for your class(s), class constructor(s) and method(s)
using the Java standard form for documentation comments discussed in this course.
- Use meaningful variable and constant names.
- Show your name, university id and section number as a comment at the start of each class.
- Submit to Moodle the compressed file of your project with name "HW2_yourID" along with
a PDF file that contains all your code.
Problem:
Bugs are simple creatures that only know how to walk towards other bugs. Bugs maintain
information about their (x, y) position; by which it can tell if they are standing next to other bugs.
Watch the following video: bug movement.
Create a java project that simulate bugs movement. You need to write a class "Bug" that models a
bug moving along a straight line and it can turn to change its direction counterclockwise (i.e. 90
degree to the left; north west south east north). In each move, its position changes by
one unit in the current direction. Details of the "Bug" class is described below.
Your simulator should read information of an unknown number of "Bug" objects from an input
file called "Bugs.txt". Each line represents a bug and the initial position and facing direction of this
particular bug. Keeping the first bug position as a reference the simulator should move the second
bug next to the first bug forming a cluster and its final position and direction should be stored into
a list. The simulator should then read the third bug and moves it towards either the first or the
second bug, then add its information to the list. The consequent bugs should move next to any bug
in the list (i.e. randomly selected), as soon as it join the cluster its information should be stored in
the list. This process should continue until no bugs remain. Notice that at the end each bug has its
unique position; i.e. no two bugs can stand at exactly the same (x, y) position. When a bug starts
moving, the simulator should randomly select its path vertically or horizontally towards the cluster.
This results different possible bug cluster shapes each time you run the simulator. See the figure 1
below as an example of bug movement simulator resulting a cluster.
Original positions Possible Cluster sample-1 Possible Cluster sample-2
2
Figure 1 Example of bug movement simulator forming a cluster
As soon as the final cluster is formed, your program should display the details of the bug available in
the simulator in an output file "BugsSimulator.txt". Figure 2 and 3 shows a sample input file and the
corresponding possible output files forming different clusters.
Bug Class: a bug has a code, original location at a point with integer coordinates, faces north, east,
south, or west and keeps a record of all its current movement position. The class generate a unique
code for each new "bug" object created starting with value "b-100". It also includes the following
methods:
- A default constructor that initializes bug’s code to "b-xxx"; where "xxx" is the next code
sequence number in the class, positions to (0,0), and direction to WEST.
- A constructor that is given bug’s information: starting location, facing direction and generates
bug code similarly to the default constructor.
- Accessor methods to access all the instance variables and the simulated movements of the
bug.
- Mutator methods that change the instance variables to given values and they make the change
for only suitable values.
- turn method that changes the direction of the bug counterclockwise.
- move method that moves the bug by one unit in the direction it is facing.
Trending nowThis is a popular solution!
Step by stepSolved in 2 steps
- Refer to the following interface: Provide two examples (screenshots) that in many ways could improve the above or similar interface using the principles of direct manipulation. Explain the relevant improvements as well. (Examples might have different object, labels and organization)arrow_forwardCreate a subclass named Square from the superclass GeometricObject. Create an instance variable named width with initial value 0. Create a no-arg constructor. Create the another constructor, which has one parameter named wid. Assign the wid to the instance variable named width. Create the getWidth() method, the setWidth() method. Override the getArea() method. Override the getPerimeter() method. Create a test class named Test to create an instance with wid= 6 from Square class. Call the getArea() and getPermeter() methods to print out the area and perimeter of the square with width=6.arrow_forwardIn Java programming. Write the code to create an object of each type of class. The names of the objects created in this part will be used for further requirements in this phase. Class Name: Customer Class Name: Inventory Class Name: OrderHeader Class Name: OrderDetail Class Name: Invoice Class Name: Shipment Four lines of code, one for each class defined above.arrow_forward
- Please help me with these two java programs. Don’t make it complex.arrow_forwardI would to have an accurate Java programming for this example. It should follow the exact match output. Thanks!arrow_forwardCan comments be added to describe the functionality of each class/method and any other important detail worth knowing about? Also, does the program follow standard practices of modularity? Thank youarrow_forward
- Directions: SHOW ALL YOUR WORK. REMEMBER THAT PROGRAM SEGMENTS ARE TO BE WRITTEN IN JAVA. Notes: • Assume that the classes listed in the Java Quick Reference have been imported where appropriate. • Unless otherwise noted in the question, assume that parameters in method calls are not null and that methods are called only when their preconditions are satisfied. • In writing solutions for each question, you may use any of the accessible methods that are listed in classes defined in that question. Writing significant amounts of code that can be replaced by a call to one of these methods will not receive full credit. Consider a guessing game in which a player tries to guess a hidden word. The hidden word contains only capital letters and has a length known to the player. A guess contains only capital letters and has the same length as the hidden word. After a guess is made, the player is given a hint that is based on a comparison between the hidden word and the guess. Each position in the...arrow_forwardIn JAVA. Help with this would be greatly appreciated! Create the four data classes as above. Do NOT add any attributes or methods that don't appear in the UML diagrams. Create another, executable class named ShipTest as shown below to test these classes. In ShipTest: make two objects with declared type Ship but actual type CruiseShip. make one object of declared type Ship but actual type CargoShip. make one object of declared type CargoShip and actual type CargoShip. make a ship of declared type WarShip and actual type WarShip. using the array initializer syntax, code all of these ships into an array of type Ship named fleet. code a for loop that processes the fleet array to show display all ships and their data. use a method of class Arrays to create an ArrayList of type Ship from the fleet array. pass this ArrayList to a method named shipShow that also displays all ships and returns an integer. report the value of the integer returned by shipShow. In the shipShow method: from...arrow_forwardfinal big report project for java. 1.Problem Description Student information management system is used to input, display student information records. The GUI interface for inputing ia designed as follows : The top part are the student imformation used to input student information,and the bottom part are four buttonns, each button meaning : (2) Total : add java score and C++ score ,and display the result; (3) Save: save student record into file named student.dat; (4) Clear : set all fields on GUI to empty string; (5) Close : close the winarrow_forward
- (1) Add an __init__ method to the Widget class below. Each object of type Widget should have an instance variable called name and an instance variable called cost that represents a cost in dollars; those values are passed in when an object of type Widget is initialized. (2) Add a method to class Widget called is_cheap that returns True if the cost is less than 10,ドル and False otherwise. (3) Add proper doctrings along with two examples for each method. You may use the Sample Usage code given below in your work.arrow_forwardWe already have the address and vehicle class for the system below. We will need a CarShow class with IsSanctioned() method, Owner class with IsOwner method and a main class that creates objects and implements all our existing classes. Use the class diagrams. Make sure to include respective attributes, setters, getters and constructors in your code Explain your code in a few words.arrow_forwardTest your newly created subclasses inside the same TestComputer program you previouslycreated: create two new Laptops and two new Desktops with the data of your choice. UsetoString() method to show all data fields (including the data fields in the super class and sub class)Hint: Make sure to avoid redundancy in your code – no fields implemented in the Parent Classshould be repeated/reimplemented/redefined in children. package project2;class Desktop extends Computer { private int width; private int height; public Desktop() { super(); width = height = 0; } public Desktop(String manufacturer, String diskSize, String manufacturingDate, int numberOfCores, int width, int height) { super(manufacturer, diskSize, manufacturingDate, numberOfCores); this.width = width; this.height = height; } public int getWidth() { return width; } public int getHeight() { return height; } public void setWidth(int width) {...arrow_forward
- Text book imageComputer Networking: A Top-Down Approach (7th Edi...Computer EngineeringISBN:9780133594140Author:James Kurose, Keith RossPublisher:PEARSONText book imageComputer Organization and Design MIPS Edition, Fi...Computer EngineeringISBN:9780124077263Author:David A. Patterson, John L. HennessyPublisher:Elsevier ScienceText book imageNetwork+ Guide to Networks (MindTap Course List)Computer EngineeringISBN:9781337569330Author:Jill West, Tamara Dean, Jean AndrewsPublisher:Cengage Learning
- Text book imageConcepts of Database ManagementComputer EngineeringISBN:9781337093422Author:Joy L. Starks, Philip J. Pratt, Mary Z. LastPublisher:Cengage LearningText book imagePrelude to ProgrammingComputer EngineeringISBN:9780133750423Author:VENIT, StewartPublisher:Pearson EducationText book imageSc Business Data Communications and Networking, T...Computer EngineeringISBN:9781119368830Author:FITZGERALDPublisher:WILEY