This repository contains:
- All of my code for the different projects from 42. Of which I'm currently trying to write documentation so people
and I myselfcan understand what I've done and why I've done it as I have. Currently documented (with astounding verbose):- Pipex.
- Push_swap.
- Philosophers.
- Minishell.
- Cube3D
- A Makefile template that I personally find pretty a e s t h e t i c.
Brief description of my implementations:
- libft: The essential cursus library, with a focus on safety and some extra functions that do stuff like return the absolute value, return the power of an int, return whether a string will overflow an int if passed to atoi and free a pointer and point it to NULL.
- get_next_line: Memory safe and code clean. Very modular, with variables with weird names :)
- printf: Memory safe implementation with the bonuses that buffers the output because I seem to like pain. Unorganized and confusing as hell, but working marvelously.
- buffLessPrintf: An unfinished version that wouldn't have buffered the output. I began this out of sheer frustration, but since the other version turned out nicely I'll probably never finish this.
- so_long: 100% Denominación de Origen project using the old and leaky mlxlib, with a desert theme and all bonuses.
It mostly works fine but does some weird stuff if lots of enemies overlap.Works perfectly. My sweet child :_) - pipex: Perfecly working, memory safe and bonusful.
- push_swap: Memory safe implementation of a modified median-focused quicksort using arrays that sorts in groups of five. It got really really close to being 5-point worthy, but it ultimately wasn't.
- philosophers: Reasonably clean implementation with a prettier bonus part than mandatory part. The precision it has in both bonus and mandatory is remarkable, being able to work to the milisecond in the campus' macs.
- minishell: Mi personal (s)hell, done together with phijano. I was in charge of coding the builtins and the parser. The executor and signal handling are courtesy of my partner. There are a couple of things that could be improved, like flag-handling and ctl-D in blocking processes, but overall I think it turned out pretty nice.
DISCLAIMER: The PATH is currently hardcoded for the commands that aren't builtin. We should probably look into that and fix it... - cube3D: A very simple recreation of Wolfenstein3D built in C with the MLX42 graphics library. The objective was implementing our own raycasting (which we did using a dda algorithm) and, I must say, I think we did a great job :)