{"id":21755761,"url":"https://github.com/wadjetz/crowd-simulator","last_synced_at":"2025-03-21T03:18:17.858Z","repository":{"id":78207228,"uuid":"70995360","full_name":"Wadjetz/crowd-simulator","owner":"Wadjetz","description":null,"archived":false,"fork":false,"pushed_at":"2016-10-15T15:15:39.000Z","size":81,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T23:55:44.117Z","etag":null,"topics":["algorithm","dijkstra","game","graph","java","school-project","simulation"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wadjetz.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-10-15T15:15:22.000Z","updated_at":"2017-10-07T09:10:55.000Z","dependencies_parsed_at":"2023-05-18T00:00:23.095Z","dependency_job_id":null,"html_url":"https://github.com/Wadjetz/crowd-simulator","commit_stats":{"total_commits":50,"total_committers":3,"mean_commits":"16.666666666666668","dds":"0.21999999999999997","last_synced_commit":"4cdbbfe40d918af1a6550b3e3e792308bda65075"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wadjetz%2Fcrowd-simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wadjetz%2Fcrowd-simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wadjetz%2Fcrowd-simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wadjetz%2Fcrowd-simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wadjetz","download_url":"https://codeload.github.com/Wadjetz/crowd-simulator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244728231,"owners_count":20500023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","dijkstra","game","graph","java","school-project","simulation"],"created_at":"2024-11-26T09:20:57.007Z","updated_at":"2025-03-21T03:18:17.835Z","avatar_url":"https://github.com/Wadjetz.png","language":"Java","readme":"L'objectif du projet est de simuler le déplacement d'une foule à l'intérieur\nd'un terrain prédéfini. Le terrain contient des zones de déplacement autorisées,\ndes zones de déplacements interdits ainsi que des points d'apparition des\npersonnages constituant la foule et des objectifs de destination.\nLe terrain est construit à partir d'un fichier texte qui suit la structure\nsuivante :\n\n************************************************\n*      *              *                    A   *\n* ** A  *   ********** *             *   *     *\n* **    *     *      * * *******     *****     *\n*  *    ****  * G*   *   GGG      *  *         *\n*  *        *  * G*   *******     *  ******    *\n*               GG* *       *     *       **   *\n*****G********************  *  ********   *    *\n*  GGGG  * GGGG   *         *         *   *  * *\n* *** GG * G*G***** ***     ******    *   *    *\n*GGGGGG  * G*G*       *          *    *   **   *\n* G****  *        *************  ******   *    *\n* GGGGGGGGG *   P      GGGG  *           *     *\n****** ******     ****  GGGG  *      ********  *\n*           *     *       GGG *                *\n*  ******   *                                  *\n*   *            P                      D      *\n*    D      *                                  *\n************************************************\n\nSémantique des symboles :\n• * : un mur\n• G : une zone d'herbe\n• ' ' : une zone de déplacement\n• D : les points d'apparition des personnages\n• A : les points d'arrivée des personnages.\nLe terrain doit obligatoirement être fermé (entouré de murs).\n\nLes zones d'herbe nécessitent 2 unités de temps pour un déplacement, alors que\nles zones standards, 1 seule unité.\nLes personnes constituant la foule sont symbolisées par des souris. Lors de\nleurs déplacements, les souris ne peuvent pas passer simultanément sur la même\ncase, de même, elles de peuvent pas passer par dessus. Si une zone de passage\nest embouteillée, elle doivent attendre leur tour ou chercher un autre\nitinéraire plus rapide.\n\n\nLes souris apparaissent à un endroit déterminée, mais elles choisissent\nlibrement leur destination.\nElles ne peuvent apparaître que sur une case contiguë à la porte. Si aucune case\nn'est disponible, elles doivent attendre qu'une se libère.\nVotre objectif est que l'ensemble des souris rejoignent les gruyères en un\nnombre de tour minimum.\nLe tour est l'unité de déplacement par défaut (un tour), pour la simulation,\nl'unité de temps est fixé à 1 seconde, mais devra être facilement paramétrable\npendant la soutenance.\nA chaque tour, tant qu'il y a des souris à l'intérieur de la porte, elles\ndoivent apparaître sur la carte.\nLe nombre de souris pouvant apparaître à chaque porte devra pouvoir être\ndéterminé dans le programme que vous avez à réaliser.\n\nConcernant le calcul d'itinéraire, vous devrez implémenter une solution à partir\nd'un graphe et utiliser l'algorithme de Djikstra ou A*. Les optimisations tels\nque les calculs bidirectionnels seront les bienvenues.\nLe programme devra permettre de charge n'importe quelle carte respectant le\nformat défini.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwadjetz%2Fcrowd-simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwadjetz%2Fcrowd-simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwadjetz%2Fcrowd-simulator/lists"}