Programmation avancée
Perfilado de sección
-
-
Proposition pour les questionnaires en décembre Foro
-
L'organisation du cours :
CM1 : Fonctionnement un programme (en mémoire) + présentation de projet
CM2 : Rappels (fonctions, structures de données: piles et tableaux, ...) + Makefile (+ allocation de mémoire)
- TP1 : Makefile / CMake + SDL + Gestion de version github
CM3 : Gestion de mémoires
CM4 : Gestion de fichiers et d'entrées/sorties
- TP2 : SDL (événements avec souris et clavier) + écrire/lire les fichiers
CM5 : Algorithme sur le graphe et la structure arborescente
- Projet de programmation avancée
- TP1 : Makefile / CMake + SDL + Gestion de version github
-
Pour installer SDL sur votre PC perso :
- Windows ou Mac OS
- Linux (Ubuntu) : sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
- Mac OS : brew install cmake
- Linux (Ubuntu) : sudo apt install cmake build-essential
- Window
Tutoriels pour C
Tutoriels pour SDL en C
-
Gestion de version Git, compilation avec Makefile/CMake et la bibliothèque SDL.
Attention si vous faites une copie-colle de Makefile pour SDL depuis le sujet, vous pouvez rencontrer d'erreur de type : ‘sdl2-config n'existe pas. Cela vient du caractère d'apostrophe (‘) dans LDFLAGS que vous avez copié, pour corriger, vous devez remplacer ce caractère par la caractère (`) venant de la touche AltGr + 7 !!!!
-
Si vous travaillez sur votre PC personnel et vous avez installé libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev :
- Vous n'avez pas besoin de configurer les zip : SDL_image-1.2.12.zip, SDL_ttf-2.0.11.zip, SDL2_image.zip, SDL2_ttf.zip
- Il faut juste mettre dans LIBS : -lSDL2_ttf -lSDL2_image (c.f Makefile dans Supports TP1)
-
SDL événements et la gestion des fichiers
- Windows ou Mac OS
-
Le projet a pour objectif de mettre en pratique les connaissances acquises durant l'UE.
Les exigences du projet sont :
- Langage de programmation
- C / C++
- Compilation séparée
- Makefile / CMake
- Fonctions et procédures
- Structure de données
- Enregistrements avec listes
chainées, piles, files, graphes, …
- Gestion de
mémoire
- Allocation de la mémoire dynamique
- Libération de la mémoire
- Fuite de mémoire
- Gestion d’entrées et de sorties
- Clavier et souris
- Gestion des fichiers
- Lecture et écriture
- Graphiques
- SDL, SFML, ...
- Gestion de version
- github, gitlab, bitbucket,…
- Autres critères
- Organisation du code : headers, sources, definition de constantes, commentaires, clarté, ...
- Optimisation du code : accès aux fichiers, gestion de la mémoire dynamique (malloc + free), ...
- Organisation du code : headers, sources, definition de constantes, commentaires, clarté, ...
Vous devez compléter le pad Info projet sur Arche avant 18h le 18 octobre 2023, en indiquant :- Votre binôme
- Le lien git du projet : les projects devaient être obligatoirement versionnés !
Exemple : SDL avec de sprites, de traitement de collisions, de boucles etc.
- Wiki : https://github.com/ssloy/sdl2-demo/wiki
- Code : https://github.com/ssloy/sdl2-demo
- Moteur 3D : https://github.com/ssloy/stroll
- Ray casting 3D : https://github.com/ssloy/tinyraycaster
-
Une feuille antisèche manuscript A4 est autorisé pendant l'examen.
-
La mise à disposition d'un sujet exemple n'est en aucun cas une garantie que le sujet final y ressemblera.
-