Skip to content
willa edited this page May 19, 2023 · 5 revisions

cube3d

How does it work ?

The math behind the projet The map format description

Why does the code look weird ?

norminette

The 42 curriculum asks us to code according to the Norme, this standard forbids us certain control structures (like do while, for, ...), a limit of 25 lines, 5 variables per function, 5 function max per .c and other constraints.

This project has been coded according to the NormeV3 standard.

NormeV3 PDF used in this projetc

Norme repo

Requirements

Clone with submodule

git clone --recurse-submodules [email protected]:fluffy-willa-42-team/cube3d.git

or if you have Oh-My-Zsh

gcl [email protected]:fluffy-willa-42-team/cube3d.git

You need to install some lib before compile

MacOS

First install Brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

For the 42 mac

rm -rf $HOME/.brew && git clone --depth=1 https://github.com/Homebrew/brew $HOME/.brew && echo 'export PATH=$HOME/.brew/bin:$PATH' >> $HOME/.zshrc && source $HOME/.zshrc && brew update

Install glfw lib

brew install glfw 

Debian/Ubuntu

Install lib dependencies

 apt install build-essential libx11-dev libglfw3-dev libglfw3 xorg-dev libxext-dev zlib1g-dev libbsd-dev

Compile

To compile

make

Compile and run

make exe

Compile with fsanitize=address

make SANI=1

Compile with fsanitize=address and execute a test unit

make test

Execute test unit

make run_test

This work is published under the terms of 42 Unlicense.

Clone this wiki locally