Outils pour utilisateurs

Outils du site


slvpartage:cartes_d_artistes

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
slvpartage:cartes_d_artistes [2021/05/09 22:03] – [Algorithme] cyberyunohostslvpartage:cartes_d_artistes [2021/05/17 15:04] (Version actuelle) cyberyunohost
Ligne 3: Ligne 3:
 ( https://en.wikipedia.org/wiki/Artist_trading_cards ) ( https://en.wikipedia.org/wiki/Artist_trading_cards )
  
-Etude d'un projet de logiciel par philippe. +Etude d'un projet de logiciel par philippe suite à des échanges réalisés par ma fille ( https://pire.artisanlogiciel.net/videos/watch/1292ab2d-1af8-46f6-90a8-9c45f43538b3 ).
  
 Le projet pourra être présenté à slv pour hébergement. Le projet pourra être présenté à slv pour hébergement.
Ligne 10: Ligne 10:
 ====== Le cahier des charges ====== ====== Le cahier des charges ======
  
-La demande émane de @guillemettesilvand@framapiaf.org ( sur le réseau mastodon de framapiaf )+La demande émane de @guillemettesilvand@framapiaf.org ( sur le réseau mastodon de framapiaf ) qui propose d'organiser les échanges : https://www.guillemettesilvand.fr/index.php/artist-trading-cards/
  
 {{:slvpartage:demancelogicielcartesartistes.png?nolink&400|}} {{:slvpartage:demancelogicielcartesartistes.png?nolink&400|}}
Ligne 58: Ligne 58:
  
 Fait mimine ...  Fait mimine ... 
 +
 +===== Utilisation de LibreOffice Macro Basic + Calc =====
 +
 +Première implémentation de l'algorithme quadratique algo1 défini plus loin.
 +
 +Sur le GitLab de framagit : https://framagit.org/artlog/artistcardmanagertools
 +
 +Il y a un exemple de feuille sur laquelle on peut lancer la macro qui prend les entrées dans une zone prédéfinie de la feuille et re-rempli une zone de la feuille.
 +
 +
 +Lire le LISEZMOI sur https://framagit.org/artlog/artistcardmanagertools
 +
 +Premier tuto vidéo https://peertube.serveur.slv-valbonne.fr/videos/watch/30d64830-ffff-413e-8bd2-96ed7054acfc
 +
 +
  
 ===== Utilisation de LibreOffice Base ===== ===== Utilisation de LibreOffice Base =====
Ligne 77: Ligne 92:
  
 S'il pouvait y avoir un système de chiffrement de la base de donnée qui protège la visibilité de ses données à l'hébergeur une fois l'application stoppée, ce serait l'idéal. le chiffrement serait basé sur le mot de passe organisateur. S'il pouvait y avoir un système de chiffrement de la base de donnée qui protège la visibilité de ses données à l'hébergeur une fois l'application stoppée, ce serait l'idéal. le chiffrement serait basé sur le mot de passe organisateur.
 +
 +
 +
 +===== Implementation =====
 +
 +algo1
 +
 +Focalisation sur la phase de répartition et distribution des cartes.
 +
 +==== répartition des échanges avec certains échanges forcés ====
 +
 +Un première répartition plus ou moins manuelle pourrait être faite et l'algorithme joué dessus cet ensemble de données pour compléter les échanges.
 +
 +Un algorithme incrémental serait judicieux, c'est à dire un algorithme qui permettre de rajouter des cartes à des participants et de rajouter des participants en regénérant de nouveaux échanges sans remettre en question les échanges initiaux.
 +
 +Un algorithme de vérification/validation serait aussi le bienvenue dans le cas de manipulations manuelle des résultats.
  
  
Ligne 99: Ligne 130:
 réalisée par l'organisateur. Un algo automatique peut aider à construire la première liste et laisser les adaptations à l'organisateur. réalisée par l'organisateur. Un algo automatique peut aider à construire la première liste et laisser les adaptations à l'organisateur.
  
 +
 +Cette phase est proposée en local via une feuille de caclul LibreOffice avec le prototype https://framagit.org/artlog/artistcardmanagertools
 ==== Phase de lancement ==== ==== Phase de lancement ====
  
Ligne 224: Ligne 257:
  
 ===== Algorithme ===== ===== Algorithme =====
 +
 +==== algo1 quadratique ====
 +
 +
 +L'algo1 est assez disperisf mais ne permet pas de distribuer toutes les cartes si de nombreux participants ont un faible nombre de carte.
 +Il permet cependant à des participants avec une faible nombre de carte d'échanger avec d'autres participants ayant aussi un faible nombre de cartes.
  
 Avec n utilisateurs il y a n  * ( n - 1 ) / 2  paires possibles de participants différents. Avec n utilisateurs il y a n  * ( n - 1 ) / 2  paires possibles de participants différents.
Ligne 243: Ligne 282:
  
 (*) la création de paires doit se faire de façon intelligente pour éviter de créer plusieurs fois les même paires dans une même passe ou bien même dans plusieurs. (*) la création de paires doit se faire de façon intelligente pour éviter de créer plusieurs fois les même paires dans une même passe ou bien même dans plusieurs.
 +
 +==== algo2 linéaire ====
 +
 +Il existe une autre manière d'aborder le problème en considérant chaque carte à échanger et en les tirant au sort deux par deux dans un chapeau. Le cas d'exception à traiter est quand les deux cartes obtenues sont les même. Dans ce mode deux participants peuvent se retrouver à échanger plusieurs cartes entre eux, sinon il faut un mécanisme de vérification que l'appariement n'a pas déjà eu lieu avec le même participant.
 +
 +pour chaque participant ajouter dans la liste autant de cartes avec la référence au participant qu'il veut en échanger.
 +
 +Retirer deux cartes de la liste (*)
 +
 +- S'il n'y a pas assez de cartes c'est la fin.
 +
 +- Si les cartes sont identiques :
 +Tant qu'elle est identique retirer une carte supplémentaire.
 +S'il n'y a plus de cartes, c'est la fin.
 +S'il y a une carte différente : enregistrer la carte initiale et celle ci dans les appariement.
 +Poser les cartes non enregistrées sur le tas des cartes non utilisés du participant, cela revient à enregistrer le nombre de cartes non utilisées pour le participant.
 +
 +- Si les cartes sont différentes, les enregistrer dans les appariements.
 +
 +Une fois la liste vide regarder s'il reste plus d'un participant avec des cartes inutilisées, si c'est le cas, reconstruire la liste est recommencer.
 +
 +(*) on peut retirer les cartes en tête cependant dans ce cas il est préférable d'avoir consturit la liste de manière à entrelacer les cartes des participants, on peut aussi les tirer de façon aléatoire.
  
  
  
  
slvpartage/cartes_d_artistes.1620590607.txt.gz · Dernière modification : 2021/05/09 22:03 de cyberyunohost