×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Program To Create Basic Procedural Generation Assignment Solution

June 25, 2024
Ellie Icely
Ellie Icely
🇬🇧 United Kingdom
Java
PhD in Computer Science from the University of Hertfordshire, with 8 years of experience in Java assignments. Expert in delivering high-quality, efficient solutions for complex programming problems. Passionate about teaching and mentoring students.
Key Topics
  • Instructions
  • Requirements and Specifications
Tip of the day
Focus on proper state management in your MERN stack assignments. Use Context API for React to manage complex states efficiently, ensuring seamless interaction between components and backend APIs.
News
In 2024, Visual Studio Code remains the top IDE for programming students, valued for its extensive extensions, user-friendly design, and collaborative features like Live Share, which are crucial for academic and group projects

Instructions

Objective

You need to write a java homework that implements basic procedural generation in Java. Procedural generation involves creating algorithms to generate content, such as landscapes or levels, on-the-fly rather than designing them manually. In this assignment, you'll explore how to use Java to generate random terrain or patterns, providing a unique experience each time the program runs. Utilize Java's libraries and control structures to define the rules for generating content dynamically. By accomplishing this task, you'll gain a better understanding of Java programming concepts and enhance your skills in algorithmic thinking and problem-solving, which are crucial in software development.

Requirements and Specifications

program to create basic procedural generation in java

Source Code

APP import java.util.Scanner; public class App { public static void main(String[] args) throws Exception { //Create scanner Scanner sc = new Scanner(System.in); // First, get size of marray from user System.out.print("Enter size of array: "); int N = Integer.valueOf(sc.nextLine()); // Now, create a 2D array of size NxN Zone zones[][] = new Zone[N][N]; // Now, generate the top-left zone by using a AverageDenResidential object, since this one // can randomly generate all other zones (including itself) zones[0][0] = new AverageDenResidential().generateNeighbor(); System.out.print(zones[0][0].toString()); // Now, populate all the array. for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { if( i == 0 && j == 0) continue; // Ignore indx (0,0) since this one was generated outside the loop if(i == 0) // first row { zones[i][j] = zones[i][j-1].generateNeighbor(); // ask the object to the left to generate the neighbor } else // subsequent rows { // Check if we are at the first element in the row i if(j == 0) { // Ask the first object in the previous row to generate the neighbor zones[i][j] = zones[i-1][j].generateNeighbor(); } else { // Ask both the object "up from" and the one "to the left" to generate neighbors // and flip a coin to pick one // First, flip coin double chance = Math.random(); Zone upfrom = zones[i-1][j].generateNeighbor(); Zone leftfrom = zones[i][j-1].generateNeighbor(); if(chance < 0.5) // pick the one from up { zones[i][j] = upfrom; } else // pick one from the left { zones[i][j] = leftfrom; } } } // Print System.out.print(zones[i][j].toString()); } // We are jumping to a new row, so print a new line System.out.print("\n"); } // Close Scanner sc.close(); } } AVERAGE DEN RESIDENTIAL import org.newdawn.slick.Color; import org.newdawn.slick.Graphics; public class AverageDenResidential extends Zone { // Constructor public AverageDenResidential() { // Set color color = Color.gray; } @Override public void drawSelf(Graphics g) { // TODO Auto-generated method stub } @Override public Zone generateNeighbor() { // TODO Auto-generated method stub // Generate random number between 0 and 1 double chance = Math.random(); if(chance <= 0.05) // first 5%, generate a Industrial return new Industrial(); else if(chance > 0.05 && chance <= 0.1) // second 5%, generate LowDenResidential return new LowDenResidential(); else if(chance > 0.1 && chance <= 0.3) // 20%, HighDenResidential return new HighDenResidential(); else if(chance > 0.3 && chance <= 0.5) // 20%, Commercial return new Commercial(); else if(chance > 0.5 && chance <= 0.7) // 20%, RecreationSpace return new RecreationSpace(); else // 30%, AverageDenResidential return new AverageDenResidential(); } @Override public String toString() { // TODO Auto-generated method stub return "A"; } } RECREATION SPACE import org.newdawn.slick.Color; import org.newdawn.slick.Graphics; public class RecreationSpace extends Zone { // Constructor public RecreationSpace() { // Set color color = Color.blue; } @Override public void drawSelf(Graphics g) { // TODO Auto-generated method stub } @Override public Zone generateNeighbor() { // TODO Auto-generated method stub // Generate random number between 0 and 1 double chance = Math.random(); if(chance <= 0.05) // first 5%, generate a HighDenResidential return new HighDenResidential(); else if(chance > 0.05 && chance <= 0.15) // 10%, generate AverageDenResidential return new AverageDenResidential(); else if(chance > 0.15 && chance <= 0.3) // 15% Commercial return new Commercial(); else if(chance > 0.3 && chance <= 0.55) // 25% LowDenResidential return new LowDenResidential(); else // 45% RecreationSpace return new RecreationSpace(); } @Override public String toString() { // TODO Auto-generated method stub return "R"; } }

Similar Samples

At ProgrammingHomeworkHelp.com, we offer top-notch assistance with programming assignments, ensuring timely and accurate solutions. Our expert team is proficient in various languages and platforms, dedicated to helping you excel in your studies. Trust us for reliable and high-quality programming homework support.