Initiation à la programmation à Montjoire
Si vous habitez Montjoire (31380) ou les environs et que vous êtes interessés par la programmation informatique, vous pouvez nous rejoindre tous les vendredis soir de 18h00 à 19h à la Chapelle de Montjoire.
Nous sommes en train de reprendre nos sessions d'initiations à la programmation. Beaucoup d'élèves de lycée et de supérieur sont confrontés au langage python. Nous allons donc commencer des sessions d'apprentissage dans ce langage.
L'entrée est libre et ouvert à tous les publics.
Je tiens à remercier la Mairie de Montjoire pour le prêt de la Chapelle.
Vous trouverez ici un récapitulatif des notions abordées et les fichiers sources à télécharger sur les sessions antérieurs. À noter que nous avons commencé par le langage C. Les sessions en C ont toujours lieu mais de manière ponctuelle et nous ne notons plus le détail de ces sessions.
Ressources et contributions
Ici se trouvent les contributions des intervenants et les fichiers en cours d'élaboration que nous utilisons dans nos programmes.
Les notions abordées par ordre chronologique décroissants
Durant le mois de Juillet 2023
- Jour 50 : Initiation à la programmation en python. Nous avons abordé les fonction print et input, les structures de contrôle if/else et match/case, nous avons introduit les fonctions (def).
Durant le mois de Novembre 2021
- Jour 49 : Initiation à la programmation objet en python. Nous avons aidé Luca (Terminale option SNI) pour son projet en python. Nous avons abordé les notions d'accesseur et de mutateur en python.
Durant le mois d'Octobre 2021
-
Jour 48 (voir le détail):
Initiation à Python. Nous avons comparé deux implémentations de la bibliothèques
SDL2 afin de créer des jeux : pygame et python-sdl2.
Nous avons décidé d'utiliser la bibliothèque pygame car cette bibliothèque est plus mature et les ressources en tutoriels et documentation sont plus importantes.
Axel nous a montré un exemple de programme en pygame qu'il a conçu dans le cadre de son travail.
Durant le mois d'Octobre 2020
- Jour 47 : Initiation à la programmation objet en Java
Durant le mois de Septembre 2020
- Jour 46 : Initiation Python, nous avons fait des exercices de Marion (1ère année de licence Physique/Chimie)
Durant le mois d'août 2020
- Jour 45 (voir le détail): Nous avons abordé l'utilisation des vertex en c++/sfml.
Durant le mois de juillet 2020
- Jour 44: Nous avons essayé de compiler des exemples simples en C++/SFML sous Windows, en utilisant l'environnemenent MSYS-2 et le compilateur gcc. Ceci afin d'avoir un Makefile universel fonctionnant à la fois sous Windows et sous Linux. Les tests sont à poursuivre.
Durant le mois de juin 2020
- Jour 43: Nous avons travaillé sur TM_invaders. Nous avons étudié le placement aléatoire des vaisseaux ennemis. Nous avons été confronté à un problème sur la fonction de probabilité que nous avions programmée. Des vaisseaux ennemis pouvaient se superposer. Pour résoudre ce problème, Axel a proposé d'utiliser une technique dite des couloirs. On découpe la longeur de l'écran en plusieurs couloirs (autant de couloir qu'il y a d'ennemis à placer) et on place aléatoirement chaque ennemi dans un couloir.
- Jour 42: Nous avons travaillé sur le logiciel git (outils de travail collaboratif). Nous avons ouvert un dépôt sur github puis nous avons créé des dépôts pour les jeux de la Team Montjoire (TM_SquarePong et TM_invaders). Le lien github est le suivant : https://github.com/TeamMontjoire/
Durant le mois de mai 2020
- Jour 41: Modification du Makefile du jeu Square Pong pour que celui-ci compile indiféremment sous Windows et sous Linux. Résolution du problème de latence lors du premier appui d'une touche du clavier.
- Jour 40 : Installation de MSYS-2 sur l'ordinateur d'Axel et tentative de compilation du jeu Square Pong sous Windows.
Durant le mois de février 2020
- Jour 39 : On a continué à étudier Arduino. Axel nous a expliqué les bases sur le fonctionnement de quelques composants électroniques.
Durant le mois de janvier 2020
- Jour 38 : Initiation à Arduino
- Jour 37 (voir le détail): Nous avons fait une session sur le shell et awk.
- Jour 36 (voir le détail): Nous avons fait un premier test de déplacement horizontal de notre ennemi.
- Jour 35 (voir le détail): Pour ne pas polluer le code principal de notre projet, nous allons faire des tests unitaires de la gestion des ennemis dans un code à part. Nous avons donc établi un squelette qui nous servira de base à nos futurs développements.
Durant le mois de décembre 2019
- Jour 34 (voir le détail): Étude de l'héritage en langage C++.
Durant le mois de novembre 2019
- Jour 33 : étude du déplacement de notre ennemi.
- Jour 32 (voir le détail): Nous avons implémenté l'affichage de notre ennemi (modification du makefile et test de l'affichage dans la création de l'objet scene).
Durant le mois d'octobre 2019
- Jour 31 (voir le détail): Nous avons commencé à faire quelques tests sur les systèmes d'exploitations. Pour cela nous avons installé Linux-Debian et OpenBSD sur un vieil ordinateur d'Alan.
Durant le mois de septembre 2019
- Jour 30 (voir le détail): Initiation au c++. Affichage de texte avec cout et entrée de données avec cin.
- Jour 29 (voir le détail): Création d'un objet "ennemi" afin d'avoir une entité qui puisse interagir avec notre personnage.
- Jour 28 (voir le détail): Allan avait un examen de c++ donc a vu les bases du langage c++ à savoir : les bases de la programmation objet - constructeur, mutateurs, accesseurs
Durant le mois d'août 2019
- Jour 27 (voir le détail): Gestion des collisions. On a géré les collisions provoquées par les changements des terrains. Par exemple, notre personnage ne peut plus passer dans l'eau.
- Jour 26 (voir le détail): Ajout de nouveau terrain.
Durant le mois de juillet 2019
- Jour 25 (voir le détail): Migration des appels de l'objet hero à partir de l'objet scene.
- Jour 24 (voir le détail): Étude de l'éditeur de map en python.
Durant le mois de juin 2019
- Jour 23 (voir le détail): Pour ne pas avoir à tout gérer à partir du main, on a crée deux fichiers supplémentaires "scene.c" et "scene.h" qui sont chargés de rafraichir à la fois la map et le déplacement des différents acteurs. On a commencé à migrer l'appel des fonctions de la map directement à partir de l'objet scene et non plus à partir du main.
- Jour 22 (voir le détail): Étude du mouvement du personnage. On a travaillé sur la fluidité du personnage en lui rajoutant un sprite intermédiaire lors de son déplacement.
Durant le mois de mai 2019
- Jour 21 (voir le détail): étude du mouvement du personnage (sans collision). Implémentation du changement de l'image du personnage en fonction de la direction.
Durant le mois d'avril 2019
- Jour 20 (voir le détail) : étude du mouvement du personnage (sans collision)
- Jour 19 : étude de la position du personnage
Durant le mois de mars 2019
- Jour 18 : étude du personnage, création d'un fichier objet pour gérer le personnage
Durant le mois de février 2019
- Jour 17 : étude du personnage, alpha blending (on effectue les tests directement dans le main)
- Jour 16 (voir le détail): étude du déplacement
Durant le mois de janvier 2019
- Jour 15 (voir le détail): affichage d'un type SDL_Rect pour étudier le déplacement du personnage
Durant le mois de décembre 2018
- Jour 14 : shell bash (projet d'Alan), python
- Jour 13 : shell bash (projet d'Alan)
- Jour 12 : étude du personnage
Durant le mois de novembre 2018
- Jour 11 (voir le détail): affichage de la map
- Jour 10 : simulation de la programmation objet en C, allocation de la mémoire avec malloc
- Jour 9 : fonction SDL_RenderCopy, étude de la map
- Jour 8 (voir le détail) : manipulation des fichiers, lecture et affichage de la map en utilisant un tableau de caractère à deux dimensions
Durant le mois d'octobre 2018
- Jour 7 (voir le détail): Théorie des tuiles, lecture de fichier, compilation de fichier multiples, Makefile
Durant le mois d'août 2018
- Jour 6 (voir le détail) : SDL_Surface, SDL_Texture, SDL_Rect
- Jour 5 (voir le détail) : bibliothèque SDL -> initialisation, évènement, sprite
- Jour 4 (voir le détail) : type struct, type enum, création d'un "fichier d'en tête"
- Jour 3 (voir le détail) : type struct
Durant le mois de juillet 2018
- Jour 2 (voir le détail) : appel de fonction en C, structure de contrôle switch/case et for, pointeur, passage d'argument par valeur et par adresse, les tableaux
- Jour 1 (voir le détail): commande de base du shell, utilisation de gcc, notions de base en C.