{"id":25716198,"url":"https://github.com/haletran/42_dr_quine","last_synced_at":"2025-06-30T11:37:12.533Z","repository":{"id":277527985,"uuid":"932679789","full_name":"Haletran/42_Dr_Quine","owner":"Haletran","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-14T11:19:54.000Z","size":1,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T12:27:26.673Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Haletran.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":"2025-02-14T10:18:40.000Z","updated_at":"2025-02-14T11:19:58.000Z","dependencies_parsed_at":"2025-02-14T12:27:53.835Z","dependency_job_id":"64352769-3175-45d2-9ecf-27f723eee1f5","html_url":"https://github.com/Haletran/42_Dr_Quine","commit_stats":null,"previous_names":["haletran/42_dr_quine"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Haletran%2F42_Dr_Quine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Haletran%2F42_Dr_Quine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Haletran%2F42_Dr_Quine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Haletran%2F42_Dr_Quine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Haletran","download_url":"https://codeload.github.com/Haletran/42_Dr_Quine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240690583,"owners_count":19841954,"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":[],"created_at":"2025-02-25T14:51:44.046Z","updated_at":"2025-06-30T11:37:12.522Z","avatar_url":"https://github.com/Haletran.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 42_Dr_Quine\n\n\nThis project invites you to confront the principle of self-reproduction and the problems\nthat derive from it. \nIt is a perfect introduction to more complex projects, particularly\nmalware projects.\n\n### RULES\n\nComments should like this: \n```c\n/*\n    this is a comment\n*/\n```\n\nAnd macro should be like this:\n```c\n#include\n#define FT(x)int main(){ /* code */ }\n[..]\nFT(xxxxxxxx)\n```\n\n## PART 1: Colleen\n\n- The executable must be named `Colleen`\n\nThe source code must contain at least :\n- A main function.\n- Two different comments.\n- One of the comments must be present in the main function\n- One of the comments must be present outside of your program.\n- Another function in addition to the main function (which of course will be\ncalled)\n\n## PART 2: Grace\n\n- The executable must be named `Grace`.\n- When executed, the program writes in a file named Grace_kid.c/Grace_kid.s\nthe source code of the file used to compile the program.\n- The source code must strickly contain :\n    - No main declared.\n    - Three defines only.\n    - One comment.\n- The program will run by calling a macro\n\n\n## PART 3: Sully\n\n\n- The executable must be named `Sully`.\n- When executed the program writes in a file named `Sully_X.c/Sully_X.s`. The\nX will be an interger given in the source. Once the file is created, the program\ncompiles this file and then runs the new program (which will have the name of its\nsource file).\n- Stopping the program depends on the file name : the resulting program will be\nexecuted only if the integer X is greater or equals than 0.\n- An integer is therefore present in the source of your program and will have to\nevolve by decrementing every time you create a source file from the execution of\nthe program.\n- You have no constraints on the source code, apart from the integer that will be\nset to 5 at first.\n\n## RESSOURCES\n\n- [Quine on 42 intra](https://elearning.intra.42.fr/notions/dr-quine/subnotions/dr-quine/videos/dr-quine)\n- [Exemple of Quine in C](https://www.youtube.com/watch?v=gCY_K3lQ_qk)\n- [Preprocessor macro](https://www.youtube.com/watch?v=cmGq62c1Ceg)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaletran%2F42_dr_quine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaletran%2F42_dr_quine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaletran%2F42_dr_quine/lists"}