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 21:35] – [Données] cyberyunohostslvpartage:cartes_d_artistes [2021/05/17 15:04] (Version actuelle) cyberyunohost
Ligne 1: Ligne 1:
 Echange de cartes d'artistes Echange de cartes d'artistes
  
 +( 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 9: 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 57: 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 76: 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 98: 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 223: 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 231: Ligne 271:
 pour cette liste : pour cette liste :
  
-Tant la liste contient plus d'un participant; Créer une paires pour chacun des participants (*) et décrémenter de un le nombre de cartes restantes à échanger pour chacun ; Reconstruire la liste des participants ayant encore des cartes à échanger, recommencer+a. Tant la liste contient plus d'un participant; **Créer une paire pour chacun des participants** c'est à dire : 
 +Supprimer le premier de la liste et l'apparier avec un autre qui ne lui soit pas déjà apparié (*) 
 +Si l'appariement a eu lieu, décrémenter de le compteur de cartes de chacun et supprimer l'autre de la liste. si la liste contient plus d'un participant, recommencer en a. 
 +; Reconstruire la liste des participants ayant encore des cartes à échanger, si elle contient plus d'un participant, recommencer en a.
  
 Ici la liste peut encore contenir un participant avec des cartes en excès. Il sera traité plus tard. Ici la liste peut encore contenir un participant avec des cartes en excès. Il sera traité plus tard.
Ligne 239: 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.1620588910.txt.gz · Dernière modification : 2021/05/09 21:35 de cyberyunohost