itmo-prog-lab-4/src/StoryTeller.java

70 lines
3.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import characters.Character;
import exceptions.StoryException;
import model.*;
import characters.*;
import story.StoryContext;
import java.util.ArrayList;
import java.util.List;
public class StoryTeller {
public static void main(String[] args) {
class DevStoryListener {
private int devNum = 0;
void listenToStory(String device) {
System.out.println("Translating story on Bus " + devNum + " Device " + devNum + ": ID " + hashCode(devNum) + ":" + device );
devNum++;
}
private String hashCode(int devNum) {
return "0x" + Integer.toHexString(devNum * 0x10000 + devNum * 0x100 + devNum);
}
}
DevStoryListener listener = new DevStoryListener();
listener.listenToStory("JMTek, LLC. USB PnP Audio Device");
listener.listenToStory("Creative Technology, Ltd SoundBlaster MP3+");
listener.listenToStory("Sennheiser Communications USB Headset");
listener.listenToStory("Bluetooth Audio Device");
// На этом знаменитое путешествие Знайки и его товарищей окончилось.
// Жизнь в Цветочном городе потекла по-старому... хотя нет, нельзя сказать, чтобы совсем по-старому.
// С тех пор как наши отважные путешественники вернулись домой, в городе только и говорили о них.
// Все жители, и малыши и малышки, приходили по вечерам к домику Знайки и слушали рассказы путешественников об их жизни в Зеленом городе.
// Creating the setting for the story
City flowerCity = new City("Цветочный город");
House znaykasHouse = new House("Домик Знайки");
StoryContext context = new StoryContext(flowerCity, znaykasHouse, "путешествия Знайки");
// Creating the characters
Character znayka = new Znayka();
Character malish = new Child("Малыш");
Character malishka = new Child("Малышка");
// Adding characters to Znayka's house
znaykasHouse.addResident(znayka);
znaykasHouse.addResident(malish);
znaykasHouse.addResident(malishka);
List<String> stories = new ArrayList<>();
stories.add("путешествие в Зеленый город");
stories.add("жизнь в Цветочном городе");
znaykasHouse.tellEveningStories(context, stories);
stories.clear();
try {
if (stories.isEmpty()) {
throw new StoryException("No stories available to tell.");
}
znaykasHouse.tellEveningStories(context, stories);
} catch (StoryException e) {
System.err.println("Error in storytelling: " + e.getMessage());
}
}
}