Go to file
2023-12-30 00:33:13 +03:00
src Updated model 2023-12-30 00:33:13 +03:00
.gitignore Initial commit 2023-11-27 16:01:05 +03:00
itmo-prog-lab-4.iml Updated model 2023-12-30 00:33:13 +03:00
README.md Updated model 2023-12-30 00:33:13 +03:00

itmo-prog-lab-4

Class Description

Package: characters

  • Character.java: An abstract class representing a character in the story. Implements Listenable and Conversable interfaces.
    • Connections: Inherits from StoryElement in model package. Used by Child and Traveler.
  • Child.java: Represents child characters in the story, capable of thinking and conversing about story elements.
    • Connections: Inherits from Character.
  • Traveler.java: Represents traveler characters in the story, who can tell stories about their adventures.
    • Connections: Inherits from Character. Interacts with Adventure in story package.
  • Znayka.java: A specific implementation of Traveler, representing the character Znayka.
    • Connections: Inherits from Traveler.

Package: enums

  • CharacterType.java: Defines character types (TRAVELER, CHILD).
  • AdventureType.java: Defines types of adventures (FAMOUS, UNKNOWN).
  • LifeType.java: Defines types of life (NOT_AS_USUAL, AS_USUAL).

Package: exceptions

  • StoryEventException.java: Custom exception to handle specific story-related errors.
  • StoryLogicException.java: Custom runtime exception for handling logic errors in the story.

Package: interfaces

  • Interactable.java: Interface for story elements that can interact.
  • Conversable.java: Interface for characters that can converse.
  • Listenable.java: Interface for characters that can listen.

Package: model

  • StoryElement.java: An abstract class representing a story element with a description and metadata.
    • Connections: Parent class for Location.
  • City.java: Represents a city in the story, managing travelers, children, and houses.
    • Connections: Inherits from Location. Aggregates Traveler, Child, and House from characters package.
  • House.java: Represents a house in the city, hosting residents and stories.
    • Connections: Inherits from Location. Contains Character from characters package.
  • Location.java: An abstract class representing a location in the story.
    • Connections: Parent class for City and House.

Package: story

  • StoryEvent.java: Represents an event in the story.
    • Connections: Used in City from model package.
  • StoryContext.java: Provides context for the story elements.
    • Connections: Used in Adventure and House from model package.
  • Adventure.java: Represents an adventure in the story, involving travelers and locations.
    • Connections: Uses Traveler from characters package, City and House from model package.

Main Class

  • StoryTeller.java: Main class orchestrating the storytelling process. Initializes the story's setting, characters, and events.
    • Connections: Uses instances of City, Traveler, House, Child, Adventure from the respective packages, and handles exceptions.

Query

На этом знаменитое путешествие Знайки и его товарищей окончилось.
Жизнь в Цветочном городе потекла по-старому... хотя нет, нельзя сказать, чтобы совсем по-старому.
С тех пор как наши отважные путешественники вернулись домой, в городе только и говорили о них.
Все жители, и малыши и малышки, приходили по вечерам к домику Знайки и слушали рассказы путешественников об их жизни в Зеленом городе.

Output

На этом знаменитое путешествие Знайка закончилось.
Жители Цветочный город собрались вместе, чтобы отпраздновать возвращение путешественников.
Путешественники столкнулись с проблемой
Путешественники вспомнили о путешествие в Зеленый город
Жизнь в Цветочный город потекла по-старому... хотя нет, нельзя сказать, чтобы совсем по-старому.
С тех пор как наши отважные путешественники Знайка вернулись домой, в городе только и говорили о них.
Жители собираются в Дом Знайки чтобы рассказать истории
Все жители слушают историю о путешествии в путешествие в Зеленый город в Цветочный город
И вот, когда все собрались в доме Знайка, Знайка рассказал историю о том, как он путешествие в Зеленый город в Цветочный город
Малыш слушает: Малыш слушает историю о путешествие в Зеленый город и спрашивает вопросы о путешествие в Зеленый город
Малышка слушает: Малышка слушает историю о путешествие в Зеленый город и спрашивает вопросы о путешествие в Зеленый город
Знайка рассказывает: Знайка умно рассказывает историю о путешествие в Зеленый город
и думает: Немного я знаю о городах, но история о путешествие в Зеленый город мне очень понравилась

Истории захватывали дух, и каждый вечер собирались всё больше жителей, чтобы слушать новые приключения.

UML Diagram

UML Diagram

Вывод

В ходе выполнения данной лабораторной работы я научился работать с интерфейсами, абстрактными классами, исключениями, локальными классами, анонимными классами.