Projets de programmation 2023-2024
Date limite de dépôt de votre fiche de voeux sur le site: 19/01/2024 à 16h
Sujet L2A - Coding Games
Encadrant : Alaa Dandan
Catégorie(s): app. gestion, web-service
Contexte
Dans le cadre du processus de recrutement en entreprise ou dans un contexte éducatif, la nécessité de développer des outils numériques pour la création et la gestion d'examens interactifs d'évaluation des candidats est cruciale.
Objectifs :
Ce projet vise à concevoir et développer une plateforme web dédiée à la création et à la gestion d'examens interactifs pour évaluer des compétences.
Objectifs: - Modélisation de l'interface graphique et de la BDD
- Développer une interface conviviale qui permet aux enseignants de créer, éditer et organiser des examens interactifs, et aux étudiants de les passer de manière fluide.
- Gestion de paramétrages du temps passé pour répondre aux questions
- Analyse des performances et du temps de réponse des candidats
L3AP|L3AQ
- Automatisation de la notation si les question sont des QCM
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2B - Mini-shazam
Encadrant : Hugo Demaret
Catégorie(s): app. musicale, découverte/initiation, open-source, prototypage
Contexte
Le but du projet est de créer un programme qui étant donné une musique passée en entrée, nous donne le nom de la musique ainsi que des informations la concernant (date, artiste, etc).
Les musiques reconnues auront été préalablement passées dans le logiciel, et si une musique inconnue y est passée, celle-ci est ajoutée au catalogue.
Objectifs :
Le programme doit pouvoir enregistrer une nouvelle musique dans sa base de données, ainsi que les informations que l'utilisateur souhaite y voir figurer.
Il doit être capable, étant donné une musique donnée en entrée, de ressortir les informations la concernant (si celle-ci est enregistrée). À défaut, la musique inconnue est ajoutée dans la BDD.
La version de la musique n'est pas obligatoirement la même (par exemple, version live et version studio). Toutefois, les versions doivent être assez proches (on évitera ainsi les changement d'accords/gammes).
La musique n'est pas entièrement stockée dans la base de données, seules les informations la concernant, et la façon de la trouver.
Une méthode assez classique consiste à appliquer un algorithme de transformée de fourier (rapide) sur la musique à analyser, et de sauvegarder une sorte de hash (ou directement le résultat) y correspondant. En analysant la même musique, le resultat de la transformée de fourier sera le même, et la musique sera donc reconnue. De manière plus précise, on cherchera des similarités entre l'input et une source connue dans la base de donnée.
Les notions nécessaires à ce projet pourront être expliquées par les encadrants.
À la fin du projet, on pourra s'intéresser à rédiger le rapport en LaTeX, un langage permettant de générer des documents scientifiques, très utilisé dans le monde de la recherche.
Encadrants :
- Ioana Ileana (Maîtresse de conférence à l'Université Paris-Cité)
- Hugo Demaret (Étudiant M1 MPRI à l'École Polytechnique)
Références bibliographiques
Des références bibliographiques vous seront données en début de projet. Une approche à base de transformée de Fourier est envisagée. Voici une très bonne introduction (en Anglais) à la transformée de Fourier : https://www.youtube.com/watch?v=spUNpyF58BY
Technologies
python, C++, Java
Contraintes:
open-source
Mots-clés
reconnaissance audio, musique
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2C - Le guichet automatique bancaire
Encadrant : Dragutin Jastrebic
Catégorie(s): app. autonome
Contexte
Le scénario: Le client de la banque met sa carte de crédit dans un GAB (guichet automatique bancaire). Le premier module envoie un message vers le module central. Ce message contient des informations différentes, comme le numéro de la carte, la date de l'opération, le type de l'opération souhaitée par le client (le retrait d'espèces, le dépôt d'espèces, la consultation du solde, l'impression du solde etc.), le numéro du guichet etc. Pour des raisons de sécurité, ce message est crypté avec une signature. Aussi, le format du message dépend du constructeur du guichet – chaque constructeur peux avoir son propre format.
Avant la réception du message par le module central, un deuxième module, de sécurité, vérifie le code confidentiel et refuse la transaction si le code saisi sur le guichet ne correspond pas au code confidentiel du propriétaire de la carte bancaire. Il vérifie aussi la signature avec la même clé et refuse la transaction si la signature ne correspond pas. Un troisième module, le module central, effectue l'opération souhaitée par le client (par exemple, il met à jour le solde de son compte en cas de retrait /dépôt, ou renvoie le solde au guichet en cas de consultation, renvoie les données contenues dans le RIB en cas de l'impression etc.). Le module central peut refuser d'effectuer l'opération si les droits du propriétaire sont insuffisants – en cas de dépassement du seuil quotidien ou hebdomadaire, par exemple. Un message est renvoyé au GAB pour l'informer du succès /échec du traitement. En fonction du message reçu, le GAB effectue l'opération demandée, ou affiche le message de refus. Le GAB envoie aussi d'autres messages, appelés les messages d'état, au module central. Les messages d'états typiques sont les suivants: tout est OK, le niveau de billets est bas, le niveau d'encre dans l'imprimante est bas, le niveau de papier est bas, la caméra est en panne etc. En fonction du message reçu, le module central, peut décider de faire une action corrective (remonter un avertissement à la supervision) ou d'éteindre le guichet.
Notre but est de développer des modules qui simulent ce scénario. Les outils développement seront Java, Android, Objective C/ Ios selon le choix des étudiants.
Objectifs :
Développement d'un prototype
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2D - Jumeau Numérique
Encadrant : Nasime EL FARTASS
Catégorie(s): électronique
Contexte
Un jumeau numérique (en anglais : digital twin) est une représentation ou réplique numérique d'un objet, d'une machine, ou d'un processus industriel. Identifié parmi les grandes tendances technologiques (selon Gartner) et porté par le développement de l’industrie 4.0, le jumeau numérique s'est installé dans le paysage industriel mondial.
Objectifs :
L’objectif de ce projet est de créer le jumeau numérique d’un objet connecté : de modéliser l’objet sous une représentation numérique (modèle objet), de collecter des données de télémétrie de l'objet, et de suivre et estimer l’évolution de ces données dans le temps.
Les données de télémétrie collectées par le jumeau numérique devront être, stockées dans une base de données orientée séries temporelles (en anglais, time series), et visualisées sous forme de tableau de bord (en anglais, dashboard). Le jumeau numérique est à développer en utilisant au choix le langage Java ou Scala, et en utilisant des composants (en anglais, frameworks) open source.
Références bibliographiques
n/a
Technologies
Java, Python, Scala, Nodejs
Contraintes:
n/a
Mots-clés
Jumeau numérique, Industrie 4.0, IOT, Cloud
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2E - Tetra-Mots
Encadrant : Nicolas DENIS
Catégorie(s): app. autonome, jeu vidéo, smartphone
Contexte
Ce projet a pour objectif de proposer un jeu de lettres sur smartphone Android.
Objectifs :
Le jeu se déroule comme un Tetris. Les lettres descendent une à une, de façon aléatoire dans une des 9 colonnes. Quand l'une des colonnes est remplie, la partie est terminée.
Pour diminuer le nombre de lettres tombées, le joueur doit former des mots. Ces mots sont comparés avec ceux inclus dans une base de données enregistrée dans l'appli.
Références bibliographiques
n/a
Technologies
java; android
Contraintes:
Cours le mercredi soir à partir de 17h30
Mots-clés
jeu ; Android
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2F - MyLittleClub – Minis réseaux sociaux
Encadrant : Nicolas DENIS
Catégorie(s): app. autonome, site web
Contexte
Créer un site web permettant de créer des réseaux sociaux de taille volontairement réduite.
Objectifs :
Les réseaux sociaux actuels favorisent la possibilité de communiquer avec le plus grand nombre de personnes possibles. Cela a peu de sens (cf. travaux sur le nombre de Dunbar) pour entretenir des relations de qualité.
Ce sujet propose donc la création de réseaux sociaux au nombre limité de participants.
Par ailleurs, une autre dérive des réseaux sociaux actuels est qu’ils mettent en relations des personnes ayant souvent les mêmes centre d’intérêt et les mêmes avis.
Un utilisateur s’inscrit et déclare vouloir créer un groupe, de 20, 50 ou 100 personnes.
Il peut limiter l’accès selon l’âge ou la proximité géographique.
D’autres utilisateurs peuvent d’inscrire, jusqu’à ce que ce groupe soit rempli.
Le rythme des publications et des réponse est également limité.
Un membre peut décider de « sortir » du groupe. Si une majorité des 2/3 le décide, le groupe peut être dissous.
Références bibliographiques
nombre de Dunbar, réseau social Minus
Technologies
PHP; javascript; MySQL
Contraintes:
Cours le mercredi soir à 17h30
Mots-clés
réseau social; web
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2G - Développement d'une Plateforme de Marché en Ligne
Encadrant : Sami Belbacha
Catégorie(s): app. gestion
Contexte
Le projet consiste à créer une plateforme de marché en ligne innovante pour répondre à l'évolution des habitudes de consommation et offrir une nouvelle expérience aux clients, elle réunira vendeurs et acheteurs dans un environnement virtuel dynamique.
La plateforme sera un lieu central où les vendeurs peuvent présenter et vendre leurs produits, et où les acheteurs peuvent découvrir, comparer et acheter une variété de produits de manière pratique.
Objectifs :
- Plateforme Centralisée : Concevoir et mettre en œuvre une plateforme centralisée où les utilisateurs peuvent facilement parcourir différentes catégories de produits, découvrir de nouveaux articles, et accéder aux boutiques des vendeurs.
- Gestion Complète des Vendeurs : Mettre en place un système complet de gestion des vendeurs, permettant à ces derniers de créer leur boutique en ligne, d'ajouter des produits, de gérer les stocks, et de suivre leurs performances à l'aide d'outils analytiques intégrés.
- Gestion des Commandes et Expédition : Offrir aux acheteurs des tableaux de bord détaillés pour suivre leurs commandes en temps réel. Intégrer des fonctionnalités de suivi des expéditions pour assurer une transparence totale sur le statut des livraisons.
Gestion de projet:
Il est impératif d'effectuer une identification minutieuse des besoins. Cette étape fondamentale implique la création soignée d'User Stories, détaillant de manière exhaustive les exigences fonctionnelles du système du point de vue de l'utilisateur
Technologies Clés :
L'application sera développée en utilisant un des framework web tels que Symfony (framework php), une base de données relationnelle. Docker, Jira, Gitlab, etc.
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2H - Réalisation d'un jeu de simulation de vie d'un petit animal (Tamagotchi)
Encadrant : Camille Kurtz
Catégorie(s): app. autonome, découverte/initiation, jeu vidéo, smartphone
Contexte
Un tamagotchi — terme que l’on peut traduire littéralement par « montre-oeuf » — est un animal de compagnie virtuel. Ce jouet a envahi les cours de récréations à la fin des années 90. Il se présente sous la forme d’une micro-console de jeu et consiste à élever et éduquer une sorte d’animal en le nourrissant, le lavant, le soignant, le faisant jouer, etc.De nombreuses versions et copies apparurent en quelques années. La version originale avait la particularité de ne permettre qu’une seule partie: une fois votre tamagotchi mort, la micro-console était bonne à jeter. Cette restriction donna naissance à des phénomènes bien étranges : crises et pleurs pour la mort d’un animal virtuel, et surtout cimetières de tamagotchis.
Objectifs :
Le but du projet est de développer une application mobile du jeu Tamagotchi. Le tamagotchi peut être représenté par plusieurs caractéristiques: ’nom’, ‘faim’ et ‘état’. Au départ la seule action disponible est ‘Nourrir’ et les différents états sont: ‘ok’, ‘affamé’ et ‘mort’. Vous devrez compléter cela pour ajouter au moins trois nouvelles fonctionnalités. Pour cela vous devrez ajouter de nouvelles caractéristiques comme ’santé’, ’fatigue’ ou ’hygiène’, de nouvelles actions comme ‘Guérir’, ‘Dormir’ ou ‘Laver’ ainsi que de nouveau états comme ‘malade’, ‘fatigué’ ou ’sale’. Vous êtes libre de choisir quelles fonctionnalités vous souhaitez ajouter ainsi que leur logique de fonctionnement. Cependant vous devez prévoir au moins deux interactions entre les différentes fonctionnalités. Voici un exemple d’interaction: si votre tamagotchi est fatigué (ou bien sale) et que vous ne faite pas dormir (ou bien que vous ne le laver pas), sa santé baisse et il tombe malade rapidement.
Il faudra aussi prévoir la possibilité de transférer pour une période donnée son Tamagotchi à un autre utilisateur (par exemple si pendant une semaine un utilisateur n’est pas capable de s’en occuper, il pourra le confier à quelqu’un) ou de pouvoir faire interagir ensemble deux Tamagotchis situés sur des téléphones différents. On pourra ici profiter des communications NFC du téléphone ou d’autres stratégies (par exemple en centralisant les personnages sur une base de données externe).
Organisation du travail
• Réalisation d’un cahier des charges • Prise en main développement application Android • Développement du logiciel de gestion d’un Tamagotchi • Choisir trois fonctionnalités additionnelles et les soumettre à votre encadrant • Réalisation des fonctionnalités choisies • Tester / évaluer le logiciel développé\\
Références bibliographiques
https://fr.wikipedia.org/wiki/Tamagotchi
Technologies
Développement Mobile Android
Contraintes:
Les différentes briques de la plateforme devront être facilement modifiables pour permettre de nouvelles fonctionnalités.
Mots-clés
Jeu simulation, Android, Tamagotchi
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2I - Développement d'une Plateforme de Gestion de Vidéos pour la Production Audiovisuelle
Encadrant : Sami Belbacha
Catégorie(s): app. gestion
Contexte
Face à l'évolution rapide de l'industrie de la production audiovisuelle, le projet s'engage à créer une plateforme innovante permettant aux équipes de production de partager, collaborer et archiver efficacement des vidéos.
Objectifs :
L'objectif principal de ce projet est de développer une plateforme centralisée qui simplifie le processus de gestion des vidéos pour les équipes de production. Cette plateforme permettra l'upload sécurisé de vidéos, la collaboration en temps réel avec des commentaires contextuels, la création de proxies pour une visualisation rapide, et le stockage sécurisé des vidéos pour un accès futur.
Fonctionnalités Clés :
- Upload Sécurisé de Vidéos : Les utilisateurs pourront uploader des vidéos de manière sécurisée, avec la possibilité de définir des paramètres d'accès et de confidentialité pour chaque fichier.
- Collaboration avec Commentaires Contextuels : Les membres de l'équipe de production pourront ajouter des commentaires directement sur la timeline des vidéos, facilitant ainsi la communication et la révision des séquences.
- Création de Proxies Vidéo : Mise en place de quatre proxies vidéo pour chaque fichier, permettant une visualisation rapide et fluide sans compromettre la qualité originale.
- Stockage et Archivage : Les vidéos seront stockées dans un cloud
Gestion de projet:
il est impératif d'effectuer une identification minutieuse des besoins. Cette étape fondamentale implique la création soignée d'User Stories, détaillant de manière exhaustive les exigences fonctionnelles du système du point de vue de l'utilisateur
Technologies Clés :
L'application sera développée en utilisant un des framework web tels que Symfony (framework php), une base de données relationnelle. Amazon S3 pour le stockage sécurisé des vidéos, des services de transcodage vidéo pour la création de proxies(ffmpeg), Docker, Jira, Gitlab, etc.
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Oui
Poursuite d’un projet déjà existant: Oui
Sujet L2J - BlaBlaFilm - Application de Partage de Cinéma à Domicile
Encadrant : Sami Belbacha
Catégorie(s): site web
Contexte
Avec l'avènement des plateformes de partage et d'économie collaborative et inspiré du BlaBlaCar, Une nouvelle opportunité se présente pour transformer l'expérience cinématographique à domicile. le projet vise à créer une application qui permet aux utilisateurs de partager des séances de films directement chez eux.
Objectifs :
L'objectif principal de ce projet est de concevoir une application intuitive qui offre une plateforme de partage de séances de cinéma à domicile. Cette application permettra aux utilisateurs de créer, rejoindre et partager des séances pour favoriser une expérience cinématographique collaborative et sociale.
Fonctionnalités Clés :
- Création de Séances de Visionnage : Les utilisateurs peuvent planifier et créer des séances de visionnage en sélectionnant des films spécifiques, définissant des horaires.
- Joindre une Séance Partagé: les utilisateur peuvent chercher et s’inscrire aux séances de films partagés.
- Partage d'Invitations : Possibilité d'envoyer des invitations à d'autres utilisateurs pour participer à une séance de cinéma à domicile, créant ainsi un environnement social virtuel.
- Catalogue de Films Collaboratif : Mise en place d'un catalogue de films partagé, permettant aux utilisateurs de suggérer, voter et choisir les films à inclure dans les futures séances.
Gestion de projet:
Il est impératif d'effectuer une identification minutieuse des besoins. Cette étape fondamentale implique la création soignée d'User Stories, détaillant de manière exhaustive les exigences fonctionnelles du système du point de vue de l'utilisateur
Technologies Clés :
L'application sera développée en utilisant un des framework web tels que Symfony (framework php), une base de données relationnelle. Docker, Jira, Gitlab, etc.
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
n/a
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2K - Développement d'une Plateforme de Recharge pour Véhicules Électriques
Encadrant : Sami Belbacha
Catégorie(s): app. gestion
Contexte
La transition vers une mobilité durable est devenue une priorité mondiale, avec un nombre croissant de conducteurs adoptant les véhicules électriques (VE). Dans ce contexte, Un opérateur de recharge (CPO) s'est engagée à faciliter l'utilisation quotidienne des VE en développant une application web intuitive et efficace dédiée au rechargement des voitures électriques.
Objectifs :
L'objectif principal de ce projet est de créer une application web conviviale qui offre une expérience utilisateur transparente pour les propriétaires de voitures électriques. L'application permettra aux utilisateurs de localiser et de réserver des stations de recharge, de gérer leurs sessions de recharge, de visualiser l'état de charge en temps réel, et d'accéder à des informations pertinentes sur les stations disponibles.
Fonctionnalités Clés :
- Cartographie des Stations de Recharge : Intégration de cartes interactives pour localiser les stations de recharge, en fournissant des informations détaillées sur chaque emplacement, y compris le type de connecteur disponible, la vitesse de charge, et la disponibilité en temps réel.
- Gestion de Session de Recharge : Démarrer, arrêter et surveiller les sessions de recharge en cours, avec des notifications en temps réel sur l'avancement de la charge.
- Historique des Recharges : Fournir un historique complet des sessions de recharge passées, y compris les coûts associés et les statistiques de consommation.
- Backoffice: Permettre à l’opérateur de superviser son application (Ajouter des stations, afficher les session de recharge, ajouter ou modifier des prix, etc.)
Gestion de projet:
Il est impératif d'effectuer une identification minutieuse des besoins. Cette étape fondamentale implique la création soignée d'User Stories, détaillant de manière exhaustive les exigences fonctionnelles du système du point de vue de l'utilisateur
Références bibliographiques
n/a
Technologies
Symfony(php), mariadb, docker
Contraintes:
n/a
Mots-clés
CPO, Recharge electrique
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2L - Classement et recherche d’images par le contenu
Encadrant : Camille Kurtz
Catégorie(s): app. scientifique, découverte/initiation, intelligence artificielle, site web
Contexte
La fouille d'images (« Image mining ») est le domaine de l'analyse et de l'extraction de connaissances / informations appliquée aux images sous leurs diverses formes. Elle se situe à l'intersection de la vision par ordinateur, de la compréhension visuelle de l'image, de l'exploration de données, de l'intelligence artificielle et de l'algorithmique. Les techniques utilisées sont : l'indexation ; la recherche d'image par le contenu (en anglais : content-based image retrieval ou CBIR) ; la classification ; le clustering (regroupement hiérarchique ou partitionnement de données) ; les règles d'association.
Dans ce projet, nous nous intéressons en particulier au problème de l’indexation d’images présentes dans une base pour permettre à un utilisateur donné : (1) de rechercher des images similaires (à une requête) à partir de ses caractéristiques visuelles, c'est-à-dire induite de leurs pixels ou (2) de classer des images / photographies en fonction de leurs contenus visuels (toutes les photos liées à ma dernière balade en montagne). Pour ces 2 cas d’utilisation, les images sont classiquement décrites comme rendant compte de leur texture, couleur, forme et indexer sous la forme d’un vecteur de caractéristique. La technique de recherche d'image par le contenu s'oppose à la recherche d'images par mots-clés ou tags, qui fut historiquement proposée par les moteurs de recherche tels que Google Image grâce à des banques d'images où les images sont retrouvées en utilisant le texte qui les accompagne plutôt que le contenu de l'image elle-même (mais Google Image propose désormais des filtres basés sur le contenu (pixels) des images).
Pour plus de détails, rdv sur Wikipédia : Recherche d'image par le contenu (https://fr.wikipedia.org/wiki/Recherche_d%27image_par_le_contenu)
Objectifs :
Objectifs
Le but du projet est de développer une application permettant à partir d’une base d’images, de répondre aux deux cas d’utilisation données ci-avant.
Pour l’étape d’indexation, nous pourrons nous baser sur des représentations visuelles des images obtenues à partir des histogrammes colorimétriques calculés dans les espaces HSV et RGB.
L’application réalisée devra permettre de visualiser et d’interagir avec la base d’images via les représentations visuelles ainsi extraites. L’application pourra comporter a minima deux fenêtres, une permettant le paramétrage souhaité et l’autre permettant d’interagir avec les résultats.
Pour accélérer l’indexation des images dans la base de données, on pourra considérer une base de données ou un système de fichiers CSV.
Organisation du travail
• Réalisation d’un cahier des charges • Prise main d’une librairie permettant la manipulation / traitement d’images • Développement du logiciel d’indexation et de recherche d’images par le contenu • Choisir trois fonctionnalités additionnelles et les soumettre à votre encadrant • Réalisation des fonctionnalités choisies • Tester / évaluer le logiciel développé\\
Références bibliographiques
Arnold W. M. Smeulders, Marcel Worring, Simone Santini, Amarnath Gupta, Ramesh C. Jain:
Content-Based Image Retrieval at the End of the Early Years. IEEE Trans. Pattern Anal. Mach. Intell. 22(12): 1349-1380 (2000)
Technologies
Au choix des étudiants, développement pour le web (PHP, Javascript), développement d’application stand-alone (Python, C++,…), développement Mobile Android
Contraintes:
Les différentes briques de la plateforme devront être facilement modifiables pour permettre de nouvelles fonctionnalités. Des mécanismes / stratégies intelligentes de visualisation des résultats devront être déployées dans l’application.
Mots-clés
Traitement d'images, indexation, recherche d'informations
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2M - Computer Dice Game
Encadrant : Bruno Bouzy
Catégorie(s): intelligence artificielle
Contexte
Intérêt : Les jeux de dés comprennent du hasard obligeant la stratégie des joueurs à inclure non seulement une maximisation d’un score mais aussi une gestion de l’incertitude des jets de dés.
3 jeux de dés considérés: Pickomino, Plakoto et Fevga.
Pickomino
Pickomino est un jeu créé en 2005 par Reiner Knizia et édité par Zoch Verlag pour des enfants de 8 ans et plus. Des « dindons » « picorent » le plus de « vers » possibles en attrapant des dominos via des lancers de dés.
Nombre de joueurs : 2 ou plus. Objectif : obtenir le plus de « vers » possibles. Matériel : 8 dés à 6 faces : chaque face correspond soit à un nombre entre 1 et 5, soit à un « ver » 16 dominos numérotés de 21 à 36 et possédant un nombre de « vers » allant de 1 à 4. Déroulement d’une partie : Tant qu’il reste des dominos sur la table, les joueurs jouent à tour de rôle pour attraper un domino et ses « vers ». A son tour, un joueur lance les dés, une ou plusieurs fois, pour obtenir un domino ou prendre un domino chez un autre joueur. S’il n’obtient pas de domino à son tour, le joueur doit rendre le dernier domino qu’il a obtenu jusque là. Plus de détails dans les règles.
Plakoto et Fevga
Plakoto est le second jeu du jeu de Tavli (Portès, Plakoto, Fevga), très populaire en Grèce. Fevga est le troisième. Portès est la version grecque du Backgammon, lui-même version anglo-saxonne du Portès.
Comme au Backgammon, Portès, Plakoto et Fevga opposent 2 joueurs, utilisent le même plateau de jeu avec 15 pions blancs et 15 pions noirs et 2 dés. A son tour, un joueur avance ses pions suivant le tirage des deux dés. L’objectif est d’amener tous ses pions à l’arrivée.
A Plakoto et Portès, les pions blancs et pions noirs vont en sens inverse. A Fevga, ils vont dans le même sens (comme aux petits chevaux).
A Portès, un joueur peut « frapper » un pion adverse seul sur sa case pour le ramener au départ (comme au jeu des petits chevaux). A Plakoto, un pion ne peut pas frapper, mais il peut « plaquer » un pion adverse seul sur sa case en se posant sur lui. Tant qu’il est « plaqué », un pion reste immobilisé. A Fevga, il n’y a ni « frappe », ni « plaquage » : un pion d’une couleur donnée ne peut accéder qu’à des cases vides ou occupées par un ou plusieurs pions de sa couleur.
Objectifs :
2 objectifs successifs :
● Faire une interface textuelle en Python ou autre langage de prédilection (C, C++, Java) pour jouer à un jeu en respectant les règles.
● Faire une Intelligence Artificielle (IA) basique jouant à un ce jeu.
Les jeux autorisés dans ces projets sont des jeux de dés : Pickomino, Plakoto et Fevga.
Références bibliographiques
Pickomino :
https://www.letempledujeu.fr/IMG/pdf/pickomino.pdf
http://www.grecomania.net/Divers/Tavli.htm
Portes : https://www.bkgm.com/variants/Portes.html
Plakoto : https://brainking.com/fr/GameRules?tp=109 https://en.wikipedia.org/wiki/Plakoto
Fevga :
https://brainking.com/fr/GameRules?tp=111
https://www.bkgm.com/variants/Fevga.html
Technologies
programmation python C++ ou Java
Contraintes:
n/a
Mots-clés
jeu de dés
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2N - Unity 3D - Space invaders 3D
Encadrant : Claude Lattaud
Catégorie(s): jeu vidéo
Contexte
Classique du jeu vidéo Space invaders en 3D
Objectifs :
L'objectif de ce projet est de développer une application du classique jeu vidéo Space invaders à l'aide du moteur physique Unity 3D.
Selon l'avancée des étudiants, diverses possibilités pourront être intégrées.
Références bibliographiques
n/a
Technologies
Unity 3D
Contraintes:
n/a
Mots-clés
Jeu 3D
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2O - Unity 3D - Pacman 3D
Encadrant : Claude Lattaud
Catégorie(s): jeu vidéo
Contexte
Classique jeu de Pacman
Objectifs :
L'objectif de ce projet est de développer une application du classique jeu vidéo Pacman à l'aide du moteur physique Unity 3D.
Selon l'avancée des étudiants, diverses possibilités pourront être intégrées.
Références bibliographiques
n/a
Technologies
Unity 3D
Contraintes:
n/a
Mots-clés
Jeu 3D
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2P - Développement d'un outil de mesure de la charge mentale selon l’approche ISA
Encadrant : Christophe Gnaho
Catégorie(s): smartphone
Contexte
Ce travaille s'inscrit dans le cadre d'exploration et de la mise en place d'outils permettant de mesurer et de suivre l'évolution de la charge mentale de membres d'équipage en aviation générale.
Objectifs :
Le projet vise à développer une application smartphone reproduisant une interface donnée. L'utilisateur doit répondre à des signaux visuels et/ou sonores à intervalle de temps régulier en appuyant sur l'une des n touches proposées pour évaluer sa charge mentale de 1 (Très faible) à 5 (Très élevée). Les données saisies seront enregistrées et accessibles dans divers formats, comme Excel, pour une analyse graphique ultérieure. Plusieurs éléments seront paramétrables, comme le nombre de touches, l’échelle d'évaluation de la charge mentale, etc.
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
mesure de charge mentale
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2Q - Site marchand : Disk-EV
Encadrant : Christophe Gnaho
Catégorie(s): site web
Contexte
L'agence de communication 1ntergroupe, spécialisée dans le développement durable, a créé de nouveaux produits à destination des conducteurs de véhicules électriques qu’elle souhaite mettre en vente via Internet
Objectifs :
Il s'agirait de développer un site marchand de commercialisation de ces nouveaux produits. Le périmètre de vente serait le territoire français, uniquement. Le catalogue initial serait assez restreint (environ 10 références) mais assorti de variables (tarif dégressif et différent suivant le profil des acheteurs, options). Les fonctionnalités attendues seront principalement le e-commerce et le traitement des données (rapports)
Références bibliographiques
n/a
Technologies
n/a
Contraintes:
n/a
Mots-clés
Développement durable; E-commerce
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2R : Algorithmes animés
Encadrant :
Mail de l'encadrant :
Catégorie(s): app. autonome, framework/librairie, open-source
Contexte
La compréhension du pseudo-code d'un algorithme peut être difficile si l'on ne se représente pas visuellement le déroulement de l'algorithme et la manière dont les structures de données sont transformées par celui-ci. Cette difficulté est particulièrement forte dans le cas d'algorithmes récursifs sur des structures non-linéaires, comme des arbres.
Objectifs :
L'objectif est de construire un programme de visualisation animée du déroulement d'algorithmes. De nombreux outils de ce type existent, on se concentrera donc sur ce qui manque : la visualisation d'algorithmes récursifs sur les arbres.
Le programme devra à la fois comporter un ensemble de fonctions suffisamment génériques pour mettre en œuvre des algorithmes quelconques (un framework) et l'implémentation d'algorithmes spécifiques issus du cours d'algorithmique de L2.
Références bibliographiques
Exemples de visualisateurs :
Librairies :
- https://graphviz.org/resources/ (pour implémentation python)
- http://jsav.io/ (pour implémentation web)
Technologies
python ou programmation web
Contraintes:
n/a
Mots-clés
algorithmique, visualisation, arbres
Remarques
Possibilité de stage à l’issue du projet: Non
Poursuite d’un projet déjà existant: Non
Sujet L2S : Boite à rythmes
Encadrant :
Mail de l'encadrant :
Catégorie(s): Smartphone
Présentation du sujet
Une boîte à rythmes est un appareil électronique (ou un logiciel) qui simule des instruments de percussion.
Elle permet de jouer à l'infini des rythmiques correspondant à des styles de musique pré-programmés (rock, salsa, …) ou de créer des rythmiques personnalisées.
Travail à effectuer :
L'objectif de ce projet est de réaliser une boite à rythme qui fonctionne sur un smartphone. Cette boite à rythme devra permettre :
- la gestion des échantillons pré-enregistrés
- la gestion des échantillons sonores enregistrés par l'utilisateur.
- la génération de ses propres sons électroniques
- l'enregistrement des morceaux composés
Éventuellement, on pourra améliorer l'expérience utilisateur en utilisant les capteurs du smartphone : gyroscope et accéléromètre.
Langage(s) et technologie(s):
- Java/Android/XML
Contrainte(s) :
Sujet L2T : Agenda en ligne
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Site web
Présentation du sujet
Le but de ce projet est de créer un agenda en ligne. Cet agenda devra permettre à une personne d’accéder à son agenda en ligne et d’y pouvoir noter des rendez-vous par exemple, d’en supprimer, d’en décaler….
Il pourra aussi être utilisé par d’autres personnes pour qu’ils puissent prendre rendez-vous lors de créneaux ouvert à la prise de rdv sur internet.
Travail à effectuer
Lors de ce projet vous aurez plusieurs tâches à accomplir :
- Créer un agenda en ligne
- Permettre la création/suppression… de rendez-vous
- Possibilité de prise de rendez-vous par d’autres internautes
- Optionnel / Bonus : mails de rappels 24h avant le rdv, confirmations de prise et d’annulation de rendez vous
Langage(s) :
- Nodejs, framework Express, MongoDB ou SQL, MVC, SOA
Contrainte(s) :
Sujet L2U : Jeu d'échecs
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo, application web
Présentation du sujet
Le jeu d’échecs est un jeu de réflexion qui se joue à 2 sur un échiquier composé de soixante-quatre cases noires et blanches. Chaque joueur tente d’infliger un échec et mat au roi adverse. Pour ce faire chaque joueur utilisent leurs pièces tour à tour, qui ont chacune des déplacements spécifiques. Un roi est échec et mat quand il est menacé et qu’il ne peut plus s’enfuir ou être protégé par d’autres pièces.
Travail à effectuer
Ce projet a pour but de créer un jeu d’échecs sous forme de web service.
Le but étant de créer une application web conforme à l'architecture REpresentational State Transfer (REST), une architecture orientée services (SOA) avec le patron de conception modèle-vue-contrôleur (MVC).
Lors de ce projet vous aurez plusieurs tâches à accomplir :
- Le programme devra tout d’abord permettre à joueurs humains de pouvoir jouer l’un contre l’autre.
- Ensuite chaque partie pourra être sauvegardé et chargé. Une partie achevée pourra être conservée et pourra être rejouée coup par coup.
- Plusieurs fonctionnalités comme le temps, la demande à l’adversaire de rejouer un coup etc… devront être implémentées
- Optionnel / Bonus : création d’une IA pour jouer contre l’ordinateur
Langage(s) :
- Nodejs, framework Express/Socket.IO, MongoDB ou SQL
Contrainte(s) :
Sujet L2V : Développement d'un logiciel d'emploi du temps: gestion des permanences d'une association
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s):Site web, open-source
Présentation du sujet
De nombreuses associations assurent des permanences pour recevoir du public, les bénévoles s'engage à être présent une demi-journée par semaine pour assurer ces permanences.
Bien que ces activités soient fréquentes, il n'existe aucun logiciel open-source permettant d'automatiser la gestion des permanences.
Chaque bénévole peut avoir des contraintes fortes et des contraintes souples pour ses disponibilités; ces contraintes peuvent changer d'une semaine à l'autre.
Pour rendre un service efficient à son public, l'association doit pouvoir s'assure que toutes les demi-journées de la semaine pourront être assurée par des bénévoles.
A la fin de l'année, il serait souhaitable que tous les bénévoles aient contribué de manière égale pour éviter de gros déséquilibres.
Objectifs:
Le logiciel développé doit permettre de:
- rentrer les contraintes et préférences des bénévoles de façon simple et intuitive pour un mois donné
- calculer le nombre de permanences à effectuer pour chaque bénévole
- donner un planning de permanences respectant toutes les contraintes, et autant de préférences que possible
- détecter les conflits pouvant empêcher de trouver une solution, et proposer des plans d'action
L'interface graphique doit être simple et intuitive.
Références
Langage(s) et technologie(s):
Le langage de développement est laissé à l'appréciation du groupe d'étudiants.
Contrainte(s) :
Sujet L2W : Galaxy Fighters
Encadrant :
Mail de l'encadrant :
Catégorie(s): Jeu Vidéo
Présentation du sujet
Dans Galaxy fighters, le joueur est au commande d'un vaisseau spatial devant traverser un champ d'astéroïdes. Pour en sortir indemne, il devra faire preuve de dextérité.
Au bout du champ de mines, une piste d'atterrissage apparaitra sur les flancs d'un énorme astéroïde; l'atteindre sans encombres permettra de compléter sa mission avec succès.
Travail à effectuer
- Reproduire la traversée du champ d'astéroïdes
- Permettre le pilotage du vaisseau
- Gérer la vitesse de défilement en fonction du niveau
- Sauvegarder les meilleurs scores
Pour améliorer la jouabilité et l'intérêt du jeu, il faudra également développer un système de bonus cachés dans le champ d'astéroïde:
- bouclier
- vie supplémentaire
- etc…
Eventuellement, permettre un mode multi-joueurs.
Au choix: smartphone ou web
Références
Sinuous, un jeu dans le même esprit.
Langage(s) et technologie(s) :
HTML5, Canvas ou Java/Android
Contrainte(s) :
Sujet L2X : Tetris
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Le tetris est un jeu d'arcade qui allie réflexes et réflexion.
Des tetriminos de couleurs et de formes différentes descendent du haut de l'écran. Leur chute est inexorable mais peut être accélérer par le joueur. Le joueur peut également décider de l'angle de rotation et de la position où l'objet peut atterrir. Lorsqu'une ligne horizontale est complétée, elle disparaît et les blocs qui se trouvent au dessus tombent. La partie se termine lorsque la ligne du haut est atteinte et que le joueur ne peut plus agir. L(objectif du heur est donc de compléter un maximum de lignes.
Travail à effectuer
Le but du projet est d’implémenter un jeu de tetris. Le programme devra proposer les fonctionnalités suivantes :
- Tout d’abord, le programme devra permettre de jouer une partie.
- Il devra également permettre une sauvegarde des parties et inclure des tetriminos bonus.
- Le jeu peut être programmé sur la plateforme de votre choix : ordinateur ou smartphone
Langage(s) :
Contrainte(s) :
Sujet L2Y : Photo Deluxe
Encadrant :
Mail de l'encadrant :
Catégorie(s): smartphone
Description : Vous réaliserez une application mobile qui permette de :
- prendre des photos
- de filter les photos (plusieurs filtres à implémenter)
- d'ajouter des emojis et des stickers sur des photos
- d'envoyer les photos à ses amis
S'il reste du temps à la fin du projet, on appliquera les filtres au mode vidéo.
Langage souhaité :
- Java/Android ou React Native
Contrainte :
Posséder un smartphone
Sujet L2Z : Kakuro
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Le kakuro est un jeu de réflexion. Ce jeu est basé sur une grille analogue à une grille de mots fléchés; il comporte des cases noires et des cases blanches. Le but du jeu est de remplir les cases blanches avec des chiffres de 1 à 9 en fonction des indications contenues dans les cases noires. Les cases noires sont divisées en deux par une diagonale et contiennent deux valeurs numériques. La première valeur concerne les cases blanches situées en dessous, la seconde valeur concerne les cases blanches situées à droite. Pour pouvoir remplir les cases blanches, il faut s’assurer que la somme de tous les chiffres d’une ligne ou d’une colonne soit égale au nombre indiqué dans la case noire correspondante, et qu’un chiffre n’apparaisse qu’une seule fois.
Travail à effectuer
Le but du projet est d’implémenter un jeu de kakuro. Le programme devra proposer les fonctionnalités suivantes :
- Tout d’abord, le programme devra permettre la création automatique d’une grille de jeu en fonction d’un niveau de difficulté déterminé par le joueur.
- Ensuite, le programme devra permettre de jouer une grille proposée par le programme ou une grille saisie par l’utilisateur.
- Le programme devra être capable de calculer la solution d’une grille
- Enfin, le programme devra être capable de sauver, charger et imprimer une grille
Langage souhaité :
A déterminer
Contrainte(s) :
Sujet L2AA : Jeu des 1000 bornes
Encadrant :
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Il vous est proposé dans ce projet de concevoir et développer une version électronique du jeu de carte « 1000 bornes ».
Les 1000 bornes est un jeu de société utilisant des cartes spéciales sur le thème de la course automobile. Le but du jeu est d’être le premier joueur à effectuer 1000 kilomètres (ou bornes) précisément. Pour cela, il vous faudra éviter les pièges de la route : Panne de voiture, feux de signalisation et limitation de vitesses.
Pour commencer une partie, chaque joueur se voir distribuer 6 cartes qu’il ne doit pas montrer aux autres. Le reste du paquet servira de pioche. Pour commencer la partie, le premier joueur doit piocher une carte. S’il a en sa possession un feu vert, il pose cette carte devant lui et peut donc commencer sa partie. Le joueur peut aussi poser une carte « Botte » ou encore une carte « Limitation de vitesse » devant l’un de ces adversaires. Si le joueur ne peut ou ne désire pas poser une carte, il doit obligatoirement en jeter une afin d’avoir toujours 6 carte dans sa main.
C’est ensuite au tour du joueur suivant de jouer. Lui aussi a alors plusieurs possibilités. En plus de celles énumérés ci-dessus, il peut contrer une attaque en posant dessus le contraire de celle-ci pour l’annuler. Exemple : Il pose une carte « fin de limitation de vitesse » sur une carte « Limitation de vitesse ».
Autre choix : le joueur peut également attaquer le joueur qui à poser un feu vert en posant une carte feu rouge.
Le gagnant de la partie est celui qui a réussi à avoir posé exactement 1000 kilomètres devant lui à l’aide des cartes « distance ».
L’application devra permettre de jouer de 2 à 6 joueurs qui seront soit des personnes physiques soit des joueurs virtuels. Dans le cas d’un joueur virtuel, le jeu devra lui attribuer une stratégie de jeu comme par exemple : poser ses kilomètres en premier lieu, attaqué l’adversaire avant tout, …
Langage(s) :
C/C++ ou Java
Contrainte(s) :
Sujet L2AB : Accidentologie
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): site web
Présentation du sujet
Chaque année il y a de nombreux accidents sur la route.
Les données qui recensent tous les accidents (date, lieu, conditions météorologiques, …) sont disponibles en open-data.
Travail à effectuer
Le but du projet est de réaliser un site web qui permet de :
- présenter tous les accidents sur une carte de France en fonction :
- de la date
- d'un intervalle de dates
- des conditions météorologiques
- calculer et présenter des statistiques relatives aux accidents
- identifier les zones dans lesquelles il y a plus d'accidents
Langage souhaité :
Contrainte(s) :
Sujet L2AC : Morphing
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): smartphone
Présentation du sujet
Le morphing d'images est un effet spécial souvent utilisé dans le cinéma qui consiste à passer d'une image à une autre en réalisant une animation.
Pour qu'elle paraisse naturelle, la transformation s'appuie sur des zones de l'image (des points, des vecteurs voire des figures) pour lesquelles l'utilisateur indique une correspondance entre l'image source et l'image cible.
On calcule alors les images intermédiaires pour réaliser l'animation par une interpolation des zones correspondantes entre les deux images.
Travail à effectuer
Le but du projet est de réaliser une application mobile qui permette de :
- prendre ou de choisir des photos
- définir des points de référence entre les deux images
- calculer l'animation correspondante
- sauvegarder l'animation dans un format vidéo ou au format gif
Langage souhaité :
Référence(s) :
Contrainte(s) :
Sujet L2AD : Webmon
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): application
Présentation du sujet
Les internautes fréquentent souvent les mêmes sites internet pourtant tous ne sont pas mis à jour à la même fréquence.
Par exemple, certains blogs ou pages personnelles ne sont mis à jour que quelques fois par mois.
Pour éviter aux internautes de perdre leur temps à vérifier si leurs sites préférés ont été mis à jour, on souhaite avoir une application pour monitorer différentes pages web.
Travail à effectuer
Le but du projet est de réaliser une application qui permette de :
- récupérer une page web
- comparer deux pages web provenant de la même adresse pour déterminer si la page a été mise à jour
- notifier l'utilisateur lorsqu'une page a été mise à jour et lui permettre d'y accéder directement
- gérer les sites préférés de l'utilisateur
- supprimer les modifications liées aux publicités et aux trackers.
Langage souhaité :
Référence(s) :
Contrainte(s) :
Sujet L2AE : Tableaux caloriques des produits alimentaires
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Smartphone
Présentation du sujet
Les données nutritionnelles sont souvent écrites en petit sur les emballages et il n'est pas toujours évident de bien les comprendre.
L'objectif de ce projet est de développer une application mobile pour faciliter le compréhension des informations nutritionnelles et pour faciliter l'analyse de sa consommation quotidienne.
Travail à effectuer : Le but du projet est d’implémenter une application smartphone qui à partir du code barre, récupère les informations nutritionnelles du produit dans les bases de données publiques. Cette application synthétise un diagramme en une bande de plusieurs couleurs (rouge pour le gras, vert pour les fibres etc…) proportionnelles à la quantité. L'idée est de permettre à l'utilisateur d'avoir une idée de la qualité nutritionnelle du produit en un seul coup d'oeil.
Le programme devra proposer les fonctionnalités suivantes :
- capturer une code barre d'un produit
- consulter les bases de données publiques
- afficher le diagramme de plusieurs couleurs
- faire la somme des aliments consommés en : une journée, une semaine, un mois
Langage(s) :
- Java/Android/XML ou React Native
Contrainte(s) :
Sujet L2AF : Puzzle Mania
Encadrant :
Mail de l'encadrant :
Catégorie(s): Jeu Vidéo
Présentation du sujet
L'objectif de ce projet est de développer une application qui permet de reconstituer des puzzles à partir d'un ensemble de pièces mélangées.
Travail à effectuer
- Créer plusieurs puzzles
- Créer plusieurs niveaux de difficultés
- Permettre à l'utilisateur d'importer ses propres images et d'importer des images depuis internet.
- Avoir un mode chronométré
Pour améliorer la jouabilité et l'intérêt du jeu, on pourra éventuellement permettre un mode multi-joueurs.
Au choix: smartphone ou web
Références
Langage(s) et technologie(s) :
A déterminer
Contrainte(s) :
Sujet L2AG : Bubble shooter
Encadrant :
Mail de l'encadrant :
Catégorie(s): Jeu Vidéo
Présentation du sujet
Bubble shooter est un type particulier de casse brique; c'est un classique des salles d'arcade.
L'objectif de ce projet est de développer votre propre bubble shooter.
Travail à effectuer
- Créer plusieurs niveaux
- Créer plusieurs niveaux de difficultés
- Ajouter un système de bonus
- Avoir un mode chronométré
Pour améliorer la jouabilité et l'intérêt du jeu, on pourra éventuellement permettre un mode multi-joueurs.
Au choix: smartphone ou web
Références
[
Langage(s) et technologie(s) :
A déterminer
Contrainte(s) :
Sujet L2AH : Site de gestion de bibliothèque
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Site web
Présentation du sujet
Il arrive souvent lorsque l'on possède une importante bibliothèque de ne plus être sûr des livres que l'on possède.
De même dans ces cas là, on peut être amené à prêter des livres à un proche, et parfois ne plus savoir à qui on l'a prêté, ni quand.
Le but de ce projet est de résoudre ces problèmes grâce à un site web qui permettra aux utilisateurs de gérer leurs bibliothèques.
Les utilisateurs pourront alors entrer les données correspondant à leurs livres (titre, auteur, année de sortie, date d'achat…), et à tout moment effectuer des recherches dans la liste de leurs livres (et ainsi par exemple ils éviteront d'en acheter un deuxième exemplaire).
Les utilisateurs pourront aussi garder une trace des livres qu'ils ont prêté à des amis.
Travail à réaliser :
On attend une application web ou mobile qui permettra à l’utilisateur d’ajouter des données concernant ses livres.
Il doit être possible de modifier les données d’un livre enregistré, ou de le supprimer de la liste, et d’indiquer qu’un livre a été prêté à un ami, en précisant les informations sur ce prêt (personne, date du prêt, …).
L’utilisateur doit également pouvoir faire des requêtes sur sa liste de livres (par exemple, afficher tous les livres d’auteurs japonais, possédés en livre de poche, ou qui sont sortis entre 2009 et 2012, …).
Enfin, l'utilisateur doit pouvoir planifier l'achat de nouveau livres.
Langage(s) et technologie(s):
- Au choix de l’équipe de développement. Dans le cas d’un site web, il s’agit par exemple de HTML/CSS/PHP/Javascript. Il est également possible de travailler sous Android ou iOS.
- Enfin, il faudra prévoir un moyen de stockage des données (base de données, XML,…)
Contrainte(s) :
Sujet L2AI : 2048
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Smartphone, jeu vidéo
Contexte
Le jeu 2048 a eu un grand succès ces dernières années, aussi bien sur le web qu’en tant qu’application mobile.
Il s’agit d’un petit casse-tête qui consiste à déplacer des cases dans une grille 4×4 de façon à faire fusionner deux cases identiques lorsqu’elles se rencontrent. Les cases contiennent des puissances de 2.
Ainsi, deux cases 2 fusionneront en une case 4, deux cases 4 fusionneront en une case 8, etc Le but du jeu est de faire apparaître la case 2048 (2 à la puissance 11).
Il est bien entendu possible de continuer au-delà, et de faire apparaître des valeurs plus élevées.
Travail à réaliser :
Le but du projet est de développer une application mobile pour 2048.
En plus des fonctionnalités de base (pouvoir jouer une partie), il faudra prévoir un certain nombre d’extensions : possibilité de jouer dans des grilles de taille différente, objectif à atteindre différent, tableaux des meilleurs scores, modification du thème graphique, partage du score sur les réseaux sociaux, etc
Une fonctionnalité optionnelle est le développement d’une intelligence artificielle capable de jouer au jeu.
L’intérêt de cette IA serait de permettre à un joueur qui hésite sur son prochain coup d’obtenir un indice.
Langage(s) et technologie(s):
- Au choix des étudiants, développement pour le web (HTML, CSS, PHP, Javascript), développement d’application stand-alone (Java, C++,…) ou d’application mobile (Android, iOS)
- Il faudra également prévoir la gestion d’une base de données
Référence(s) :
Mots-clés :
- Application mobile, jeu, intelligence artificielle
Sujet L2AJ : Jeu de Poker Texas Holdem
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Le poker est une famille de jeux de cartes comprenant de nombreuses formules et variantes. Il se pratique à plusieurs joueurs avec un jeu généralement de cinquante-deux cartes et des jetons représentant les sommes misées. Les séquences de jeu alternent distribution de cartes et tours d'enchères. Le but du jeu est de remporter les jetons des adversaires en constituant la meilleure combinaison de cinq cartes ou en leur faisant abandonner le coup. Dans ce projet nous nous intéresserons uniquement à la variante la plus populaire actuellement: le No Limit Texas Hold'em dans son format Heads Up (1 contre 1).
Travail à effectuer
Le but du projet est d’implémenter un jeu de No Limit Texas Hold'em dans lequel le joueur affronte l'ordinateur. Le programme devra proposer les fonctionnalités suivantes :
- Le programme devra gérer automatiquement toutes le règles du jeu et les tours d'enchères.
- Il faudra développer l'intelligence artificielle qui affrontera le joueur.
- L'environnement du jeu devra être entièrement paramétrable et les parties jouées devront être sauvegardées.
Langage(s) et technologie(s):
Au choix: Java ou C
Interface graphique, Intelligence artificielle
Contrainte(s) :
Sujet L2AK : Oenologik
Encadrant :
Mail de l'encadrant :
Catégorie(s): Smartphone
Présentation du sujet
L’oenologie est la science qui a pour objet l'étude et la connaissance du vin (Wikipédia). La France est le principal producteur de vins au monde et cette application vise à mettre en valeur les différents aspects de la production française.
Travail à effectuer :
L'objectif de ce projet est de réaliser une application qui fonctionne sur un smartphone. Elle devra permettre :
- de recenser et d'explorer les terroirs
- d'informer sur les différents cépages et la vinification
- présenter les caractéristiques de différents vins
- proposer des conseils pour sa manipulation et sa dégustation
- proposer des conseils pour marier vins et mets
- proposer un aide-mémoire pour les AOC, les meilleurs vins et les meilleures années
Références
Langage(s) et technologie(s) : Java/Android/XML ou React Native/Javascript
Contrainte(s) :
Posséder un smartphone sous iOS (avec une licence développeur) ou sous Android
Sujet L2AL : Blackjack
Nom de l'encadrant:
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Le blackjack est une famille de jeux de cartes comprenant de nombreuses formules et variantes.
Il se pratique à plusieurs joueurs avec un jeu généralement de cinquante-deux cartes.
Dans sa version classique, la partie oppose tous les joueurs contre la banque.
Le but est de battre le croupier sans dépasser 21
Travail à effectuer
Le but du projet est d’implémenter un jeu de blackjack dans lequel le joueur affronte l'ordinateur. Le programme devra proposer les fonctionnalités suivantes :
- Le programme devra gérer automatiquement toutes le règles du jeu
- Il faudra développer l'intelligence artificielle qui affrontera le joueur.
- L'environnement du jeu devra être entièrement paramétrable et les parties jouées devront être sauvegardées.
Afin d'améliorer les possibilités offertes, on envisagera de :
- implémenter des variantes du blackjack
- implémenter un mode multijoueur
Langage(s) et technologie(s):
Interface graphique, Intelligence artificielle
Contrainte(s) :
Sujet L2AM : Robot ramasseur de balles
Encadrants :
Catégorie(s): Robotique
Présentation du sujet
L'objectif de ce projet est de construire et de faire fonctionner un robot ramassant des palets disposés sur une surface jeu.
Deux robots s'affrontent dans un match qui consiste à récupérer le maximum de palets dans le temps imparti.
Travail à effectuer :
Dans le cadre d'une approche incrémentale, le programme développé devra permettre au robot de réaliser les tâches suivantes:
- Se déplacer sur la surface donnée sans en sortir.
- Repérer les billes de couleur et les ramasser.
- Ranger les billes ramassées : autrement dit, les déposer dans une zone prévue à cet effet.
Evidemment, le robot devra réaliser ces tâches le plus rapidement possible.
Contraintes:
Le langage utilisé pour réaliser le(s) programme(s) sera obligatoirement : C ou Java
La salle de robotique est petite et il faudra la partager.
Participer aux événements de promotion de la robotique organisés par l'UFR.
Sujet L2AN : Quarto
Encadrant :
Mail de l'encadrant :
Catégorie(s): Jeu vidéo
Présentation du sujet
Le quarto est un jeu de réflexion basé sur une grille carrée de 16 cases. Sur cette grille deux joueurs déposent des pièces tour à tour.
Le but du jeu est d'aligner 4 pièces présentant les mêmes caractéristiques : blanches ou noires, grandes ou petites, rondes ou carrées, pleines ou creuses.
Travail à effectuer :
Le but du projet est d’implémenter un jeu de quarto. Le programme devra proposer les fonctionnalités suivantes :
- Tout d’abord, le programme devra permettre à deux joueurs humains de s'affronter
- Ensuite, le programme devra permettre de jouer contre l'ordinateur et de proposer des conseils
- Enfin, le programme devra être capable de sauver et de charger une partie en cours
Langage(s) : C/C++ ou Java
Références
Langage
Contrainte(s) :