//******************************************************************** // Conversation.java Author: CSCI151 // // Sets up a conversation among (mostly) dead rulers //******************************************************************** import java.util.Random; import java.awt.*; import javax.swing.*; public class Conversation extends JPanel { private int numRulers; private Ruler rulerList[]; private int speakerIndex, listenerIndex; private Random generator; //----------------------------------------------------------------- // Initializes various rulers, gets them talking to each other. //----------------------------------------------------------------- public Conversation() { numRulers =6; rulerList = new Ruler[numRulers]; generator = new Random(); createRulers(); identifyRulers(); System.out.println(); converse(); System.out.println(); reportRulers(); } public void createRulers() // Create rulers with initial data { rulerList[0] = new Ruler( "Abraham Lincoln", "President", "America", "Americans", "Howdy" ); rulerList[1] = new Ruler( "Cleopatra", "Queen", "Egypt", "Egyptians", "Greetimgs"); rulerList[2] = new Ruler("Nelson Mandela", "President" , "South Africa","South Africans","Hello" ); rulerList[3] = new Ruler("Napoleon Bonaparte", "Emperor", "France", "French", "Bonjour" ); rulerList[4] = new Ruler( "Joan of Arc", "Saint", "France", "French", "Bonne journee"); rulerList[5] = new Ruler( "Winston Churchill", "Prime Minister", "England", "English","Cherrio" ); } public void identifyRulers() // Have rulers identify themselves { for (int i=0; i<=numRulers-1; i++)//Each ruler identifies him/herself { rulerList[i].identify(); } } public void converse() // Have rulers talk among themselves { for(int i=1; i<=10; i++) // 10 conversations between randomly selected rulers { speakerIndex = generator.nextInt(numRulers); listenerIndex = generator.nextInt(numRulers); if (speakerIndex == listenerIndex) // Prevent rulers from talking to each other { if(speakerIndex > 0) //Room to decrement speakerIndex speakerIndex--; else //Room to increment speakerIndex speakerIndex++; } rulerList[speakerIndex].sayHelloTo(rulerList[listenerIndex]); } } public void reportRulers()//Have rulers report { for (int i=0; i<=numRulers-1; i++) //Each ruler reports { rulerList[i].report(); } } }