{"id":20442836,"url":"https://github.com/simon-zerisenay/42_so_long","last_synced_at":"2025-03-05T08:17:12.023Z","repository":{"id":169791443,"uuid":"645847756","full_name":"simon-zerisenay/42_So_Long","owner":"simon-zerisenay","description":"42 Solong is a 2D game project where players navigate through a maze, collecting items and avoiding obstacles. It involves tasks like parsing map files, handling player movement, and implementing basic game mechanics using the MinilibX graphics library.","archived":false,"fork":false,"pushed_at":"2023-06-28T09:34:20.000Z","size":308,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-15T20:46:01.401Z","etag":null,"topics":["2dgame","42abudhabi","42school","42solong","c","ecole42","minilibx","solong"],"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/simon-zerisenay.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-26T15:17:59.000Z","updated_at":"2025-01-14T23:35:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"93a43c30-0be8-4fc7-bd73-6e0c38d2e018","html_url":"https://github.com/simon-zerisenay/42_So_Long","commit_stats":null,"previous_names":["simon-zerisenay/42_so_long"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-zerisenay%2F42_So_Long","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-zerisenay%2F42_So_Long/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-zerisenay%2F42_So_Long/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simon-zerisenay%2F42_So_Long/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simon-zerisenay","download_url":"https://codeload.github.com/simon-zerisenay/42_So_Long/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241989860,"owners_count":20053804,"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":["2dgame","42abudhabi","42school","42solong","c","ecole42","minilibx","solong"],"created_at":"2024-11-15T09:43:13.490Z","updated_at":"2025-03-05T08:17:11.997Z","avatar_url":"https://github.com/simon-zerisenay.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003e 42 So_Long \u003c/h1\u003e\n\n\u003ca href=\"https://github.com/simon-zerisenay/42_So_Long\"\u003e![42 Badge](https://github.com/mcombeau/mcombeau/blob/main/42_badges/so_longm.png)\u003c/a\u003e\n\n\u003c/div\u003e\n\u003clabel\u003e\n\t\u003ch2\u003e Score \u003c/h2\u003e\t\n\t\u003cimg alt=\"110\" style=\"width: 100px;height: 70px\" src=\"https://github.com/simon-zerisenay/simon-zerisenay/blob/main/110.png\"/\u003e\n\u003c/label\u003e\n\u003ch2\u003eIntroduction \u003c/h2\u003e\n\u003cp align=\"center\"\u003e\n\t\u003cimg alt=\"GitHub code size in bytes\" src=\"https://img.shields.io/github/languages/code-size/simon-zerisenay/42_So_Long?color=lightblue\" /\u003e\n\t\u003cimg alt=\"Number of lines of code\" src=\"https://img.shields.io/tokei/lines/github/simon-zerisenay/42_So_Long?color=critical\" /\u003e\n\t\u003cimg alt=\"Code language count\" src=\"https://img.shields.io/github/languages/count/simon-zerisenay/42_So_Long?color=yellow\" /\u003e\n\t\u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/simon-zerisenay/42_So_Long?color=blue\" /\u003e\n\t\u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/simon-zerisenay/42_So_Long?color=green\" /\u003e\n\u003c/p\u003e\n\nWelcome to the 42 So_Long project! This project is part of the curriculum at 42 and focuses on creating a 2D game using the MinilibX, a simple graphic library provided by 42. So_Long is a game where the player navigates through a map, collects items, and avoids obstacles to reach the goal.\n\n\u003ch2\u003eObjective\u003c/h2\u003e\nThe objective of the So_Long project is to develop a fully functional game that incorporates various game elements, such as map rendering, player movement, collision detection, item collection, and win/lose conditions. By completing this project, you will enhance your understanding of game development concepts and gain practical experience in using the MinilibX library.\n\n\u003ch2\u003eFeatures\u003c/h2\u003e\nMap Rendering\nSo_Long allows you to load and render game maps stored in a specific format, typically a file with a .ber extension. The map consists of different tiles representing walls, paths, collectible items, the player's starting position, and the exit. The MinilibX library provides functions to render graphical elements on the screen, enabling you to display the map with the appropriate textures and colors.\n\n\u003ch2\u003ePlayer Movement\u003c/h2\u003e\nThe player can move in four directions: up, down, left, and right, within the bounds of the map. By handling keyboard inputs, you can update the player's position on the screen accordingly. The MinilibX library provides functions to capture key events and perform actions based on the pressed keys.\n\n\u003ch2\u003eCollision Detection\u003c/h2\u003e\nTo ensure the player doesn't move through walls or outside the boundaries of the map, collision detection is implemented. The game checks if the player's desired movement will result in a collision with a wall or if the player has reached the exit. If a collision is detected, the player's movement is restricted.\n\n\u003ch2\u003eItem Collection\u003c/h2\u003e\nThroughout the map, there may be collectible items that the player can interact with. When the player reaches a tile containing an item, it is collected, and the player's score is incremented. This feature adds an additional layer of gameplay and encourages exploration.\n\n\u003ch2\u003eWin/Lose Conditions \u003c/h2\u003e\nThe win condition is achieved when the player successfully reaches the exit tile. In contrast, the lose condition can be triggered by specific events, such as colliding with enemies or running out of lives. Implementing win and lose conditions adds a sense of challenge and completion to the game.\n\n\u003ch2\u003eInstallation\u003c/h2\u003e\nTo install and run the So_Long project, follow these steps:\n\nClone the project repository: \n\t\t\t\n\t\t\tgit clone https://github.com/your_username/42-so_long.git\nNavigate to the project directory: \n\t\t\t\n\t\t\t\t\tcd 42-so_long\nCompile the project using the provided Makefile: \n\u003cbr/\u003e\t\t\t\n\n\t\t\t\t\tmake\nRun the game executable: \n\u003cbr/\u003e\t\t\t\n\n\t\t\t\t./so_long maps/map3.ber\n\t\t\t\n\u003cbr/\u003e\n\nMake sure you have the MinilibX library installed on your system. If it's not already installed, you can find the library and installation instructions in the project repository.\n\n\u003ch2\u003eTesting \u003c/h2\u003e\nTo test the game and validate its functionality, follow these steps:\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg alt=\"Game\" src=\"https://github.com/simon-zerisenay/42_So_Long/blob/master/game.png\" /\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\nLaunch the game using the installation steps mentioned above.\nNavigate through the map using the arrow keys or WASD keys.\nEnsure the player can move freely within the map and is restricted by walls and boundaries.\nCollect items on the map and verify that the score is updated accordingly.\nReach the exit tile and confirm that the game ends with a win condition.\nTrigger any lose conditions (if implemented) and verify that the game ends accordingly.\nTest various edge cases, such as reaching invalid tiles or unexpected input, to ensure the game handles them gracefully.\nDuring testing, monitor the game's performance, responsiveness, and adherence to the specified game rules. Make adjustments and improvements as necessary to enhance the gameplay experience.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimon-zerisenay%2F42_so_long","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimon-zerisenay%2F42_so_long","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimon-zerisenay%2F42_so_long/lists"}