// -*- Mode: Java -*-

public class Main3  {

    static Thing book1, book2;
    static Room Sali_A, T1, Kiltis;
    static Person tik_fuksi, kemisti;

    private static void printSituation() {
	System.out.println("Huoneet:");
	Sali_A.print();
	T1.print();
	Kiltis.print();
	System.out.println("Ihmiset:");
	tik_fuksi.print();
	kemisti.print();
	System.out.println();
    }

    public static void main(String args[]) {
	book1 = new Thing("Java Reference Manual");
	book2 = new Thing("Structure and Interpretation of Computer Programs");
	Sali_A = new Room("Sali A");
	T1 = new Room("Sali T1");
	Kiltis = new Room("Kiltahuone");
	tik_fuksi = new Person("Tikkiläinen", T1);
	kemisti = new Person("Kemisti", Sali_A);

	printSituation();

	System.out.println("Asetetaan tavarat paikalleen:");
	Sali_A.setThing(book2);
	T1.setThing(book1);
	printSituation();

	System.out.println("Otetaan tavarat:");
	tik_fuksi.pickUp();
	kemisti.pickUp();
	printSituation();

	System.out.println("Siirretään ihmisiä:");
	kemisti.moveTo(Kiltis);
	tik_fuksi.moveTo(Sali_A);
	printSituation();

	System.out.println("Pudotetaan tavarat:");
	kemisti.putDown();
	tik_fuksi.putDown();
	printSituation();

	System.out.println("Siirretään ihmiset oikeille paikoilleen:");
	kemisti.moveTo(T1);
	tik_fuksi.moveTo(Kiltis);
	kemisti.moveTo(Sali_A);
	printSituation(); 
   }
}
