diff --git a/.gradebook.db b/.gradebook.db index 61ec976c84dc4e896e73739ea2b26103deed93e1..cac8cd143196eddb6829e1037ec99c56320a98fe 100644 Binary files a/.gradebook.db and b/.gradebook.db differ diff --git a/exemple-graphisme1.cpp b/exemple-graphisme1.cpp index 745b3428ff22b1aef667a06829772b67311c05fa..7317429740501cc2d8307bbea318e0339d0bf360 100644 --- a/exemple-graphisme1.cpp +++ b/exemple-graphisme1.cpp @@ -3,8 +3,7 @@ using namespace sf; #include "primitives.hpp" -int main() -{ +int main() { // Crée une fenêtre de taille 640x480 RenderWindow window(VideoMode(640, 480), "Ma super fenêtre"); @@ -23,4 +22,3 @@ int main() return 0; } - diff --git a/exemple-graphisme2.cpp b/exemple-graphisme2.cpp index 9011afad186c017fa811662c2afc27e2a851999f..4445d3b217dc05ac5a788ca7c4a3f773e2afa922 100644 --- a/exemple-graphisme2.cpp +++ b/exemple-graphisme2.cpp @@ -4,8 +4,7 @@ using namespace sf; #include "primitives.hpp" -int main() -{ +int main() { /// BEGIN // Crée une fenêtre de taille 640x480 RenderWindow window(VideoMode(640, 480), "Ma super fenêtre"); @@ -33,4 +32,3 @@ int main() return 0; } - diff --git a/exemple-graphisme3.cpp b/exemple-graphisme3.cpp index 6a64196fe8d07748b12ddb23127d95b3d128a9d2..77124e14337a6cdd15194101da431d47f1b96a74 100644 --- a/exemple-graphisme3.cpp +++ b/exemple-graphisme3.cpp @@ -4,27 +4,27 @@ using namespace sf; #include "primitives.hpp" -int main(){ - // Créé et affiche la fenêtre +int main() { + // Créé et affiche la fenêtre RenderWindow window(VideoMode(640, 480), "Ma super fenêtre"); window.clear(Color::White); - // Dessine des cercles, ellipses, rectangles, lignes et points + // Dessine des cercles, ellipses, rectangles, lignes et points draw_circle(window, {20, 20}, 10, Color::Blue); draw_circle(window, {50, 20}, 10, Color::Red); - draw_rectangle(window, {10, 50}, 40, 20, Color::Blue ); + draw_rectangle(window, {10, 50}, 40, 20, Color::Blue ); draw_line(window, {120, 50}, {160, 90}, Color::Black); draw_point(window, {10, 110}, Color::Red); - // Affiche du texte + // Affiche du texte draw_text(window, {10, 120}, 14, "Voici un exemple de texte.", Color::Black); - // Met à jour l'affichage. + // Met à jour l'affichage. window.display(); - // Attend 10 secondes avant la fin du programme. + // Attend 10 secondes avant la fin du programme. sleep(seconds(10)); - return 0; + return 0; } diff --git a/fibonacci.cpp b/fibonacci.cpp index 850813f556a318f7010b4eb86e60e5f24494f1bb..0e5b84ad36e14ce1297872dc3b31c835ce095c6b 100644 --- a/fibonacci.cpp +++ b/fibonacci.cpp @@ -36,13 +36,13 @@ void fibonacciTest() { CHECK( fibonacci(6) == 8 ); } -int main(){ +int main() { fibonacciTest(); int n; cout << "Entrez un entier : " << endl; cin >> n; - cout << "Fibonacci(" << n << ") vaut "<< fibonacci(n) << endl; + cout << "Fibonacci(" << n << ") vaut " << fibonacci(n) << endl; return 0; } diff --git a/index.md b/index.md index 33684a9258c09c3ff51d1b78400e67581141a1bd..246d5a31a42a2e6799fc0381be058e2d2d5a86fe 100644 --- a/index.md +++ b/index.md @@ -38,9 +38,9 @@ en plusieurs fichiers. Puis nous étudierons quelques exemples de programmes utilisant la bibliothèque SFML et nous en inspirerons pour programmer des dessins et interagir avec l'utilisateur. -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "1944ac8026cc545a57bcc39a8d55fe63", "grade": false, "grade_id": "cell-6d952c4decd8c706", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "66602a703f36c2f7e318dabbea427a84", "grade": false, "grade_id": "cell-6d952c4decd8c706", "locked": true, "schema_version": 3, "solution": false, "task": false}} -## <a name=Cours>Cours</a> +## [Cours](cours.md) - Cours : [Cycle de vie d'un programme](cours-cycle-de-vie-d-un-programme.md) - Cours : [Modularité et compilation séparée](cours-modularite.md) @@ -55,9 +55,9 @@ programmer des dessins et interagir avec l'utilisateur. ## TP -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "b3fecc2d15e9c0ee06eddcefbb2ad19a", "grade": false, "grade_id": "cell-88edc2f254ba7294", "locked": true, "schema_version": 3, "solution": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "c14862eeb15c1d00c45129ecb04ba658", "grade": false, "grade_id": "cell-88edc2f254ba7294", "locked": true, "schema_version": 3, "solution": false}} -### Exercice : préliminaires : compilation séparée +### Exercice 1 : préliminaires : compilation séparée 1. Consultez le contenu des fichiers suivants : [factorielle.hpp](factorielle.hpp), [factorielle.cpp](factorielle.cpp), [factorielle-exemple.cpp](factorielle-exemple.cpp). @@ -106,9 +106,9 @@ programmer des dessins et interagir avec l'utilisateur. % REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "f49d0ae7077b8d73d8bb2d37e0d9b548", "grade": false, "grade_id": "cell-41bec4fdd73fc56d", "locked": true, "schema_version": 3, "solution": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "08916a6087c9fab33a500eaeb42a3e19", "grade": false, "grade_id": "cell-41bec4fdd73fc56d", "locked": true, "schema_version": 3, "solution": false}} -### Exercice : compilation séparée +### Exercice 2 : compilation séparée +++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "0aa22e643a0731f21a052d645349ad26", "grade": false, "grade_id": "cell-89f33130471fc08e", "locked": true, "schema_version": 3, "solution": false}} @@ -160,38 +160,80 @@ programmer des dessins et interagir avec l'utilisateur. % REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "7c740bf5fd075394305a0f98d1dd0422", "grade": false, "grade_id": "cell-96bafcc3c30ace6e", "locked": true, "schema_version": 3, "solution": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "36737f42fbf6300e344e76a3b1301b30", "grade": false, "grade_id": "cell-96bafcc3c30ace6e", "locked": true, "schema_version": 3, "solution": false}} -### Exercice : Premiers graphiques avec Jupyter +### Exercice 3 : Premiers graphiques avec Jupyter 1. Refaites l'exercice 2 du [TD](TD.md) en complétant la feuille [premier-dessin](premier-dessin.md). Implantez chacun des items en vérifiant à chaque fois le résultat. -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "e883c664c0706a830228145c1004b74a", "grade": false, "grade_id": "cell-96bafcc3c30ace6f", "locked": true, "schema_version": 3, "solution": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "a57556751a58812ad6c4403b1ef85a5d", "grade": false, "grade_id": "cell-96bafcc3c30ace6f", "locked": true, "schema_version": 3, "solution": false}} -### Exercice : Premiers graphiques avec SFML ♣ +### Exercice 4 : Premiers graphiques avec SFML -:::{attention} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "dc9004964871c8e7a51c6e61d4995bb1", "grade": false, "grade_id": "cell-96bafcc3c30ace6g", "locked": true, "schema_version": 3, "solution": false}} -Il n'est à l'heure actuelle pas encore possible d'utiliser le serveur -JupyterHub pour cet exercice. Il est donc à effectuer en local en -salle de TP (ou sur votre machine personnelle si vous avez les -logiciels requis). Si vous n'avez pas eu le temps de le faire en -séance de TP, ce n'est pas critique pour l'avancement de votre -projet. Aussi est-il marqué d'un ♣. +:::::{attention} SFML et sessions graphiques +Pour exécuter un programme utilisant la bibliothèque SFML, il est +nécessaire d'être dans une ***interface graphique***; sinon, vous +aurez une erreur comme : +``` +./exemple-graphisme1 +Failed to open X11 display; make sure the DISPLAY environment variable is set correctly +``` +(X11 est le gestionnaire de session graphique sous UNIX). + +::::{admonition} Option 1 : Sur les ordinateurs des salles de TP + +Vous êtes automatiquement dans une session graphique. Vous n'avez donc +rien de particulier à faire. + +:::: + +::::{admonition} Option 2 : Avec le service JupyterHub@Paris-Saclay, depuis tout autre ordinateur ou tablette connectée à Internet +:class: dropdown + +En parallèle de l'interface usuelle JupyterLab, vous pouvez lancer une +interface graphique (dite XFCE Desktop) sur le même serveur. Vous +pourrez ensuite basculer entre l'une et l'autre pour éditer et +compiler vos programmes d'une part, et les exécuter d'autre part. + +:::{figure} https://nicolas.thiery.name/Enseignement/Info111/media/screencast-sfml-on-jupyterhub.gif +Vidéo: lancer un programme graphique sur JupyterHub ::: -Pour installer les logiciels requis sur votre machine personnelle, -voir les sections « Aide à l'installation » sur la [page logiciels du -site du cours](http://nicolas.thiery.name/Enseignement/Info111/logiciels/#aide-installation). -À noter que, pour utiliser la SFML sur CodeBlocks ou tout autre -environnement de développement intégré (IDE), -il faut configurer l'IDE. Plus encore que d'habitude, nous -recommandons de compiler en ligne de commande dans le terminal. Pour -l'instant, en salle de TP, il est nécessaire d'utiliser `info-111 compile` -pour compiler un programme utilisant SFML. +:::: + +::::{admonition} Sur votre machine personnelle +:class: dropdown + +L'installation, la configuration et l'utilisation de la SFML peut être +un peu technique selon la configuration de votre ordinateur (système +d'exploitation, environnement de développement, ...). Nous donnons +ici quelques pointeurs, mais après c'est à vous de fouiller la +documentation, notamment sur le [site de la +SFML](https://www.sfml-dev.org/index-fr.php) et de vous +débrouiller. Dans le doute, utilisez plutôt une des deux options +ci-dessus. + +La section « Salle de TP virtuelle » sur la [page logiciels du site du +cours](https://nicolas.thiery.name/Enseignement/Info111/ComputerLab/README.html) +donne des instructions pour installer JupyterLab, compilateur C++ et +SFML. Sous GNU/Linux (Ubuntu, ...) cela devrait être suffisant pour +travailler. + +Si vous souhaitez utiliser CodeBlocks, Visual Studio, ou tout autre +environnement de développement intégré (IDE), il faudra configurer cet +IDE pour utiliser la SFML. Plus encore que d'habitude, nous +recommandons de compiler en ligne de commande dans le terminal. + +:::: + +::::: + ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "a0ff90a81efe68e4975687391da8ddc6", "grade": false, "grade_id": "cell-96bafcc3c30ace6h", "locked": true, "schema_version": 3, "solution": false}} 1. Ouvrez les fichiers [exemple-graphisme1.cpp](exemple-graphisme1.cpp) et [primitives.hpp](primitives.hpp) et consultez le premier. @@ -223,9 +265,9 @@ pour compiler un programme utilisant SFML. à changer la valeur de la variable `delai` pour voir le résultat s'afficher plus longtemps. -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "851f78b272e43edba563532592fc2279", "grade": false, "grade_id": "cell-eaefcdbc75785adb", "locked": true, "schema_version": 3, "solution": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "cb4372b6a345f17e803ae8856124785f", "grade": false, "grade_id": "cell-eaefcdbc75785adb", "locked": true, "schema_version": 3, "solution": false}} -### Exercice ♣ : Souris et clavier +### Exercice 5 : Souris et clavier ♣ 1. Pour vous donner une idée de l'utilisation de la SFML et de notre bibliothèque de primitives, lisez attentivement @@ -239,9 +281,9 @@ pour compiler un programme utilisant SFML. <!-- Solutions dans le TD !--> -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "5917c7b9cfd1dcba875ca0c00faa1060", "grade": false, "grade_id": "cell-5858dbcffa05aed3", "locked": true, "schema_version": 3, "solution": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "6bb1aa5b00f1758bbd44d55f54bc3ea6", "grade": false, "grade_id": "cell-5858dbcffa05aed3", "locked": true, "schema_version": 3, "solution": false}} -### Exercice ♣: Couche d'abstraction +### Exercice 6 : Couche d'abstraction ♣ Pour vous approprier la couche d'abstraction, consultez son implantation dans `primitives.cpp`. En vous inspirant de @@ -254,9 +296,9 @@ Vous pouvez vous aider de la % REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "346c0470eb0efbaa0d4446698ec913d5", "grade": false, "grade_id": "cell-48f3d0b08106b27e", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d07cbe5dd5f6b305779f0b8a6d1128f3", "grade": false, "grade_id": "cell-48f3d0b08106b27e", "locked": true, "schema_version": 3, "solution": false, "task": false}} -### Exercice ♣: Jeu du Yams +### Exercice 7_: Jeu du Yams ♣ Reprenez le jeu du Yams du TP 6 en ajoutant une interface graphique. diff --git a/max-test-tout-en-un.cpp b/max-test-tout-en-un.cpp index 1aea445746f8a88fcc033fe647724cc78503e9df..7c02da12e285c4283540a8878916f6f3cc77dbad 100644 --- a/max-test-tout-en-un.cpp +++ b/max-test-tout-en-un.cpp @@ -12,9 +12,9 @@ int monMax(int a, int b) { } void monMaxTest() { - CHECK( monMax(2,3) == 3 ); - CHECK( monMax(5,2) == 5 ); - CHECK( monMax(1,1) == 1 ); + CHECK( monMax(2, 3) == 3 ); + CHECK( monMax(5, 2) == 5 ); + CHECK( monMax(1, 1) == 1 ); } int main() { diff --git a/max-test.cpp b/max-test.cpp index 5151d81db7df012c3f7f25d6a1ddaf85d034712d..c0e16e10fa47306f56219ea2eb4682951b76dd78 100644 --- a/max-test.cpp +++ b/max-test.cpp @@ -7,9 +7,9 @@ using namespace std; #include "max.hpp" void monMaxTest() { - CHECK( monMax(2,3) == 3 ); - CHECK( monMax(5,2) == 5 ); - CHECK( monMax(1,1) == 1 ); + CHECK( monMax(2, 3) == 3 ); + CHECK( monMax(5, 2) == 5 ); + CHECK( monMax(1, 1) == 1 ); } int main() { diff --git a/premier-dessin.cpp b/premier-dessin.cpp index 71c1de652e6bd54e01678e781c1781cb5ca3af7f..95ffdbc43fe6cb3f760bdfa3e98fecbfd721938b 100644 --- a/premier-dessin.cpp +++ b/premier-dessin.cpp @@ -5,8 +5,7 @@ using namespace sf; using namespace std; // Pour les exceptions dans la version distribuée -int main() -{ +int main() { int delai = 1; RenderWindow window(VideoMode(900, 480), "Ma super fenêtre"); window.clear(Color::Green); @@ -14,7 +13,7 @@ int main() // Dessine un point noir de coordonnées (418, 143) // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 17"); + throw runtime_error("code non implanté ligne 16"); window.display(); @@ -23,7 +22,7 @@ int main() // Dessine un segment blanc entre les points (100,200) et (200,200) // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 25"); + throw runtime_error("code non implanté ligne 24"); window.display(); @@ -32,7 +31,7 @@ int main() // Dessine un segment rouge entre les points (200,300) et (200,400) // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 33"); + throw runtime_error("code non implanté ligne 32"); window.display(); @@ -41,7 +40,7 @@ int main() // Dessine un rectangle horizontal vide de sommets diagonaux (200,200) et (400,300) et de contour rouge // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 41"); + throw runtime_error("code non implanté ligne 40"); window.display(); @@ -50,7 +49,7 @@ int main() // Dessine un rectangle horizontal plein noir de sommets diagonaux (400,150) et (500,200) // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 49"); + throw runtime_error("code non implanté ligne 48"); window.display(); @@ -59,7 +58,7 @@ int main() // Dessine un segment rouge entre les points (400,300) et (500,400) // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 57"); + throw runtime_error("code non implanté ligne 56"); window.display(); @@ -68,7 +67,7 @@ int main() // Dessine un cercle noir de centre (415,145) et de rayon 10 // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 65"); + throw runtime_error("code non implanté ligne 64"); window.display(); @@ -77,11 +76,11 @@ int main() // Dessine un disque jaune de centre (700, 100) et de rayon 50 // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 73"); + throw runtime_error("code non implanté ligne 72"); window.display(); - sleep(seconds(10*delai)); + sleep(seconds(10 * delai)); return 0; } diff --git a/primitives.cpp b/primitives.cpp index 32da2fd14d8224ee5f45f042c721cea7a9f9d99f..6e127cd3051e008c5449700644c4633ad545896b 100644 --- a/primitives.cpp +++ b/primitives.cpp @@ -3,17 +3,17 @@ #include <cmath> #include <iostream> -void draw_point(RenderWindow& w, Point pos, Color color) { +void draw_point(RenderWindow &w, Point pos, Color color) { Vertex p[] = { Vertex(pos, color) }; w.draw(p, 1, sf::Points); } -void draw_line(RenderWindow& w, Point pos1, Point pos2, Color color) { +void draw_line(RenderWindow &w, Point pos1, Point pos2, Color color) { Vertex p[] = { Vertex(pos1, color), Vertex(pos2, color) }; w.draw(p, 2, sf::Lines); } -void draw_circle(RenderWindow& w, Point center, int r, Color color) { +void draw_circle(RenderWindow &w, Point center, int r, Color color) { CircleShape shape(r); shape.setPosition(center); shape.setOutlineThickness(1.f); @@ -23,7 +23,7 @@ void draw_circle(RenderWindow& w, Point center, int r, Color color) { } /// BEGIN draw_filled_circle -void draw_filled_circle(RenderWindow& w, Point center, int r, Color color) { +void draw_filled_circle(RenderWindow &w, Point center, int r, Color color) { CircleShape shape(r); shape.setPosition(center); shape.setOutlineThickness(0.f); @@ -32,7 +32,8 @@ void draw_filled_circle(RenderWindow& w, Point center, int r, Color color) { } /// END draw_filled_circle -void draw_rectangle(RenderWindow& w, Point pos, int width, int height, Color color) { +void draw_rectangle(RenderWindow &w, Point pos, int width, int height, + Color color) { RectangleShape shape(Vector2f(width, height)); shape.setPosition(pos); //Top-left position shape.setOutlineThickness(1.f); @@ -41,10 +42,11 @@ void draw_rectangle(RenderWindow& w, Point pos, int width, int height, Color col w.draw(shape); } -void draw_filled_rectangle(RenderWindow& w, Point pos, int width, int height, Color color) { +void draw_filled_rectangle(RenderWindow &w, Point pos, int width, int height, + Color color) { // Remplacez cette ligne et la suivante par le code adéquat - throw runtime_error("code non implanté ligne 47"); + throw runtime_error("code non implanté ligne 49"); } @@ -69,7 +71,7 @@ bool font_is_available() { return available; } -void draw_text(RenderWindow& w, Point pos, int size, string str, Color co) { +void draw_text(RenderWindow &w, Point pos, int size, string str, Color co) { if ( font_is_available() ) { sf::Text text; text.setFont(minipax); @@ -81,18 +83,18 @@ void draw_text(RenderWindow& w, Point pos, int size, string str, Color co) { } } -Point wait_mouse(RenderWindow& w) { +Point wait_mouse(RenderWindow &w) { Event e; do w.waitEvent(e); - while(e.type != Event::MouseButtonPressed or - e.mouseButton.button != Mouse::Button::Left); + while (e.type != Event::MouseButtonPressed or + e.mouseButton.button != Mouse::Button::Left); return Point(e.mouseButton.x, e.mouseButton.y); } -Event::KeyEvent wait_keyboard(RenderWindow& w) { +Event::KeyEvent wait_keyboard(RenderWindow &w) { Event e; do w.waitEvent(e); - while(e.type != Event::KeyPressed); + while (e.type != Event::KeyPressed); return e.key; } diff --git a/primitives.hpp b/primitives.hpp index c5835b49f9f7caaa9d837a5eee65024b3b6881cc..195a2e36f83a84b1706f9ed4373e0ec676eb289d 100644 --- a/primitives.hpp +++ b/primitives.hpp @@ -57,7 +57,7 @@ using Point = Vector2f; * @param pos les coordonnées du point * @param color la couleur du point */ -void draw_point (RenderWindow& w, Point pos, Color color); +void draw_point (RenderWindow &w, Point pos, Color color); /** Affiche une ligne de couleur entre deux positions données * @param w une fenêtre ouverte dans laquelle dessiner @@ -65,7 +65,8 @@ void draw_point (RenderWindow& w, Point pos, Color color); * @param pos1 les coordonnées du dernier point de la ligne * @param color la couleur de la ligne */ -void draw_line (RenderWindow& w, Point pos1, Point pos2, Color color); +void draw_line (RenderWindow &w, Point pos1, Point pos2, + Color color); /** Affiche un rectangle coloré vide * @param w une fenêtre ouverte dans laquelle dessiner @@ -74,7 +75,8 @@ void draw_line (RenderWindow& w, Point pos1, Point pos2, Color color) * @param height la hauteur du rectangle * @param color la couleur du trait */ -void draw_rectangle (RenderWindow& w, Point pos, int width, int height, Color color); +void draw_rectangle (RenderWindow &w, Point pos, int width, int height, + Color color); /** Affiche un rectangle coloré plein * @param w une fenêtre ouverte dans laquelle dessiner @@ -83,7 +85,8 @@ void draw_rectangle (RenderWindow& w, Point pos, int width, int height, Co * @param height la hauteur du rectangle * @param color la couleur du trait et du remplissage */ -void draw_filled_rectangle(RenderWindow& w, Point pos, int width, int height, Color color); +void draw_filled_rectangle(RenderWindow &w, Point pos, int width, int height, + Color color); /** Affiche un cercle coloré vide * @param w une fenêtre ouverte dans laquelle dessiner @@ -91,15 +94,15 @@ void draw_filled_rectangle(RenderWindow& w, Point pos, int width, int height, Co * @param r le rayon du cercle * @param color la couleur du trait */ -void draw_circle (RenderWindow& w, Point center, int r, Color color); +void draw_circle (RenderWindow &w, Point center, int r, Color color); -/** Affiche un cercle coloré plein +/** Affiche un cercle coloré plein * @param w une fenêtre ouverte dans laquelle dessiner * @param center la position du centre du cercle * @param r le rayon du cercle * @param color la couleur du trait et du remplissage */ -void draw_filled_circle (RenderWindow& w, Point center, int r, Color color); +void draw_filled_circle (RenderWindow &w, Point center, int r, Color color); /** Affiche du texte coloré à une position donnée * @param w une fenêtre ouverte dans laquelle dessiner @@ -108,13 +111,14 @@ void draw_filled_circle (RenderWindow& w, Point center, int r, Color color); * @param str la chaîne de caractères à afficher * @param color la couleur du texte */ -void draw_text (RenderWindow& w, Point pos, int size, string str, Color color); +void draw_text (RenderWindow &w, Point pos, int size, string str, + Color color); /** Attend que l'utilisateur appuie sur le clic gauche de la souris * @param w la fenêtre dans laquelle l'utilisateur doit cliquer * @return la position dans la fenêtre où l'utilisateur a cliqué */ -Point wait_mouse(RenderWindow& w); +Point wait_mouse(RenderWindow &w); /** Attend que l'utilisateur appuie sur une touche du clavier * @param w la fenêtre concernée @@ -122,6 +126,6 @@ Point wait_mouse(RenderWindow& w); * La liste des codes de touches est accessibles ici: * https://huit.re/sfml_key_codes */ -Event::KeyEvent wait_keyboard(RenderWindow& w); +Event::KeyEvent wait_keyboard(RenderWindow &w); #endif