{"id":22438939,"url":"https://github.com/cypri1-dev/42_so_long","last_synced_at":"2025-03-27T09:23:08.513Z","repository":{"id":218756128,"uuid":"747282409","full_name":"cypri1-dev/42_so_long","owner":"cypri1-dev","description":"so_long is a \"collect the coins\" style game project developed as part of the curriculum at Ecole 42. Players control a character tasked with collecting objects while navigating obstacles. The game utilizes the MinilibX library .","archived":false,"fork":false,"pushed_at":"2024-04-10T22:20:12.000Z","size":2926,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T14:18:19.092Z","etag":null,"topics":["42","42solong","mandatory","minilibx","solong","solong42","solongbonus"],"latest_commit_sha":null,"homepage":"","language":"C","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/cypri1-dev.png","metadata":{"files":{"readme":"README.md","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,"roadmap":null,"authors":null}},"created_at":"2024-01-23T16:19:16.000Z","updated_at":"2024-04-29T15:17:09.000Z","dependencies_parsed_at":"2024-01-23T17:25:42.547Z","dependency_job_id":"9369b1ef-20c1-4b67-9ae0-84aa478f1419","html_url":"https://github.com/cypri1-dev/42_so_long","commit_stats":null,"previous_names":["cypri1-dev/42_so_long"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypri1-dev%2F42_so_long","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypri1-dev%2F42_so_long/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypri1-dev%2F42_so_long/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypri1-dev%2F42_so_long/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cypri1-dev","download_url":"https://codeload.github.com/cypri1-dev/42_so_long/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245815084,"owners_count":20676863,"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":["42","42solong","mandatory","minilibx","solong","solong42","solongbonus"],"created_at":"2024-12-06T01:12:13.268Z","updated_at":"2025-03-27T09:23:08.493Z","avatar_url":"https://github.com/cypri1-dev.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"##\n\u003ch1 align=\"center\"\u003e \u003cimg src=\"https://github.com/ayogun/42-project-badges/blob/main/covers/cover-so_long-bonus.png?raw=true\"\u003e \u003c/h1\u003e \n\n## Description\nso_long is a \"collect the coins\" style game project developed as part of the curriculum at Ecole 42. Players control a character tasked with collecting objects while navigating obstacles. The game utilizes the MinilibX library for an interactive graphical interface. Objectives include image manipulation, handling user events, and creating custom game maps from text files.\n\n![GIF](https://github.com/cypri1-dev/42_so_long/blob/main/screen_gif/so_long.gif)\n\n## Project Components Table\nThe following table describes the various components and files included in the so_long project:\n\n| File/Header File/Folder     | Description                                                                                         |\n|----------------------|-----------------------------------------------------------------------------------------------------|\n| `img`                | This folder contains images used in the program's graphical interface.                             |\n| `sources/display`    | This folder contains functions responsible for rendering graphics and displaying elements on the screen. |\n| `sources/end_game.c` | Contains functions responsible for handling end game scenarios and displaying relevant information or messages to the player. |\n| `sources/map`        | Contains functions related to the management and manipulation of game maps, including parsing and modifying map data. |\n| `sources/movements`  | This folder contains functions related to handling character movements within the game, including functions for controlling player movement and handling collisions with obstacles. |\n| `sources/so_long.c`  | Main program file responsible for initializing the game, managing the game loop, and handling user input. |\n| `TESTS`              | This folder contains tests maps used in the game  |\n| `libft_so_long`      | A directory containing the Libft library, used for some auxiliary functions.                        |\n| `Makefile`           | The Makefile script for automating project compilation.                                            |\n\n## Map Example\n```bash\n1111111111111\n1000001000001\n10P0000000001\n1000000100001\n1000000000001\n10000001M0C01\n1000000000001\n1000000000001\n1000000000001\n1000M00000001\n100C00000E001\n1000000000001\n1111111111111\n```\n  - `1` represents a wall.\n  - `0` represents an empty space.\n  - `P` represents the character.\n  - `C` represents a collectible\n  - `M` represents a monster.\n\n## Installation and Compilation\n1. Clone this repository into your project:\n```bash\ngit clone https://github.com/cypri1-dev/42_so_long.git\ncd 42_so_long\n```\n## How to use ?\n```bash\n./so_long TESTS/[*.ber]\n```\n## Features\n\n1. **Interactive Graphical Interface:** Utilizes the MinilibX library to create an interactive graphical interface for the game.\n   \n2. **Character Control:** Allows the player to control a character using the keyboard's arrow keys.\n   \n3. **Custom Maps:** Supports reading custom game maps from specific format text files.\n   \n4. **Object Collection:** Implements the mechanic of collecting objects scattered throughout the map by the main character.\n   \n5. **Collision Handling:** Manages collisions between the character and walls as well as other elements on the map.\n   \n6. **Information Display:** Displays the number of objects collected and the number of movements made by the player.\n   \n7. **Victory/Defeat Messages:** Displays a victory message when all objects have been collected and a defeat message in case of collision with an obstacle or enemy.\n   \n8. **Animations:** Integrates animations to make character movement and object collection more fluid and dynamic.\n   \n9. **Difficulty Levels:** Supports the creation of variable difficulty levels by modifying the arrangement of objects and obstacles on the map.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypri1-dev%2F42_so_long","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcypri1-dev%2F42_so_long","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypri1-dev%2F42_so_long/lists"}