Developpez.com - Rubrique Pascal

Le Club des Développeurs et IT Pro

Défi Pascal 2010 : réaliser un système de chat

. Participez jusqu'au 31-10-2010

Le 2010-05-13 14:17:52, par Alcatîz, Responsable Pascal, Lazarus et Assembleur
Bonjour à toutes et à tous,

Cette année, l'équipe Pascal vous propose un défi radicalement différent des éditions précédentes : réaliser en Pascal un système de chat.
Il faudra que deux machines distantes puissent converser par échanges de textes, envois d'émoticônes, puissent signaler leur statut (en ligne, déconnecté, occupé...) et, au minimum, disposer d'un carnet de contacts.
Pour le choix de la techno, du compilateur et même de la plateforme : vous êtes entièrement libres ! Il y a donc moyen de bien s'éclater.

Voici le règlement complet du défi :

Cahier des charges :

Réaliser un système de chat qui possède les fonctionnalités de base suivantes :
  • Permettre à deux machines distantes d'échanger du texte et d'afficher une conversation dans une fenêtre.
  • Prévoir un système d'émoticônes, permettant à un utilisateur de ponctuer son texte de marques d'émotions.
  • Prévoir différents statuts : prêt à chatter, occupé, absent, etc.
  • Disposer d'un carnet de contacts.

Toute fonctionnalité supplémentaire est la bienvenue, soyez imaginatifs et étonnez-nous !

Le choix de l'architecture (client/serveur, peer-to-peer, etc), de la (ou les) plateforme(s), du compilateur, des librairies externes est à votre discrétion.

Date limite :

Les sources pourront être envoyés à Alcatîz jusqu'au 31-10-2010.
Au fur et à mesure de la réception des sources, la liste des participants sera mise à jour à la suite de ce message.
Surtout ne postez pas vos sources sur le forum.

Notation :

Accrochez-vous, c'est assez compliqué mais nous tenions absolument à assurer une cotation équitable qui privilégie l'audace et l'inventivité.
  • Note d'ensemble du logiciel (fonctionnalité de base + optionnelles) :
    • Respect du cahier des charges (présence des fonctionnalités de base) : 12 points.
    • Qualité du package (source + manuel d'installation et d'utilisation) : 4 points.
    • Qualité du code (rapidité, exempt de bugs, gestion des exceptions...) : 4 points.
    • Look et ergonomie : 4 points.


La notation de base est donc sur 24 points.
Il y a des points bonus :
  • Pour chaque fonctionnalité optionnelle :
    • Valeur maximale = 1, 2 ou 3 points selon la difficulté (voir ci-dessous).
    • Originalité de la fonctionnalité = moitié de la valeur maximale.
    • Qualité de son implémentation = moitié de la valeur maximale.


Le jury se mettra d'accord sur le niveau de difficulté de chaque fonctionnalité additionnelle et sélectionnera les trois fonctionnalités les plus importantes (s'il y en a plus de trois). Les points bonus ne seront donc attribués que pour ces trois fonctionnalités au maximum.

Publication des résultats :

Les résultats seront publiés dans le courant du mois de décembre 2010.

Soyez inventifs et mettez-en nous plein la vue !
Bonne chance à tous les candidats.
  Discussion forum
49 commentaires
  • mick605
    Membre chevronné
    Bon, finalement, qui y participe ?

    Moi j'ai décidé de m'y mettre. J'ai continué un projet que j'avais fait il y a un an, et ca marche plutot bien, donc je continue ^^.

    En espérant qu'il y ait d'autres participants qui se manifestent ...
  • Alcatîz
    Responsable Pascal, Lazarus et Assembleur
    Il est déjà arrivé par le passé que les candidats reçoivent un petit cadeau, après le défi et à leur grande surprise , pour les remercier de leur participation. Il n'est pas exclu que nous parvenions "un jour" à renouveler la chose, dans nos modestes moyens - n'oublions pas que nous sommes tous bénévoles...

    Quoi qu'il en soit, il s'agit avant tout d'un défi "pour le sport", destiné à se faire plaisir en relevant un challenge, en repoussant ses limites et en apprenant. Il est exclu que nous fixions préalablement des prix à remporter et ainsi tomber sous la législation des concours, avec dépôt obligatoire du règlement chez un huissier, etc.
  • darrylsite
    Rédacteur
    Envoyé par mick605
    Alala, quel moyen caché (ou pas) de se faire de la pub ^^
    Il le faut bien, non?
  • mick605
    Membre chevronné
    Salut

    Ca me parait bien interressant ^^.
    Par contre, il faudrait expliciter un peu plus certains points du défi :
    - Le type de réseau : réseau local, réseau internet quelconque (avec gestion du proxy etc.)
    - le carnet de contacts : c'est quoi ? Un endroit ou stocker les adresses des gens ? Mais dans le cas ou les gens se connectent seulement avec un pseudo ? Est-ce obligatoire que les utilisateurs créent un compte ?
    - Sommes nous limités sur le nombre de ports a utiliser ?

    Je verrai si j'ai le temps de participer ...
  • M.Dlb
    Rédacteur/Modérateur
    Concernant ces points là, tu as toute liberté. A toi de voir ce qui parrait le plus pertinent, le plus original et le plus simple à utiliser
  • krachik
    Expert confirmé
    Envoyé par diden138
    Le plus important dans tout ça le gain ?
    De quel gain parles-tu? moi j'ai pas compris ce que tu veux dire ...., les prix/récompenses?
  • joreveur
    Membre averti
    Bonjour,

    ça me parait un peu au delà de mes compétences...
  • mick605
    Membre chevronné
    Envoyé par pereirjo
    Bonjour,

    ça me parait un peu au delà de mes compétences...
    Ne part pas défaitiste

    Le premier (et seul) défi que j'ai fait m'a fait énormément progresser. Si tu as déja programmé des applis en réseau, je pense que tu ne sera pas dépaysé. Sinon, ben c'est le meilleur moment pour apprendre . N'oublies pas que tu as du temps, donc tu pourras t'améliorer d'ici la.
  • darrylsite
    Rédacteur
    Envoyé par mick605
    Ne part pas défaitiste

    Le premier (et seul) défi que j'ai fait m'a fait énormément progresser. Si tu as déja programmé des applis en réseau, je pense que tu ne sera pas dépaysé. Sinon, ben c'est le meilleur moment pour apprendre . N'oublies pas que tu as du temps, donc tu pourras t'améliorer d'ici la.
    +1
  • Paul TOTH
    Expert éminent sénior
    mais c'est trop facile, les deux premiers points sont dans l'exemple réseau de mon livre