Iteration Monkey Lab
/*
* Creator: Nighthawk Coding Society
* Mini Lab Name: Hello Series,featuring Monkey Jumpers
*/
/**
* Class for Monkeys: a 2D array of Monkeys
* As well as method to print the Poem
*/
class MonkeyLoop {
//The area between class definition and the 1st method is where we keep data for object in Java
String [][] monkeys; //2D Array: AP CSA Unit 8: 2D array of strings
//2D array is like a grid [x][y]
// or like a spreadsheet [row][column]
/**
* Constructor initializes a 2D array of Monkeys
*/
public MonkeyLoop() {
//Storing Data in 2D arrays
monkeys = new String[][]{ //2D array above is just a name, "new" makes a container ("object")
//Monkey 0
{
" -0-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 1
{
" -1-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 2
{
" -2-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 3
{
" -3-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 4
{
" -4-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
};
}
/**
* Loop and print monkeys in array
* ... repeat until you reach zero ...
*/
public void printPoem() {
//begin the poem
System.out.println();
System.out.println("Monkey Jumpers Poem in Java Loopy");
// monkeys (non-primitive) defined in constructor knows its length
int monkeyCount = monkeys.length;
for (int i = monkeyCount; i >= 1; i--) //loops through 2D array length backwards
{
//this print statement shows current count of Monkeys
// concatenation (+) of the loop variable and string to form a countdown message
System.out.println(i + " little monkeys jumping on the bed...");
//finished the rhyme
System.out.println("1 fell off and broke his head");
System.out.println("mama called the doctor and the docotr said, no more monkeys jumping on the bed");
//how many separate parts are there in a monkey monkey?
for (int row = 0; row < monkeyCount; row++) { //cycles through "cells" of 2d array
/*cycles through columns to print
each monkey part by part, will eventually print entire column*/
for (int col = 0; col < monkeys[row].length; col++) {
// prints specific part of the monkey from the column
System.out.print(monkeys[row][col] + " ");
//this is new line between separate parts
System.out.println();
}
//this new line gives separation between stanza of poem
System.out.println();
}
//countdown for poem, decrementing monkeyCount variable by 1
monkeyCount -= 1;
}
//out of all the loops, prints finishing messages
System.out.println("No more monkeys jumping on the bed");
System.out.println("0000000000000000000000000000000000");
System.out.println(" THE END ");
}
/**
* A Java Driver/Test method that is the entry point for execution
*/
public static void main(String[] args) {
new MonkeyLoop().printPoem(); //a new monkey list and output in one step
}
}
MonkeyLoop.main(null);
/*
* Creator: Nighthawk Coding Society
* Mini Lab Name: Hello Series,featuring Monkey Jumpers
*/
/**
* Class for Monkeys: a 2D array of Monkeys
* As well as method to print the Poem
*/
class MonkeyLoop {
//The area between class definition and the 1st method is where we keep data for object in Java
String [][] monkeys; //2D Array: AP CSA Unit 8: 2D array of strings
//2D array is like a grid [x][y]
// or like a spreadsheet [row][column]
/**
* Constructor initializes a 2D array of Monkeys
*/
public MonkeyLoop() {
//Storing Data in 2D arrays
monkeys = new String[][]{ //2D array above is just a name, "new" makes a container ("object")
//Monkey 0
{
" -0-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 1
{
" -1-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 2
{
" -2-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 3
{
" -3-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
//Monkey 4
{
" -4-", //[0][0] head
"C oo", //[0][1] eyes
" _( ^)", //[0][2] mouth
" - " //[0][3] legs
},
};
}
/**
* Loop and print monkeys in array
* ... repeat until you reach zero ...
*/
public void printPoem() {
//begin the poem
System.out.println();
System.out.println("Monkey Jumpers Poem in Java Loopy");
// monkeys (non-primitive) defined in constructor knows its length
int monkeyCount = monkeys.length;
for (int i = monkeyCount; i >= 1; i--) //loops through 2D array length backwards
{
//this print statement shows current count of Monkeys
// concatenation (+) of the loop variable and string to form a countdown message
System.out.println(i + " little monkeys jumping on the bed...");
//finished the rhyme
System.out.println("1 fell off and broke his head");
System.out.println("mama called the doctor and the docotr said, no more monkeys jumping on the bed");
//Loop through column then row to print out the monkeys horizontally
for (int col = 0; col < 4; col++) { //cycles through "cells" of 2d array
/*cycles through columns to print
each monkey part by part, will eventually print entire column*/
for (int row = 0; row < monkeyCount; row++) {
// prints specific part of the monkey from the column
System.out.print(" " + monkeys[row][col] + " ");
//this is new line between separate parts
//System.out.println();
}
//this new line gives separation between stanza of poem
System.out.println();
}
//countdown for poem, decrementing monkeyCount variable by 1
monkeyCount -= 1;
}
//out of all the loops, prints finishing messages
System.out.println("No more monkeys jumping on the bed");
System.out.println("0000000000000000000000000000000000");
System.out.println(" THE END ");
}
/**
* A Java Driver/Test method that is the entry point for execution
*/
public static void main(String[] args) {
new MonkeyLoop().printPoem(); //a new monkey list and output in one step
}
}
MonkeyLoop.main(null);
Is this program in more of an Imperative Programming Style or OOP style? Explain. This program is an Imperitive style of programming. Even though the program is in a class, the program is not dependent on classes and objects. Instead, it is heavily dependent on loops, and arrays. This is because only one object is used and the creation of the program is primarily based on the code within one individual method.
Is each Monkey an object? If each monkey was an object, then it would be an OOP style. However, each monkey is a list element, not an object.
Basics of a 2D arrays
- two-dimensional (2D) arrays are indexed by two subscripts, one for the row and one for the column
- Each element in the 2D array must by the same type
- either a primitive type or object type.
- you can access the 2D array by using the row index value and column index value: array_name[row_index][column_index];