web-dev-qa-db-fra.com

Quelle est la meilleure interface graphique pour saisir une liste de paires?

Je veux créer une interface graphique pour saisir des ordres de construction de compétences pour un jeu RPG. Une compétence est ne liste ordonnée de (compétences, nombre) paires, comme ceci (voir note de bas de page):

(A x1) -> (B *) -> (C x2) -> (A *)

Je veux créer une interface graphique qui peut ajouter des éléments à ce type de liste, de préférence dans n'importe quelle position de celle-ci.

L'idée principale que j'ai maintenant est de créer une sorte d'interface glisser-déposer, avec des icônes représentant les compétences

current build = (A x1) -> (B *) -> ...
-----------------------------------------    
amount: [ 1 | 2 | 3 | 4 | * ] (radio buttons or drop-down selector)
skills: +---+  +---+  +---+
        | A |  | B |  | C |
        +---+  +---+  +---+

Cliquer sur une icône ajouterait la combinaison numéro-article à la fin de la liste (l'endroit le plus courant pour ajouter des éléments) et le faire glisser à un endroit de la liste des résultats entraînerait son insertion à la place.

Mais j'imagine avoir à faire plusieurs clics pour sélectionner le numéro et l'icône serait maladroite. Une alternative pourrait être d'avoir un bouton pour chaque paire possible:

+----+  +----+  +----+
|A  *|  |B  *|  |C  *|
+----+  +----+  +----+

+----+  +----+  +----+
|A x1|  |B x1|  |C x1|
+----+  +----+  +----+

+----+  +----+  +----+
|A x2|  |B x2|  |C x2|
+----+  +----+  +----+
//and so on

Mais je pense que cela deviendrait trop encombré.

Quelle est la meilleure façon de saisir une telle liste de paires?

Y a-t-il des endroits où un problème similaire a été résolu et où je peux m'inspirer?

Quelques considérations de conception:

  • J'ai 4-5 compétences et les nombres vont de 3-5 (et le caractère générique *)

  • Certains numéros (1 et *) seront sélectionnés plus souvent que d'autres (2,3,4). Toutes les compétences sont également susceptibles d'être sélectionnées.

  • Si nous choisissons une conception asymétrique, les compétences devraient être prioritaires sur les nombres.

  • Je souhaite avant tout obtenir un flux de travail rapide et propre. C'est OK si le résultat final se révèle un peu compliqué ou peu intuitif.

    • Il ne s'agit pas de l'interface par défaut. Je veux que ce soit plus rapide que l'interface simple mais lente où chaque compétence est entrée manuellement pour chaque niveau.

Pour les curieux, un couple comme

(A x1) -> (B *) -> (C x2) -> (A *)

peut être interprété comme

As a first priority, level up A once
As a second priority, level up B whenever possible
As a third priority, level up C twice
As a fourth priority, level up the remaining levels of A

La raison principale de cette utilisation est que la description directe des compétences à prendre à chaque niveau est plus longue et moins claire:

A, B, C, B, C, B, A, B ...  // this is simple, but less clear
2
hugomg

Vous pouvez utiliser une seule action de glisser-déposer pour choisir une compétence, la faire glisser vers un montant pour la `` collecter '' pendant que vous faites glisser, puis continuer à glisser vers une liste de votre ordre de construction de compétences et déposer un point d'insertion dans la liste .

Ceci est illustré par la séquence ci-dessous:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

5
Roger Attrill