Illustration visuelle du challenge de code : CodeMind #6 : Réseaux sociaux

CodeMind #6 : Réseaux sociaux

Analyse l’impact des messages sur les réseaux sociaux et protège la santé mentale des utilisateurs. Détecte les risques et contribue à un espace plus positif.

Coder dans la sandbox Tu dois être connecté.e pour accéder à la sandbox.

Ce challenge fait partie de l’histoire originale : Codemind Odyssey.

Les premiers tests de CodeMind en conditions réelles sont concluants, les étudiant.e.s te font toutes et tous des retours très positifs ! Bravo pour le chemin déjà parcouru !

Dans ce sixième et dernier chapitre de l’aventure, l’exploration se porte sur l’influence significative des messages reçus via les réseaux sociaux sur la santé mentale. Il est évident que les mots ont un pouvoir considérable, capable soit d’améliorer, soit de dégrader le bien-être de celles et ceux qui les reçoivent.

Mission

Tu cherches à modéliser l’effet domino provoqué par la diffusion d’un message. Ta tâche est de développer une fonctionnalité au sein de CodeMind capable de prédire l’impact des messages échangés entre les utilisateurs d’un réseau social sur leur bien-être mental.

En analysant l’historique de milliers de messages d’un échantillon de personnes, tu arrives à définir certains comportements et à mettre en place une mécanique d’alerte…

Règles

Tous ces comportements sont dans la variable “impacts” qui explique comment les utilisateurs vont s’impacter les uns les autres lors de leurs échanges.

Chaque ligne commence par 2 informations :

  • L’identifiant de l’émetteur, une lettre, de A à Z (RGPD oblige, les données ont été anonymisées)
  • Un impact sur la santé mentale, un entier entre 1 et 9

Puis des impacts Positifs et Négatifs sur d’autres personnes :

  • PA ⇒ impact Positif sur la personne “A”
  • NS ⇒ impact Négatif sur la personne “S”
  • Lors de la diffusion d’un message, un émetteur a au minimum 1 impact Positif sur 1 personne et 1 impact Négatif sur 1 autre personne.

Mécaniques :

  • La variable « messages » contient tous les émetteurs des prochains messages.
  • Chaque personne commence avec une santé mentale de 100.
  • La santé mentale d’une personne est comprise entre 0 et 100.
  • Si l’émetteur du message est A, il faut trouver la ligne d’impact de A :
    • Appliquer l’impact positivement (+) aux personnes P… avec un coefficient (x2)
    • Appliquer l’impact négativement (-) aux personnes N…
    • Malheureusement, toutes les personnes impactées négativement vont à leur tour réagir avec un message “seulement” négatif, à leurs personnes N… avec un coefficient (-1) et ainsi de suite jusqu’à ce qu’il n’y ait plus d’impact (c’est à dire quand l’impact sera de 0).

Si ce n’est pas clair, voici un exemple pas à pas de cet effet domino :

  • A:3:PC:PE:NB “La personne A a un impact de 3, positif pour C et E et négatif pour B”
  • B:4:NC:NE:PF “La personne B a un impact de 4, positif sur F, négatif sur C et E”
  • C:5:PA:PE:ND
  • Lorsque A émet un message :
    • C voit sa santé mentale augmentée de 6 (3×2)
    • E voit sa santé mentale augmentée de 6 (3×2)
    • B voit sa santé mentale diminuée de 3
      • B a un impact négatif sur C et E, ce qui va donc impacter leur santé mentale de 2 chacun (3-1)
        • C a un impact négatif sur D et va donc impacter sa santé mentale de 1 (2-1)
        • On s’arrête là car le prochain impact serait de 0 (1-1)

Tu dois retourner…

Le moment précis où un ou plusieurs utilisateurs basculent vers un état de risque, marqué par une santé mentale dangereusement basse (inférieure ou égale à 20). Fournis le dernier émetteur et l’identité de l’utilisateur ou des utilisateurs en danger. On utilisera « _ » comme séparateur entre le dernier émetteur et le ou les personnes en danger.

Exemple de réponse :

  • D_V” = Le dernier émetteur est “D” et la personne à risque est la personne “V”
  • T_CA” = Le dernier émetteur est “T” et 2 personnes sont à risque : “C” et “A”

Résoudre le challenge

Pour coder ce challenge, plusieurs possibilités. Si tu débutes, utilise la Sandbox en ligne. Si tu es plus à l'aise, regarde la documentation de notre API, pour coder en local. Tu peux aussi copier/coller un jeu de données ci-dessous.

Quelques ressources pour t'aider : Données et logique algorithmique Méthodologies Corrigés

Accompagnement à la résolution

Progresse dans les challenges en utilisant nos aides à la résolution : outils, techniques et conseils pour t'aider à surmonter les challenges de programmation les plus complexes avec méthodologie, assurance et créativité.

Jeu de données et logique algorithmique

A partir des données et de la réponse attendue, aide toi du déroulé pour déterminer la logique à mettre en oeuvre.

Afficher les données et le déroulé

Méthodologies

Développe une approche structurée grâce à nos guides de résolution. Travaille des concepts précis comme la programmation orientée objet ou les tests unitaires, pour améliorer ta manière de coder et progresser.

Pas de méthodologie encore pour ce challenge, mais on y travaille ! Suis-nous pour être informé de la sortie !


Corrigés

Les corrigés te permettent de découvrir certains concepts techniques mais vont aussi te donner une solution au challenge. Code le challenge par toi même avant de consulter les corrigés ;)

Pas de corrigé encore pour ce challenge, mais on y travaille ! Suis-nous pour être informé de la sortie !

Concept(s) de programmation utilisables pour résoudre ce challenge : Récursivité, Calculs

Keep coding

Autres challenges à réaliser

Intermédiaire
Team Pokemon #3

Team Pokemon #3

Tu avances dans ton aventure… Mais maintenant, ce n’est pas 1 mais 3 équipes que tu vas constituer.

Calcul
Intermédiaire
Le train va t-il arriver à l’heure ?

Le train va t-il arriver à l’heure ?

Analyse le trajet de ce train, il va rencontrer quelques obstacles… Arrivera t-il à l’heure ?

Calcul Corrigé disponible : PHP
Débutant
CodeMind #2 : Relaxation

CodeMind #2 : Relaxation

Challenge 2 de CodeMind : Développe un outil de relaxation et bien-être étudiant avec PHP, JavaScript ou Python. Transforme le stress en zénitude !

Calcul

Ta newsletter chaque mois

Corrigés, challenges, actualités, veille technique... aucun spam.