import java.util.HashMap;
import java.util.ArrayList;
import java.util.Iterator;
/**
* Write a description of class Person here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Person
{
// instance variables - replace the example below with your own
private String mName;
private int mMood;
private HashMap<String, EventGenerator> mWeekEvent;
private EventGenerator mGenEvent;
/**
* Konstruktor för klassen person. Fyller automatiskt listan med veckans händelser.
* Anropas med en sträng för namn på personen.
*
* @param name Namnet på personen.
*/
public Person(String name)
{
mName = name;
mMood = 200;
mWeekEvent = new HashMap<String, EventGenerator>();
mGenEvent = new EventGenerator();
}
public void listWeek()
{
ArrayList<String> mWeekday = new ArrayList<String>();
mWeekday.add(new String("Måndag"));
mWeekday.add(new String("Tisdag"));
mWeekday.add(new String("Onsdag"));
mWeekday.add(new String("Torsdag"));
mWeekday.add(new String("Fredag"));
mWeekday.add(new String("Lördag"));
mWeekday.add(new String("Söndag"));
System.out.println("Hej, " + mName);
System.out.println(" Du startar med gott humör på nivå: " + mMood);
System.out.println(" Din vecka slumpar sig såhär...");
// Skapar en array med veckans dagar.
// Skulle man vilja att veckan börjar på någon annan dag, eller att listWeek() endast
// ska gälla för ett visst antal dagar, är det enkelt att modifiera, då den kommande
// while-loopen inte plockar upp ett fast värde, utan storleken på samlingen.
Iterator<String> it = mWeekday.iterator();
while(it.hasNext()) {
String thisDay = it.next();
// Vänta en sekund...
wait(1000);
System.out.println(thisDay);
generateDayEvent();
affectMood(thisDay);
System.out.println(" Ditt humör är nu på: " + mMood);
}
}
private void affectMood(String day)
{
// mMood += day.getAffectMood();
}
public void generateDayEvent()
{
mWeekEvent.put("Måndag",
mGenEvent.generateEvent());
}
/**
* Wait for a specified number of milliseconds before finishing.
* This provides an easy way to specify a small delay which can be
* used when producing animations.
* @param milliseconds the number
*/
private void wait(int milliseconds)
{
try
{
Thread.sleep(milliseconds);
}
catch (Exception e)
{
// ignoring exception at the moment
}
}
}