Le C++ moderne par le développement de jeux
4.4 (349 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,686 students enrolled

Le C++ moderne par le développement de jeux

Conçu pour découvrir le C++ moderne et se forger des bases solides pour créer des applications performantes et robustes
Bestseller
4.4 (349 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
1,686 students enrolled
Created by Nicolas Koenig
Last updated 1/2019
French
Current price: $83.99 Original price: $119.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 9 hours on-demand video
  • 15 downloadable resources
  • 2 coding exercises
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • comprendre ce qu’est la programmation
  • coder en C++ de façon moderne et propre
  • organiser son code de façon structurée
  • comprendre et savoir utiliser les principes de la POO (Programmation Orientée Objet)
  • savoir utiliser la bibliothèque standard (SL) dont la STL
  • savoir utiliser la bibliothèque SFML pour créer une fenêtre et y dessiner des formes et des images
  • savoir créer un jeu-vidéo simple tel que Asteroids
  • avoir des bases solides pour créer tout type de programme (logiciel, jeu, driver…)
Requirements
  • vous devez être capable d’utiliser un ordinateur au niveau débutant
Description

Titulaire d’un diplôme d’ingénieur et après plusieurs années d’expérience, j’ai créé mon entreprise pour partager mes connaissances d’une part et me consacrer à divers projets d’autre part.

J’ai créé ce cours à destination des amateurs, des étudiants et des professionnels qui souhaitent découvrir ou redécouvrir le C++. Ce cours est conçu pour apprendre le C++ moderne (c++17) depuis zéro en prenant tout de suite de bonnes habitudes pour créer rapidement des applications robustes et performantes.

Il est décomposé en deux parties qui suivent chacune un fil conducteur : un programme de Juste Prix pour la première partie et un jeu d’arcade en seconde partie : Asteroids. Ces deux exemples ont l’avantage d’être ludiques et de permettre d’aborder toutes les notions de bases du C++, ces bases pouvant servir aussi bien à la création d’un jeu-vidéo que d’un autre logiciel ou d’un driver.

Dans ce cours, vous découvrirez :

  • ce qu’est la programmation C++ (dans sa version 2017)

  • les outils nécessaires à la programmation

  • comment utiliser la mémoire de l’ordinateur grâce aux variables

  • comment conditionner du code et créer des boucles grâce aux diverses structures de contrôle (if, while, for, switch)

  • comment convertir des données d’un type à un autre

  • ce que sont les références

  • ce que sont les pointeurs bruts

  • comment créer des fonctions

  • comment structurer son code proprement pour un code lisible et modulaire

  • comment créer et utiliser des tableaux de données

  • comment gérer le temps (chronomètre)

  • comment générer un nombre aléatoire

  • comment gérer les chaînes de caractères (données textuelles)

  • comment installer une bibliothèque externe

  • comment créer et utiliser des objets

  • comment créer des classes (types d’objets)

  • comment utiliser l’héritage

  • ce qu’est le polymorphisme et comment l’utiliser

  • comment gérer de la mémoire dynamique (tableaux dynamiques, pointeurs intelligents)

  • comment gérer les exceptions (outil permettant de bien gérer les erreurs)

  • comment créer des templates (modèles de classes et de fonctions : moins de code pour plus d’efficacité !)

  • comment lire/écrire dans un fichier

Et tout ceci dans les règles de l’art, avec des conseils, les bonnes pratiques à adopter pour un code lisible, efficace et performant.

Alors, n’attendez plus et inscrivez-vous dès maintenant : c’est parti !

Who this course is for:
  • quiconque n’a jamais programmé en C++ ni en aucun autre langage
  • quiconque n’a pas programmé en C++ depuis longtemps et souhaite revoir les bases avec les façons de faire les plus modernes
  • quiconque ne connait que C++03 et souhaite découvrir les nouvelles pratiques et fonctionnalités du C++ moderne (C++11, C++14, C++17) en reprenant les bases
Course content
Expand all 40 lectures 09:03:35
+ Introduction
2 lectures 16:34

Dans cette session, vous apprendrez ce qu’est la programmation, ce qu’est un langage informatique et comment l’ordinateur, à partir d’un code source C++, peut générer un programme exécutable : grâce au compilateur.

Preview 05:18

Dans cette session, après vous avoir fait installé Code::Blocks, je vous ferai découvrir ses principales fonctionnalités, celles qui sont indispensables pour la suite : création de projet, compilation, exécution.

Je vous montrerez également comment configurer Code::Blocks pour suivre cette formation (étape indispensable au bon suivi de la formation). La configuration présentée dans cette session vous est conseillée pour tous vos projets.

Preview 11:16

Quelques mots de vocabulaire.

Le vocabulaire de la programmation
4 questions
+ [Le Juste Prix] Les bases de la programmation
3 lectures 27:32

Dans cette session, vous apprendrez le code minimal d’une application C++ et comment afficher du texte à l’écran.

À la fin de cette session, notre programme souhaite la bienvenue à l’utilisateur.

Preview 10:41

Dans cette session, vous apprendrez à enregistrer un nombre dans la mémoire de l’ordinateur en créant une variable.

À la fin de cette session, notre programme aura un prix en mémoire, prix que l’utilisateur aura pour objectif de deviner.

Mémorisation d’un prix
09:17

Dans cette session, vous apprendrez à demander à l’utilisateur de saisir une information et à enregistrer cette information dans une variable.

À la fin de cette session, notre programme enregistrera en mémoire la première proposition de l’utilisateur.

Proposition d’un prix
07:34
Les bases de la programmation
4 questions
+ [Le Juste Prix] Les structures de contrôles
4 lectures 43:13

Dans cette session, vous apprendrez à exécuter un bloc de code différent selon une condition.
Vous découvrirez également ce qu’est la portée d’une variable.

À la fin de cette session, notre programme répond "C’est plus !" ou "C’est moins !" selon la valeur saisie par l’utilisateur.

C’est plus ! ou C’est moins !
16:33

Dans cette session, vous apprendrez à exécuter un bloc de code plusieurs fois de suite grâce à la boucle while.

À la fin de cette session, notre jeu du juste prix est jouable !

Le jeu est enfin jouable !
12:40

Dans cette session, vous apprendrez à exécuter un bloc de code un nombre de fois prédéfini grâce à la boucle for. Vous apprendrez également à parcourir un ensemble de valeurs grâce au "range-based for", une autre syntaxe du for.

À la fin de cette session, notre jeu du juste prix enchaînera 3 parties.

Et si on faisait plusieurs parties ?
06:03

Dans cette session, vous découvrirez le switch, structure de contrôle qui permet d’exécuter du code différent selon les valeurs possibles d’une variable.

À la fin de cette session, notre programme s’ouvrira sur un menu qui laissera différents choix à l’utilisateur.

Un menu pour notre jeu
07:57
Les structures de contrôle
4 questions
+ Compléments sur les types de variables
3 lectures 27:33

Dans cette session, nous ferons un point sur les types fondamentaux et vous découvrirez comment convertir une variable en un type donné grâce au cast.

Les types fondamentaux et les conversions
10:17

Dans cette session, je récapitulerai ce qu’est une variable et vous apprendrez à donner plusieurs noms à une même zone mémoire grâce aux références.

Les références
08:06

Dans cette session, vous découvrirez les pointeurs bruts, notion fondamentale dans les anciennes versions du C++, leur utilité s’est vue diminuée depuis C++11. Ils restent toutefois un élément indispensable du langage.

Les pointeurs
09:10
Les références et pointeurs
3 questions
+ [Le Juste Prix] Mieux structurer son code
3 lectures 49:26

Dans cette session, vous apprendrez à créer des constantes mais aussi un type avec comme valeurs possibles un ensemble de constantes : l’énumération.

Les constantes et énumérations
14:59

Dans cette session, vous apprendrez à structurer votre code grâce aux fonctions, afin d’avoir un code plus lisible et réutilisable.

Structurons notre code grâce aux fonctions
18:17

Dans cette session, vous apprendrez à séparer les déclarations (ou prototypes) des fonctions de leurs définitions (ou implémentations). Vous verrez également ce qu’est la surcharge de fonction et comment donner une valeur par défaut à un paramètre.

Séparons les déclarations des définitions !
16:10
Nombre de secondes
1 question
+ [Le Juste Prix] Quelques fonctionnalités de la bibliothèque standard (SL)
3 lectures 37:51

Dans cette session, vous apprendrez à enregistrer en mémoire un ensemble de valeurs grâce aux tableaux de taille fixe (array).

À la fin de cette session, notre jeu récapitulera les scores des 3 parties écoulées.

Récapitulons les scores
18:09

Dans cette session, vous découvrirez une petite partie de la bibliothèque chrono.

À la fin de cette session, les parties seront chronométrées !

Chronométrons nos parties !
09:12

Dans cette session, vous apprendrez à générer des nombres aléatoires.

À la fin de cette session, notre jeu tirera ses prix aléatoirement à chaque lancement : chaque partie sera maintenant unique !

Un peu d’aléatoire !
10:30
Quelques fonctionnalités de la SL
3 questions
+ [Le pendu] Projet
3 lectures 31:07

Dans cette session, vous apprendrez à manipuler les chaîne de caractères, c’est à dire les mots et les phrases grâce au type std::string et au type std::string_view.

Les mots et phrases : des chaînes de caractères
15:05

Dans cette session, vous apprendrez à utiliser le débuggeur pour retrouver la source des erreurs rencontrées à l’exécution. Vous apprendrez à faire dérouler le programme pas à pas, à utiliser des points d’arrêts (breakpoints) et à surveiller la valeur de vos variables.

Débugger ses programmes
13:42

L’objectif de cette session est de vous faire programmer seul le jeu du pendu, car la programmation doit se pratiquer pour vraiment être maîtrisée.

Sujet, ressources et corrigé
02:20
+ [Astéroides] La programmation orientée objet
3 lectures 28:18

Dans cette session, vous apprendrez ce qu’est un objet en programmation : une boîte noire avec des fonctionnalités dont on peut ignorer le fonctionnement interne : on parle d’encapsulation.

Un objet : facile d’utilisation même si complexité interne
06:56

Dans cette session, nous installerons ensemble la bibliothèque SFML, qui fournit des outils permettant entre autres de créer une fenêtre et d’y dessiner des formes et des images !

À la fin de cette session, votre projet sera configuré, prêt à être codé !

Une bibliothèque pour gérer l’affichage d’une fenêtre : la SFML
08:20

Dans cette session, vous apprendrez à créer une fenêtre en SFML et à y dessiner des cercles.

Créons une fenêtre et donnons de la couleur à notre programme
13:02
La programmation orientée objet
3 questions
+ [Astéroïdes] Les types d’objet : des classes
4 lectures 01:01:40

Dans cette session, vous apprendrez à créer votre propre classe, avec ses méthodes (fonctionnalités) et ses attributs (état).

À la fin de cette session : vous aurez créé une classe Vaisseau pour notre jeu Astéroïdes. Sous la forme d’un cercle blanc pour le moment, il pourra commencer à se déplacer.

Créons un vaisseau
10:18

Dans cette session, vous apprendrez ce qu’est un constructeur : une méthode particulière qui permet d’initialiser un objet. Vous verrez également ce qu’est le destructeur, autre méthode particulière qui est elle appelée au moment de la destruction de l’objet.

À la fin de cette session, notre vaisseau ressemblera visuellement à un vrai vaisseau.

Une meilleure allure pour notre vaisseau
15:33

Dans cette session, vous apprendrez également à créer des attributs et des méthodes de classe avec le mot clé static et vous découvrirerez ce qu’est la constcorrectness pour un code de meilleure qualité.

À la fin de cette session, notre vaisseau accélérera et ralentira de façon plus réaliste.

Un vaisseau plus réaliste : accélération et vitesse
14:50

Dans cette session, vous apprendrez à surcharger les opérateurs, ce qui va vous permettre de définir et d’utiliser les opérateurs (+, *, /, …) avec vos propres types !

À la fin de cette session, notre vaisseau pourra tourner et donc se déplacer dans toute la fenêtre.

Déplaçons-nous dans toutes les directions
20:59
Des coordonnées pour mieux se repérer
1 question
Les types d’objet : des classes
7 questions
+ [Astéroïdes] Héritage et polymorphisme
4 lectures 01:03:35
Dans cette session, vous apprendrez ce qu’est l’héritage, qui permet de mutualiser du code (éviter de le recopier) lorsque plusieurs classes ont des propriétés et/ou des comportements communs. Vous découvrirez également le mot clé protected.

À la fin de cette session, un astéroïde se déplacera à l’écran.

Créons un obstacle : un astéroïde
20:24

Dans cette session, vous apprendrez ce que sont le type statique et le type dynamique d’une variable. Vous découvrirez ainsi toute la puissance du polymorphisme et comment créer des méthodes virtuelles.

À la fin de cette session, notre vaisseau se déplacera au milieu de plusieurs astéroïdes.

Plusieurs astéroïdes à l’écran
16:48

Dans cette session, je vais vous faire découvrir quelques bonnes pratiques à adopter pour éviter certaines erreurs et avoir un code plus clair et robuste :

  • vous apprendrez que les constructeurs sont par défaut des constructeurs de conversion, possiblement utilisés implicitement par le compilateur et vous apprendrez à utiliser le mot clé explicit pour changer ce comportement ;
  • vous verrez que par défaut, le compilateur génère des constructeurs de copie et l’opérateur d’affectation (=) dans toutes les classes et je vous apprendrez à l’en empêcher lorsque ce n’est pas souhaité ;
  • et vous découvrirez le mot clé override qui indique au compilateur que vous surchargez une méthode de la classe parente.
Quelques bonnes pratiques
10:24

Dans cette session, vous apprendrez ce qu’est une fonction virtuelle pure et ce qu’est une classe abstraite. Je vous expliquerai également que toute classe mère doit avoir un destructeur virtuel.

À la fin de cette session, notre vaisseau devra éviter les astéroïdes pour ne pas exploser !

Évitons les astéroïdes !
15:59
Héritage et polymorphisme
7 questions