Skip to content

chikubidestroyer/D.-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

D. Simulator

Building

Build the project and output the package in the dist directory:

pip install build
python3 -m build

Testing

To test the project module locally, create a virtual environment first:

pip install virtualenv
python3 -m venv .venv

Then, activate the virtual environment:

source .venv/bin/activate # For Unix-like operating systems
.venv\bin\activate.bat    # For Windows

Finally, do a editable install using pip:

pip install -e .

Run the program by executing:

dsimulator

TODO

User Interface Design

  • Develop a visual user interface to represent vertex and edge tables, displaying their positions and connections. This could be a city map where each vertex represents a point of interest, and edges represent paths between them.
  • Display character and building information, showcasing details from the building, home, occupation, workplace, and inhabitant tables. This may include character profiles, homes, workplaces, etc.
  • Implement a system to show relationships between characters (relationship table) and track investigation status (status table) such as suspects, victims, and key events.

Database Setup

  • Create an SQLite database using the provided schema, ensuring all constraints and relationships are correctly implemented.
  • Populate tables with initial data. Ensure diversity in characters, locations, and scenes for realism. Approximately 1000 records need to be populated (generate families, assign occupations, incomes, and addresses).

Game Logic

  • Implement the killer's behavior algorithm based on the killer and killer_chara tables.
  • Develop a simulation system for roadblocks or impassable areas affecting the edge table.
  • Ensure interaction and updates between in-game actions (interrogation, evidence collection) and the database.
  • Calculate killer movement paths and required time.
  • Consider implementing a possible save/load mechanism.
  • Define characteristics of the killer and ordinary residents and their interactions.
  • Implement the sheriff's interrogation skills, road closure abilities, and suspect apprehension functionality.
  • If interrogation functionality is implemented, hide certain information from players and implement related features.

SQLite Database Interaction

  • Implement functions to query the SQLite database to retrieve information about locations, characters, and events as needed.
  • Develop a mechanism to update the database based on player actions, including marking suspects, updating character statuses, or recording investigation progress.
  • Count the number of times each person was witnessed at a certain vertex.
  • List all possible via points given the start and end vertices and the time constraint.
  • List the inhabitants related to the victim.

Player Feedback and Interaction

  • Provide clear feedback based on player actions and database updates. For example, if a player investigates a location, display relevant information from the database.

Game Ending Determination

  • Implement a mechanism to determine the end of the game, whether by a specific date or through a reputation-based system.

Releases

No releases published

Packages

No packages published

Languages