Skip to content

Latest commit

 

History

History
24 lines (22 loc) · 3.48 KB

README.md

File metadata and controls

24 lines (22 loc) · 3.48 KB

Cursus42

My approaches to the projects of 42's Common Core.

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 myself can 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 :)