Forums Développement Multimédia

Aller au contenu

mélange de pièce

CODE Actionscript

41 réponses à ce sujet

#1 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 08 November 2011 - 11:33 AM

Bonjour a tous
je suis un peu nouveau dans le développement as3
et j'ai un petit soucis car je sais pas comment partir :)
voilà mon soucis je dois concevoir un mélangeur de pièces

je m'explique

en fait j'ai 6 pièces d'un objet (haut, bas, droite, gauche, etc...) avec une dizaine de couleur pour chaque pièces (haut blanc, haut jaune, haut vert, etc...) et en fait je dois faire un mélangeur, on choisi une première couleur sur un sélecteur et l'objet devient tout rouge par exemple j'en sélectionne une seconde sur un second sélécteur et là j'ai 2 couleurs donc 6*6 = 36 possibilité mais en fait je me demande comment partir car avec un random je pense avoir peut être la même combinaison :) et j'ai 3 ou 4 sélecteurs au final donc 216/1296 possibilités donc ma question c'est comment dois je débuter car si je stock dans un tableau par couleur comment je fais pour être sur que je n'ai pas 2 fois la même combinaison ?
si vous avez un tuto ou un conseil je vous en remercie :)

je sais pas si je me suis bien exprimé mais merci si vous avez des conseils

#2 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 08 November 2011 - 15:51 PM

Bonjour,

Je ne suis pas certain d'avoir tout compris... Est-ce que l'idée est, au démarrage de l'animation, fournir une coloration aléatoire de l'objet ?

Sachant que pour colorer cet objet, qui a n faces, on a une palette de y couleurs, soit au total n X y possibilités de colorer un objet.

Donc, pour chaque face, choisir une couleur ?

Du coup, je ne vois pas où il est possible d'avoir 2 fois la même combinaison. Pourriez-vous confirmer que m'a réécriture est correcte et peut-être en expliquer un peu plus ?

#3 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 11:21 AM

Bonjour

merci pour ta réponse je savais que j'avais pas été très clair :)

en fait c'est une montre donc tu as le bracelet haut, bracelet bas et la carrure, tu as 2 ou 3 sélecteurs de couleurs et un partie avec 16 encart pour afficher les montres colorées différemment (avec page suivante si jamais ça dépasse les 16 visuels).
Donc tu sélectionne dans le 1er sélecteur une couleur (chaque pièce ayant un même nombre de couleur actuellement 12(rouge, vert , bleu etc...)) tu choisie donc par exemple bleu tu as donc la montre toute bleue la montre avec le bracelet haut bleu une autre image avec le bracelet bas etc... tu choisie après une seconde couleur dans le second sélecteur et donc tu as rouge et bleu dans différentes configuration. et si tu as un 3ème sélecteur ça augmente encore les possibilité de combinaison :)
j'espère avoir été plus clair comme ça :)




Voir le messagedeuxsucres, le 08 November 2011 - 15:51 PM, dit :

Bonjour,

Je ne suis pas certain d'avoir tout compris... Est-ce que l'idée est, au démarrage de l'animation, fournir une coloration aléatoire de l'objet ?

Sachant que pour colorer cet objet, qui a n faces, on a une palette de y couleurs, soit au total n X y possibilités de colorer un objet.

Donc, pour chaque face, choisir une couleur ?

Du coup, je ne vois pas où il est possible d'avoir 2 fois la même combinaison. Pourriez-vous confirmer que m'a réécriture est correcte et peut-être en expliquer un peu plus ?


#4 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 09 November 2011 - 16:09 PM

Salut silver et bienvenue ici :)

j'ai encore un doute :

tu as 6 éléments, 1 sélecteur je comprends bien --> tout de la même couleur
2 sélecteurs tu veux toutes les combinaisons possibles, soit 26 ?
et pour trois sélecteurs 36 ?? ça va vite faire beaucoup non :roll:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#5 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 09 November 2011 - 16:23 PM

j'ai beau relire et relire... je pane rien...

Peux tu nous montrer une esquisse de l'interface, que l'on comprenne ce qu'est un sélecteur, un objet ?

#6 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 09 November 2011 - 17:04 PM

Il me semble qu'il serait plus pratique pour tout le monde qu'il y ait un sélecteur par "morceau" ainsi pourrait-on composer sa montre, genre : haut de bracelet rouge, avec cadran bleu, fermoir jaune et je ne sais quoi noir…

non ? :roll:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#7 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 17:16 PM

Bonjour et Merci :)
et oui j'arrive et je pose un casse tête :)

oui c'est ça c'est pour ça que je me demande comment procéder car j'ai peur des doublons et surtout je sais pas comment faire pour mélanger l'ensemble :)

en fait je joins un jpg c'est peut être plus visible comme ça :


en fait tu as les 3 sélecteurs et tu suis une démarche logique genre le 1er sélecteur tu prends le vert (tu auras donc les 6 pièces de la montre en vert) le second sélecteur tu choisi bleu tu aura donc 6*6 a mélanger pour afficher une image avec un bracelet haut en vert tout le reste en bleu, la seconde image avec le bracelet bas en vert et le reste en bleu, la troisième avec le bracelet haut et bas en vert le reste en bleu ainsi de suite et inversement pour avoir toute les combinaisons possibles :)

voilà j'espère que là je serais clair

merci a vous :)



Voir le messageNataly, le 09 November 2011 - 16:09 PM, dit :

Salut silver et bienvenue ici :)

j'ai encore un doute :

tu as 6 éléments, 1 sélecteur je comprends bien --> tout de la même couleur
2 sélecteurs tu veux toutes les combinaisons possibles, soit 26 ?
et pour trois sélecteurs 36 ?? ça va vite faire beaucoup non :roll:

Miniature(s) jointe(s)

  • Image attachée: test.jpg


#8 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 17:21 PM

Oui mais ce genre de config je l'ai déjà fait :) mais mon client veux les deux (oui les clients chiants :))
et il veux une sorte de wall de toute les combinaisons possible pour montrer a ses visiteurs donc très chiant pour appâter le chaland :)
car ensuite je vais devoir générer les fichiers jpg à la voler :s



Voir le messageNataly, le 09 November 2011 - 17:04 PM, dit :

Il me semble qu'il serait plus pratique pour tout le monde qu'il y ait un sélecteur par "morceau" ainsi pourrait-on composer sa montre, genre : haut de bracelet rouge, avec cadran bleu, fermoir jaune et je ne sais quoi noir…

non ? :roll:


#9 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 09 November 2011 - 18:06 PM

AYÉÉÉÉÉÉÉ... j'ai compris !

Il faut faire un arbre des possibilités. Chaque sélecteur devient un tableau des couleurs possibles. Pour faire simple, on va prendre 3 sélecteurs de 2 couleurs, voici les 3 tableaux [AB], [AB], [AB] et pour avoir toutes les possibilités, il faut pour chaque élément du premier tableau, le combiné avec chaque élément du second tableau qui se combine avec chaque élément du troisième tableau...

Il faut trouver un algorithme de parcours d'arbre de possibilités. J'en ai un en tête mais à mon avis, y'a beaucoup plus simple et efficace. Si j'ai un peu de temps, je posterai mon idée.

#10 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 09 November 2011 - 18:52 PM

oui… on a donc compris la même chose :eusa_doh:

… mais quand même… sauf à ce que je sois à côté de la plaque :
6 morceaux et dix couleurs ça fait 60 466 176 :texas:

même seulement trois couleurs ça fait 216… tu veux vraiment ça ?
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#11 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 09 November 2011 - 19:08 PM

Si j'ai bien compris, ce n'est pas le nombre de couleurs qui importe, mais de sélecteurs. Un sélecteur peut effectivement prendre n couleurs, mais au final on ne colorie la pièce que de x sélecteurs.

Le nombre de possibilités est donc nbrSélecteurActif^nbrPièces. Ce qui pour une montre de 6 pièces et 3 sélecteurs, fait quand même 729 possibilités... tu veux toujours faire les jpg :D ?

#12 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 20:59 PM

Ben si je fais pas des jpg je suis obligé de faire 16 viewer (l'objet Montre avec toute les couleurs dans chaque pieces) donc ça risque d’être aussi lourd :) vu que le client veux 16 images sur la pages :)

Voir le messagedeuxsucres, le 09 November 2011 - 19:08 PM, dit :

Si j'ai bien compris, ce n'est pas le nombre de couleurs qui importe, mais de sélecteurs. Un sélecteur peut effectivement prendre n couleurs, mais au final on ne colorie la pièce que de x sélecteurs.

Le nombre de possibilités est donc nbrSélecteurActif^nbrPièces. Ce qui pour une montre de 6 pièces et 3 sélecteurs, fait quand même 729 possibilités... tu veux toujours faire les jpg :D ?


#13 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 21:09 PM

ben moi j'ai pas envie de ça particulièrement mais le client lui veux ça donc bien obligé de le faire lol :)
c'est pour ca que je demande vos avis :)
car je sais que ça fait beaucoup mais bon

j'ai bien fait deux tableaux avec chaque pièces et chaque couleurs et fait un 3ème tableau avec toute les possibilités de pièces-couleurs possibles

donc pour exemple si je prends 2 pièces (coeur et lunette) et deux couleurs (vert bleu) j'en ressors dans mon 3ème tableau coeur vert, coeur bleu, lunette vert et lunette bleu mais après faut encore que je mélange tout ça :) et c'est très très chiant mais bon les clients sont pas toujours très futé :)
mais donc mon soucis c'est de savoir comment faire ce mélange sans me prendre trop la tête :) et surtout en évitant les doublons :)

en tout cas merci de vos avis ca me rassure je me dis que je suis pas le seul a penser que c'est de la folie :)




Voir le messageNataly, le 09 November 2011 - 18:52 PM, dit :

oui… on a donc compris la même chose :eusa_doh:

… mais quand même… sauf à ce que je sois à côté de la plaque :
6 morceaux et dix couleurs ça fait 60 466 176 :texas:

même seulement trois couleurs ça fait 216… tu veux vraiment ça ?


#14 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 21:17 PM

Desolé je me suis embrouillé :)

pour mon exemple si je prends 2 pièces (coeur et lunette) et deux couleurs (vert bleu) j'en ressors dans mon 3ème tableau coeur vert, coeur bleu, lunette vert et lunette bleu mais après faut encore que je mélange tout ça et que je les réunissent vu que la montre globale a un coeur et une lunette donc j'aurais bien coeur_vert lunette_vert et coeur_bleu lunette_bleu et coeur_bleu lunette_vert et coeur_vert et lunette_bleu :) et c'est très très chiant mais bon les clients sont pas toujours très futé :) rien qu'avec 2 pièces j'arrive a m'embrouiller :)

#15 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 09 November 2011 - 22:38 PM

Bon, il y a quand même un moment ou il faut être pro, non ?
Les clients ne sont pas stupides.

La réalité de ton truc :
6 pièces, 10 couleurs pour chaque : ça fait en réalité exactement 1.000.000 variantes.
10*10*10*10*10*10

Si tu fais un jpeg pour chaque, un jpeg de 5Ko, c'est déjà peu.
5 ko * 1.000.000 = 5 Go de données.
Il faut, à un moment ou un autre, les stocker.
Soit généré une fois sur le serveur… ?
Autant de fois que de visite sur le poste du client ?

Sur le serveur :
A raison de un dixième de secondes de transfert pour 5Ko, cela représente déjà : 27 heures de temps de chargement…
Combien de clients vont attendre 27 heures devant leur écran pour choisir une montre ? Aucun.
Combien va coûter l'hébergement d'un site de 5Go ? La bande passante ? Très cher.

Chez le client :
génération des images, là, pas de compression jpeg. Poids d'une image 100 pixels par 100 pixels (et c'est peu) : 30 ko. Poids total ? 30 Go. Stockés en mémoire vive ? Temps de traitement ? 6 jours. Nombre de clients ? Toujours zéro.
Evidemment, tout peut s'optimiser. Mais a quel coût en développement ? Et tu vas optimiser de combien ? Passer de 27 heures à 30 minutes ? Combien de clients attendrons 30 minutes ? Zéro.

Alors ton client, il ne veut pas un hébergement très cher.
Il ne veut pas zéro clients
Il ne veut pas un développement très cher.

A toi de lui expliquer, ça fait partie de ton boulot.
Sinon, tu lui dit que tu peux, que ça ne sera pas viable, mais tu peu.
Par contre, tu lu ifait un devis pour cette option : prix à l'image.
10 ctms par image. C'est pas cher.
Un tiers à la commande, si tu y arrives au bout d'un moins de travail, il te paye le reste. Sinon, tu gardes le premier tiers.

Passage en caisse : 1 tiers = 33.000 €
Que faites- vous mr le client ?

Comme tu l'as dit, un arbre te donneras toutes les solutions. Faut tout de même savoir aussi qu'ActionScript n'est pas du tout du tout bon en récursivité. Et pour un arbre… :(

Donc, maintenant, ton problème n'est pas un problème actionscript, ni d'autre langage de toute façon et nous ne pouvons pas te donner un code miracle.
Ce que tu dois faire, c'est t'armer de courage, affronter ton client.
Pour cela, imagine une autre solution, viable, en cherchant à produire le même avantage pour l'utilisateur (variété + aléatoire) pour être constructif.
Plus les arguments chiffrés ci-dessus, ça devrait le faire. Personne n'est stupide, et je n'ai jamais vu de client qui soit insensible à un argument "zéro client".

#16 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 09 November 2011 - 23:18 PM

Oui je sais t'en fais pas :)
mais je pensais que c’était faisable car en fait l’hébergement c'est pas moi qui m'en occupe le flash fait parti d'un projet Magento et je pensais que c’était possible en générant tout les jpg avant a la volé avant de faire ça
et j'ai que 3 sélecteurs de 12 couleurs et 5 parties :) donc (12x5)*(12x5)*(12x5) je pense donc 216000 variantes :) donc je dois générer les 216.000 jpg au début :) enfin si mes calculs sont exactes :)

J'essaye d’être pro mais si tu savais ce que ce client m'a fait faire j'ai fait de la 3d pour au final qu'il me fassent des shoot photos des pièces lol alors là c'est vraiment un client chiant et tout le monde est passé par là et si tu l'envoi chier même gentiment il te prendra tjs pour un loseur :) donc t'essaye de voir pour faire même si tu sais que c'est idiot car je lui ai deja fait un configurateur générale mais il veux absolument un wall pour montrer a ses clients toutes les variantes que tu pourra faire avec ta montre quand tu aura choisie tes couleurs :)

mais si tu me dis que l'AS3 n'aime pas la récursivité c'est plus ça qui me fait peur :s

mais merci pour tes conseils :)



Voir le messageDldler, le 09 November 2011 - 22:38 PM, dit :

Bon, il y a quand même un moment ou il faut être pro, non ?
Les clients ne sont pas stupides.

La réalité de ton truc :
6 pièces, 10 couleurs pour chaque : ça fait en réalité exactement 1.000.000 variantes.
10*10*10*10*10*10

Si tu fais un jpeg pour chaque, un jpeg de 5Ko, c'est déjà peu.
5 ko * 1.000.000 = 5 Go de données.
Il faut, à un moment ou un autre, les stocker.
Soit généré une fois sur le serveur… ?
Autant de fois que de visite sur le poste du client ?

Sur le serveur :
A raison de un dixième de secondes de transfert pour 5Ko, cela représente déjà : 27 heures de temps de chargement…
Combien de clients vont attendre 27 heures devant leur écran pour choisir une montre ? Aucun.
Combien va coûter l'hébergement d'un site de 5Go ? La bande passante ? Très cher.

Chez le client :
génération des images, là, pas de compression jpeg. Poids d'une image 100 pixels par 100 pixels (et c'est peu) : 30 ko. Poids total ? 30 Go. Stockés en mémoire vive ? Temps de traitement ? 6 jours. Nombre de clients ? Toujours zéro.
Evidemment, tout peut s'optimiser. Mais a quel coût en développement ? Et tu vas optimiser de combien ? Passer de 27 heures à 30 minutes ? Combien de clients attendrons 30 minutes ? Zéro.

Alors ton client, il ne veut pas un hébergement très cher.
Il ne veut pas zéro clients
Il ne veut pas un développement très cher.

A toi de lui expliquer, ça fait partie de ton boulot.
Sinon, tu lui dit que tu peux, que ça ne sera pas viable, mais tu peu.
Par contre, tu lu ifait un devis pour cette option : prix à l'image.
10 ctms par image. C'est pas cher.
Un tiers à la commande, si tu y arrives au bout d'un moins de travail, il te paye le reste. Sinon, tu gardes le premier tiers.

Passage en caisse : 1 tiers = 33.000 €
Que faites- vous mr le client ?

Comme tu l'as dit, un arbre te donneras toutes les solutions. Faut tout de même savoir aussi qu'ActionScript n'est pas du tout du tout bon en récursivité. Et pour un arbre… :(

Donc, maintenant, ton problème n'est pas un problème actionscript, ni d'autre langage de toute façon et nous ne pouvons pas te donner un code miracle.
Ce que tu dois faire, c'est t'armer de courage, affronter ton client.
Pour cela, imagine une autre solution, viable, en cherchant à produire le même avantage pour l'utilisateur (variété + aléatoire) pour être constructif.
Plus les arguments chiffrés ci-dessus, ça devrait le faire. Personne n'est stupide, et je n'ai jamais vu de client qui soit insensible à un argument "zéro client".


#17 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 09 November 2011 - 23:37 PM

Voir le messagesilverd, le 09 November 2011 - 23:18 PM, dit :

car en fait l’hébergement c'est pas moi qui m'en occupe
Mauvais raisonnement : si le projet aboutit et qu'il est trop lourd, l'hébergeur aura beau jeu de dire que tu as mal fait ton travail et qu'un site de 5 Go, il a jamais vu ça de sa vie.



Voir le messagesilverd, le 09 November 2011 - 23:18 PM, dit :

3 sélecteurs de 12 couleurs et 5 parties
Si je comprends bien, ça fait plutôt :
12*12*12*3*3 = 15.552 variantes…

[EDIT] Honte sur moi, j'ma trompé !
Tu as 12 * 11 *10 = 1320 combinaisons de couleurs
Tu as 3 * 3 * 3 * 3 * 3 = 243 combinaisons de pièces en trois couleurs

Maxi : 320 760 (il y a des doublons et je n'ai pas le niveau en stat pour les calculer (ni le temps d'ailleurs))
[/EDIT]

466.560Ko d'utilisation en mémoire…
13 minutes pour la génération…


Voir le messagesilverd, le 09 November 2011 - 23:18 PM, dit :

si tu l'envoi chier même gentiment il te prendra tjs pour un loseur :)
1 - Le client te prendra encore plus pour un looser dans un mois quand tu abandonneras, et là, il aura raison
2 - Je n'envoie pas chier un client. Je met en avant mes connaissances et mon savoir faire à son service.
3 - Je chiffre mes propositions
4 - Qu'un client me prenne pour un looser m'indiffère

5 - Par contre, la solution alternative, moi je l'ai. Mais d'après toi elle vaut combien ?
2 heures de traitement image. 2 heures de développement.
La solution ne vient pas du code. Elle vient quand on pose le problème clairement.

#18 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 10 November 2011 - 00:26 AM

Oui tu as raison :)
ben en fait j'avais prévu un wall comme ce qu'on voit sur certain site avec un produit avec différentes variantes de couleurs et il a changé avec le choix de sélecteur (comme pour ma 3d :)) donc je chiffre oui mais bon si c'est faisable j'essaye de voir et vu que j'ai fait déjà le premier configurateur qui fait 2Mo :)
Moi non plus j'envoi chier le client mais abandonner pour proposer une autres solutions c'est un peu envoyer chier pour moi mais je m'exprime mal parfois :)
la solution alternative c'est quoi ? :) a part de faire toute les variations au préalable ou changer de projet :)
et pour info je fais ce projet pour la gloire là car je suis déjà dans les choux niveau chiffrage avec la 3d qui était pas prévue mais bon j'abandonne pas sans essayer :) et je fais ça pour un ami donc pas super :s



Voir le messageDldler, le 09 November 2011 - 23:37 PM, dit :

Mauvais raisonnement : si le projet aboutit et qu'il est trop lourd, l'hébergeur aura beau jeu de dire que tu as mal fait ton travail et qu'un site de 5 Go, il a jamais vu ça de sa vie.




Si je comprends bien, ça fait plutôt :
12*12*12*3*3 = 15.552 variantes…

[EDIT] Honte sur moi, j'ma trompé !
Tu as 12 * 11 *10 = 1320 combinaisons de couleurs
Tu as 3 * 3 * 3 * 3 * 3 = 243 combinaisons de pièces en trois couleurs

Maxi : 320 760 (il y a des doublons et je n'ai pas le niveau en stat pour les calculer (ni le temps d'ailleurs))
[/EDIT]

466.560Ko d'utilisation en mémoire…
13 minutes pour la génération…



1 - Le client te prendra encore plus pour un looser dans un mois quand tu abandonneras, et là, il aura raison
2 - Je n'envoie pas chier un client. Je met en avant mes connaissances et mon savoir faire à son service.
3 - Je chiffre mes propositions
4 - Qu'un client me prenne pour un looser m'indiffère

5 - Par contre, la solution alternative, moi je l'ai. Mais d'après toi elle vaut combien ?
2 heures de traitement image. 2 heures de développement.
La solution ne vient pas du code. Elle vient quand on pose le problème clairement.

Modifié par silverd, 10 November 2011 - 00:28 AM.


#19 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 10 November 2011 - 09:36 AM

Pas trop le temps de développer. Pour bien expliquer il me faudrait autant de temps que pour le faire. Et le temps je ne l'ai pas trop (l'envie non plus, je reconnais).

Pour moi, ça passe par un outil qui ferait configurateur ET aléatoire en même temps, sur une grille 5 colonnes (1 par pièce) par 3 lignes (1 par couleur). Ça te laisse plus que 15 cases.

Au départ, dans chaque case, je n'afficherais que la pièce correspondant à la ligne et la colonne, pour des raisons didactico-ergonomiques.
Au clic sur une case, la pièce s'afficherait dans toutes les cases des autres lignes.
Et c'est finit pour le constructeur. C'est vraiment aussi simple que ça.

Pour l'aléatoire :
- aléatoire partiel : simuler un clic sur une case aléatoire du tableau : int(Math.random()*15)
- aléatoire total : simuler un clic sur une case au hasard dans chaque ligne.
Là aussi c'est super simple.

Et définitivement, je ne générerais aucune image. Je les laisserais s'afficher toutes seules. L'IDE est faire pour ça.
5 clips : un par forme.
Dans chacun : 12 images, une par couleur.
Ça te fait 70 images (puisque tu n'as en fait que 70 pièces) à générer dans photoshop, avec des scripts sur des réglages teinte saturation, ça prend rien comme temps.
Un simple gotoAndStop(numeroDeLaCouleur) règle le problème. C'est une technique de base.

PS : Mon grand-père maternel aurait profité de la situation pour citer un de ses dictons à l'humour totalement ésotérique : "Didier, tu gèles des coins pour des souhaits" (ne pas chercher à comprendre, hommage privé) ;-)

#20 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 10 November 2011 - 10:19 AM

Je suis d'accord avec Dldler, le client ne se rend pas compte du problème. Peut-être qu'en le mettant devant ces responsabilités il changera peut-être d'avis. Par exemple : lui demander de créer une référence unique par produit pour que tu puisses lui indiquer clairement quel variante est sélectionnée/commandée. Quand il va devoir créer ses 165324574 références, je pense qu'il changera d'avis. (Déjà fait, ça fonctionne :smile:)

Sinon, est-il possible de montrer à l’utilisateur 16 variantes seulement, avec un bouton lui permettant d'afficher d'autres variantes. Mais ça ne te fais plus que 16 variantes à calculer à chaque clique. Tu peux du coup le faire en mémoire.

Sinon, voici l'algorithme dont je parlai hier pour trouver toutes les possibilités (d'ailleurs ce n'est pas un arbre des possibilités, mais un algorithme de combinaison).

On part du principe que le nombre de couleurs est en fait limité par le nombre de sélecteurs. Ensuite, on construit un tableau à deux dimensions avec en x les combinaisons, et en y les sélecteur. La valeur étant la couleur. Pour 3 pièces et 2 sélecteurs (A,B) on obtient ce tableau là :

AAA
AAB
ABA
ABB
BAA
BAB
BBA
BBB

On remplit le tableau par colonne, on distribue la couleurs en x blocs de taille n :
Pour la 1re colonne, il y a 2 blocs de taille 4, pour la 2e colonne, il y a 4 blocs de taille 2 et pour la 3e colonne, il y a 8 blocs de taille 1.

J'ai ajouter des traces pour afficher le nombre de résultat et le tableau final. Mais attention, le nombre de combinaison explose très vite ! Amateur de crashage de navigateur et de player Flash, faites vous plaisir :mrgreen:.


//A faire varier
var selecteurs:uint = 3 ;
var pieces:uint = 4 ;

//Nombre de résultats
var numResults:uint = Math.pow(selecteurs, pieces) ;

//Tableau de stockage des résultats, tableau à 2 dimensions
var results:Array = new Array() ;
var i:uint ;

for (i = 0 ; i < numResults ; i++) {
  results[i] = new Array(pieces) ;
}

//Calcul des combinaisons
for (i = 0 ; i < pieces ; i++) {
       
  var tailleBlock:uint = Math.pow(selecteurs, pieces-(i+1)) ;
  var numBlock:uint = numResults / tailleBlock ;

  var currentSelecteur:uint = 0 ;
  var compteur:uint = 0 ;

  for (var k:uint = 0 ; k < numBlock ; k++) {
    for (var l:uint = 0 ; l < tailleBlock ; l++) {
      results[compteur][i] = currentSelecteur ;
      compteur++ ;
    }
                                               
    currentSelecteur++ ;
    if(currentSelecteur >= selecteurs) currentSelecteur = 0 ;
  }
}

trace("Nombre de résultats :", numResults) ;

for (i = 0 ; i < numResults ; i++) {
  trace(results[i]) ;
}

 

Pour afficher les résultats dans Flash, je ne ferai pas une image par combinaisons, mais une image transparente par pièce pour chaque couleur. Je superposerai les images de chaque pièce qui compose la montre pour obtenir le résultat visuel. Ce qui ne te fais plus que nbrCouleur*nbr de pièces PNG transparent à faire.

#21 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 10 November 2011 - 15:36 PM

Voir le messagedeuxsucres, le 10 November 2011 - 10:19 AM, dit :

Quand il va devoir créer ses 165324574 références, je pense qu'il changera d'avis. (Déjà fait, ça fonctionne :smile:)

Ha ha ! ça c'est futé ! :mrgreen:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#22 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 16 November 2011 - 10:27 AM

Merci a tous pour ces précieux conseils :)

j'ai parlé au client et vu le prix qu'il me paye et le fait que j'ai déjà fait de la 3d non facturé lol il a abandonné et a fait un truc plus simple :)

en tt cas merci :)

mtn je cherche comment faire un tableau de prix car en fonction du nombre de couleur au final je dois ajouter 20 ou 30e (genre si j'ai pris ma montre tout en blanc j'ai rien en plus mais si j'ai pris blanc plus bleu j'ajoute 20e) et je sais pas trop comment déterminer ça mais ça va me faire réfléchir encore :)


Voir le messageNataly, le 10 November 2011 - 15:36 PM, dit :

Ha ha ! ça c'est futé ! :mrgreen:


#23 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 November 2011 - 10:43 AM

:Hola:

Bravo.
J'espère que ça c'est bien passé et que tu as su le faire en mettant en avant ton savoir faire et ton analyse pertinente du problème.
En tout cas, j'aimerais que ça te rassures sur ta capacité à bien conseiller un client.

(et si j'ai le temps, je ferai quand même la mise en œuvre de la solution proposée) ;-) )


Et merci d'être passé nous le dire :)

#24 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 16 November 2011 - 11:06 AM

Merci
oui je sais mais je suis pas comme la plupart des programmeur as3, ingénieur a la base donc je tripatouille comme je dis :) donc pas simple d'avoir super confiance sans savoir toute les possibilités que propose l'as3
et de nos jours faut mieux pas perdre de client car la concurrence est dur :) surtout pour un graphiste a la base qui essaye de développer en ayant appris dans les livres :)

mais en tt cas merci et si tu as une idée pour un comparateur de couleur de fin je serais ravi de lire tes conseils :)


Voir le messageDldler, le 16 November 2011 - 10:43 AM, dit :

:Hola:

Bravo.
J'espère que ça c'est bien passé et que tu as su le faire en mettant en avant ton savoir faire et ton analyse pertinente du problème.
En tout cas, j'aimerais que ça te rassures sur ta capacité à bien conseiller un client.

(et si j'ai le temps, je ferai quand même la mise en œuvre de la solution proposée) ;-) )


Et merci d'être passé nous le dire :)


#25 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 16 November 2011 - 17:03 PM

Pour ton histoire de prix, le prix varie uniquement en fonction du nombre de couleur et/ou chaque couleur a un prix différent ?

Peux-tu nous expliquer un peu plus ? Un exemple de prix final.

#26 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 November 2011 - 17:36 PM

Utilise un dictionary avec un principe suivant :
pour chaque pièce :
---teste s'il y a une clé pour la couleur de la pièce
---s'il n'y a pas
---incrémente ton compteur
---crée la clé

Quleque chose comme ça :
var pieces:Array=[];

// Simulation d'attribution de couleurs à 5 pièces
for (var i:int=0;i<5;i++) {
        var o:Object=new Object();
        o.couleur=int(Math.random()*3);
        pieces.push(o);
        trace("La piece "+i+" est de couleur "+o.couleur);
}

// Décompte des couleurs
var nombreCouleurs:int=0;
var d:Dictionary=new Dictionary();
for each(var piece:Object in pieces)
{
        if(d[piece.couleur]==undefined) {
                d[piece.couleur]=piece;
                nombreCouleurs++;
        }
}
trace(nombreCouleurs);

A adapter évidemment avec la façon dont tu stockes la sélection de l'utilisateur

#27 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 16 November 2011 - 18:57 PM

Bonsoir

ben en fait la base est 140e
ensuite chaque couleur peut avoir un supplément compris dans le xml ça c'est bon :)
mais si tu prends par exemple 2 couleurs tu as le droit a 2 bracelet donc 20e en plus et si tu prends 3 couleurs différentes tu as donc 3 bracelet donc 30e en plus sur le prix final

voilà j’espère avoir été plus clair
je m'explique un peu bizarre parfois désolé

mais merci en tout cas pour tout :)




Voir le messagedeuxsucres, le 16 November 2011 - 17:03 PM, dit :

Pour ton histoire de prix, le prix varie uniquement en fonction du nombre de couleur et/ou chaque couleur a un prix différent ?

Peux-tu nous expliquer un peu plus ? Un exemple de prix final.


#28 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 November 2011 - 19:07 PM

Et hop.

Graphiquement c'est très laid mais le principe est là et je me suis bien amusé.
Le code est commenté mais je pense qu'il va être un peu ardu à assimiler.
Il doit pouvoir être simplifié mais ça ne sera pas pour tout de suite de ma part.


Assez ludique je crois, mais pas du tout didactique. Même moi qui sait exactement ce que fait un clic sur une des variantes je suis paumé et surpris à chaque fois par les changements. :mrgreen:

NB :
Les aléatoires sont non contrôlés, j'ai été au plus simple. Du coup, on peut retomber sur les même couleurs, les mêmes pièces…
Si tu ouvres le .fla, tu verras dans les trace que je connais le nombre de couleurs utilisées dans la sélection courante. Integré avec un Dictionay, comme montré plus haut.

Enjoy.

Fichier(s) joint(s)



#29 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 16 November 2011 - 20:02 PM

Cool :)
pas mal du tout :) mais c’était ça ma crainte c’était le fait d'avoir des doublons :)

mais merci en tt cas et ravi que ça t'ai plu :)

c'est ça qui me fait peur dans l'as3 c'est que c'est pas simple de faire des tests de concordances ou inversement si tu as trop de variables :) comme pour mon histoire de prix final :)

merci de votre patiente et de vos conseils très bénéfiques



Voir le messageDldler, le 16 November 2011 - 19:07 PM, dit :

Et hop.

Graphiquement c'est très laid mais le principe est là et je me suis bien amusé.
Le code est commenté mais je pense qu'il va être un peu ardu à assimiler.
Il doit pouvoir être simplifié mais ça ne sera pas pour tout de suite de ma part.


Assez ludique je crois, mais pas du tout didactique. Même moi qui sait exactement ce que fait un clic sur une des variantes je suis paumé et surpris à chaque fois par les changements. :mrgreen:

NB :
Les aléatoires sont non contrôlés, j'ai été au plus simple. Du coup, on peut retomber sur les même couleurs, les mêmes pièces…
Si tu ouvres le .fla, tu verras dans les trace que je connais le nombre de couleurs utilisées dans la sélection courante. Integré avec un Dictionay, comme montré plus haut.

Enjoy.


#30 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 16 November 2011 - 21:58 PM

Je ne sais pas si on parle bien des mêmes doublons.

Ça n'est pas une crainte les doublons, c'est un choix qui s'impose par la structure.
Il y a une fois le choix en cours par colonne, et les 2 déclis couleurs pour la pièce correspondant à la colonne.
C'est pour cela que les 5 variantes à fond blanc sont identiques.
Mais ça, c'est maîtrisé. C'est un choix qui découle de la logique.

Si ça concerne mon NB sur l'aléatoire, d'une, ça se corrige. De 2, il n'y a aucun doublon généré.
C'est quelques (2, 3) lignes de plus pour vérifier qu'on ne retombe pas sur la sélection actuelle. Rien de dramatique. Je ne l'ai pas fait parce que pousser les détails, ça obscurcit le code et ça gêne sa compréhension. Et aussi parce que j'y ai passé assez de temps comme ça :)

Par contre, je reconnais que j'espérais une expérience utilisateur plus pédagogique, mais ça ne le fais pas. Autant ne pas essayer d'expliquer comment ça marche et laisser les gens croire que tout cela est aléatoire.

Je pousserai quand même le truc avec un visuel qui ressemble à quelque chose, pour que le rendu sois moins psychédélique. Genre un avatar et je pense que ça servira à d'autres du coup.

#31 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 17 November 2011 - 11:11 AM

Super en tt cas )
et j'espère que ça t'a plu car j'aimerais pas te faire perdre du temps pour ça :)
moi ça me servira surement un jour car c'est super mais là pour ce projet j'ai juste a régler un soucis de flashvars :) et un système de suppléments sur le prix final :)

en tt cas merci a toi :)

Voir le messageDldler, le 16 November 2011 - 21:58 PM, dit :

Je ne sais pas si on parle bien des mêmes doublons.

Ça n'est pas une crainte les doublons, c'est un choix qui s'impose par la structure.
Il y a une fois le choix en cours par colonne, et les 2 déclis couleurs pour la pièce correspondant à la colonne.
C'est pour cela que les 5 variantes à fond blanc sont identiques.
Mais ça, c'est maîtrisé. C'est un choix qui découle de la logique.

Si ça concerne mon NB sur l'aléatoire, d'une, ça se corrige. De 2, il n'y a aucun doublon généré.
C'est quelques (2, 3) lignes de plus pour vérifier qu'on ne retombe pas sur la sélection actuelle. Rien de dramatique. Je ne l'ai pas fait parce que pousser les détails, ça obscurcit le code et ça gêne sa compréhension. Et aussi parce que j'y ai passé assez de temps comme ça :)

Par contre, je reconnais que j'espérais une expérience utilisateur plus pédagogique, mais ça ne le fais pas. Autant ne pas essayer d'expliquer comment ça marche et laisser les gens croire que tout cela est aléatoire.

Je pousserai quand même le truc avec un visuel qui ressemble à quelque chose, pour que le rendu sois moins psychédélique. Genre un avatar et je pense que ça servira à d'autres du coup.


#32 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 17 November 2011 - 11:25 AM

Le problème de supplément est reglé dans l'exemple avec la méthode du Dictionary décrite plus haut, puisque je trace le nombre de couleurs utilisées dans la sélection. Et si j'ai bien compris, le nombre de couleurs utilisées définit le coût supplémentaire…
- soit ça été trop vite et tu l'as pas vu, un petit retour en arrière s'impose ;)
- soit j'ai raté la consigne, mais dans ce as tu devrais te poser et tenter de l'exprimer à nouveau plus clairement
- soit tu n'as pas compris, ce qui n'est pas mal en soi, il faut jsute le dire et poser les bonnes questions…

Bonne continuation.

#33 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 17 November 2011 - 11:34 AM

Merci a toi aussi :)
oui je l'avais loupé :) mais en le testant il m'a dit que couleur est pas défini, mais je pense qu'il faut que je fasse un objet avec une variable couleur c'est ça non ? désolé j'ai pas trop utilisé les dictionnary et les objets mais comme ça j'apprends c'est cool merci :)

en tt cas merci pour tout c'est si rare les gens qui t'aide a part dans les dev j'ai l'impression :)


Voir le messageDldler, le 17 November 2011 - 11:25 AM, dit :

Le problème de supplément est reglé dans l'exemple avec la méthode du Dictionary décrite plus haut, puisque je trace le nombre de couleurs utilisées dans la sélection. Et si j'ai bien compris, le nombre de couleurs utilisées définit le coût supplémentaire…
- soit ça été trop vite et tu l'as pas vu, un petit retour en arrière s'impose ;)
- soit j'ai raté la consigne, mais dans ce as tu devrais te poser et tenter de l'exprimer à nouveau plus clairement
- soit tu n'as pas compris, ce qui n'est pas mal en soi, il faut jsute le dire et poser les bonnes questions…

Bonne continuation.


#34 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 17 November 2011 - 11:38 AM

Désolé

c'est ma faute j'ai fais une erreur :) j'avais mis des valeurs dans le tableau sans les définir
je vais analyser ca :)

merci encore

Voir le messageDldler, le 17 November 2011 - 11:25 AM, dit :

Le problème de supplément est reglé dans l'exemple avec la méthode du Dictionary décrite plus haut, puisque je trace le nombre de couleurs utilisées dans la sélection. Et si j'ai bien compris, le nombre de couleurs utilisées définit le coût supplémentaire…
- soit ça été trop vite et tu l'as pas vu, un petit retour en arrière s'impose ;)
- soit j'ai raté la consigne, mais dans ce as tu devrais te poser et tenter de l'exprimer à nouveau plus clairement
- soit tu n'as pas compris, ce qui n'est pas mal en soi, il faut jsute le dire et poser les bonnes questions…

Bonne continuation.


#35 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 17 November 2011 - 11:44 AM

Le code est un exemple. A toi de l'adapter en fonction d la façon dont tu stockes la composition de l'objet. Je ne sais pas comment tu l'as stocké. Une sorte de référence… Ce n'est pas forcément utile de restocker tes données de la même façon que moi.
Cette donnée, tu dois pouvoir y retrouver les couleurs utilisées dedans.

Pour les dictionnary ce sont des sortes de tableaux.
Petite comparaison.


Les tableaux utilisent des indices pour retrouver le contenu.
0, 1, 2, …
en faisant comme ceci :

var tableau:Array=[]; // La création du tableau
tableau[0]="Un exemple"; // Ici, je range le texte "Un exemple" dans la case zéro du tableau

trace(tableau[0]); // ici je récupère la valeur de la case zéro
 

Les Dictionary utilisent des clés pour retrouver le contenu.
N'importe quel objet peut servir de clé
En faisant comme ceci :

var dico:Dictionary=new Dictionary; // La création du dictionary
var clef:String = "Une clé"; // Un exemple de clé au format String, mais ça peut être un movieClip, une couleur,
dico[clef]="Ouvre la porte"; // Ici je range le texte "Ouvre la porte" dans la case 'clef' du dictionary

trace(dico[clef]); // Ici je récupère la valeur de la case 'clef'
 


#36 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 17 November 2011 - 11:53 AM

Donc là dans ton exemple
je perds la valeur du string clef "Une clé"
pour la remplacer par "Ouvre la porte"
si j'ai bien tout compris :)
Merci

Voir le messageDldler, le 17 November 2011 - 11:44 AM, dit :

Le code est un exemple. A toi de l'adapter en fonction d la façon dont tu stockes la composition de l'objet. Je ne sais pas comment tu l'as stocké. Une sorte de référence… Ce n'est pas forcément utile de restocker tes données de la même façon que moi.
Cette donnée, tu dois pouvoir y retrouver les couleurs utilisées dedans.

Pour les dictionnary ce sont des sortes de tableaux.
Petite comparaison.


Les tableaux utilisent des indices pour retrouver le contenu.
0, 1, 2, …
en faisant comme ceci :

var tableau:Array=[]; // La création du tableau
tableau[0]="Un exemple"; // Ici, je range le texte "Un exemple" dans la case zéro du tableau

trace(tableau[0]); // ici je récupère la valeur de la case zéro
 

Les Dictionary utilisent des clés pour retrouver le contenu.
N'importe quel objet peut servir de clé
En faisant comme ceci :

var dico:Dictionary=new Dictionary; // La création du dictionary
var clef:String = "Une clé"; // Un exemple de clé au format String, mais ça peut être un movieClip, une couleur,
dico[clef]="Ouvre la porte"; // Ici je range le texte "Ouvre la porte" dans la case 'clef' du dictionary

trace(dico[clef]); // Ici je récupère la valeur de la case 'clef'
 


#37 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 17 November 2011 - 12:44 PM

Non. Tu ne perds rien.
"Une clé" reste lié à la variable clef.
Si tu traces la variable, tu verras que sa valeur n'a pas changé.

Mais le dictionnaire mémorise un lien entre "Une clé" et "Ouvre la porte".
Quand tu utilises la clé "Une clé", le dictionary te renvoie "Ouvre la porte".

Un article complet par nataly : ici
Un article complet par Billyben : ici
[Edit : Rendu à Billyben ce que nataly n'a pas voulu lui prendre]

En prime, il y a d'autres façons de lier les données décrites dans cet article, a toi de voir s'il y en a une qui te correspond mieux.

#38 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 17 November 2011 - 13:42 PM

Ok je pense avoir mieux saisie :)
merci a toi je vais lire l'article de Nataly

en tt cas merci pour les explications tu es un très bon formateur :)


Voir le messageDldler, le 17 November 2011 - 12:44 PM, dit :

Non. Tu ne perds rien.
"Une clé" reste lié à la variable clef.
Si tu traces la variable, tu verras que sa valeur n'a pas changé.

Mais le dictionnaire mémorise un lien entre "Une clé" et "Ouvre la porte".
Quand tu utilises la clé "Une clé", le dictionary te renvoie "Ouvre la porte".

Un article complet par nataly : ici

En prime, il y a d'autres façons de lier les données décrites dans cet article, a toi de voir s'il y en a une qui te correspond mieux.


#39 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 17 November 2011 - 15:50 PM

Voir le messageDldler, le 17 November 2011 - 12:44 PM, dit :


Rendons à Billy ce qui est à Billyben :D

(j'ai eu vachement peur : 1) je ne me souvenais plus avoir écrit ça… 2) j'ai cru qu'un plaisantin s'était amusé à changer tous les noms de variables pour de l'anglais :mrgreen: )

Mais du coup, j'en ai profité pour mettre un lien vers ce chapitre ds le tuto tableaux :Hola:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#40 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 17 November 2011 - 16:08 PM

Oups.

Billy donc.

[pas taper]

#41 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 22 November 2011 - 10:54 AM

Merci a tous pour vos réponse et votre bonne humeur :)
j'ai encore une question si possible
j'ai des flashvars que je récupère bien mais le soucis c'est que je dois en même temps que les flashvars récupère le XML qui me donne des infos sur le stock et un identifiant mais quand je le lance j'ai une erreur dans le flash player de firefox car j'ai l'impression que le XML n'est pas chargé encore ce qui est bizarre vu qu'il est chargé au tout début
quelqu'un a t'il une solution ?

#42 silverd

    Ceinture Jaune

  • Members
  • PipPip
  • 20 messages

Posté 22 November 2011 - 11:01 AM

Merci a tous pour vos réponse et votre bonne humeur
j'ai encore une question si possible
j'ai des flashvars que je récupère bien mais le soucis c'est que je dois en même temps que les flashvars récupère le XML qui me donne des infos sur le stock et un identifiant mais quand je le lance j'ai une erreur dans le flash player de firefox car j'ai l'impression que le XML n'est pas chargé encore ce qui est bizarre vu qu'il est chargé au tout début
quelqu'un a t'il une solution ?

Voir le messageDldler, le 17 November 2011 - 16:08 PM, dit :

Oups.

Billy donc.

[pas taper]




1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)