Une partie de flechettes avec moi ?

jmh1

XLDnaute Occasionnel
Bonsoir à tous,

Etant joueur de fléchettes (501 double out pour les initiés) et en ayant marre d'écrire et de compter les résultats, je me décide à réaliser un fichier Excel pour le comptage des points de manière assez sympa.

J'ai récupéré à droite et à gauche des bouts de code mais pour l'instant, je suis bloqué sur la manière d'opérer.

Pour ceux qui ne connaisse pas ce jeu, la cible est divisé en 20 parties numérotées de 1 à 20 plus le centre rouge qui vaut 50 points et le centre vert qui vaut 25 points. Chaque partie numérotée est elle-même divisée en 4 parties, 2 qui valent le nombre indiqué, 1 qui vaut le double et enfin une dernière qui vaut le triple.

Dans mon fichier, j'ai créé un USF avec une image de la cible, lorsque je clique sur l'image, un point apparait au niveau du pointeur et les coordonnées de ce point sont enregistrés dans la feuille 1.

J'en arrive à ma problématique :
- Comment, avec ces coordonnées récupérer le nombre de points marqués dans la zone cliquée ?
- Y a-t-il une manière simple de le faire pour toutes les zones de la cible ?
- Est-il possible de changer le pointeur de la souris par une image de fléchette comme sur la feuille1 ?

Je joins mon fichier en exemple.

Merci de votre aide
 

Pièces jointes

  • Partie flechettes.xlsm
    150.2 KB · Affichages: 219

Dranreb

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Bonsoir.

Vous allez probablement avoir besoin de ça :
VB:
Public Const Pi = 245850922 / 78256779 ' Sin(Pi) = 1,22460635382238E-16
'              Tandis que Sin(3.14159265358979) = 32,3108510433268 E-16
Et de ça :
VB:
Function Atn2(ByVal X As Double, ByVal Y As Double, Optional ByVal ParDéfaut As Double = 0) As Double
Dim A As Double
If X = 0 And Y = 0 Then
   Atn2 = ParDéfaut
Else
   If Y < 0 Then X = -X: Y = -Y: A = 1 Else A = 0
   If X < Y Then Y = Y - X: X = X + Y: Y = Y - X: A = A + 0.5
   If Y <= X Then Atn2 = A * Pi + Atn(Y / X) _
     Else Atn2 = (A + 0.5) * Pi - Atn(X / Y)
   End If
End Function
 

jmh1

XLDnaute Occasionnel
Re : Une partie de flechettes avec moi ?

Bonsoir Dranreb

Le retour de la formule me donne #REF!

Pour la sélection des données de la formule, il faut bien que je renseigne ma coordonnée X et ma Coordonnée Y ?

Dans la ligne : If Y <= X Then Atn2 = A * Pi + Atn(Y / X) Else Atn2 = (A + 0.5) * Pi - Atn(X / Y)

que signifie Atn ??

Merci
 

Dranreb

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Atn2(X, Y) vous renverra l'angle en radians du rayon contenant le point X,Y par rapport au centre 0,0.
Il ne restera qu'a multiplier par le nombre de secteurs et diviser par Pi pour avoir déjà l'information angulaire permettant de taper dans un tableau de points gagnés. Pour l'autre indice dans ce tableau vous calculez d'après le rayon Sqr(X * X + Y * Y)

Remarquez si vous préférez le calculer en formules, la fonction ATAN2 existe dans Excel.
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Bonsoir à tous,

un essai pour le curseur fléchette (semble plus ludique que les arctan mais un peu galère quand même)
d'ailleurs il est noir et je sais pas pourquoi :D
 

Pièces jointes

  • Partie flechettes (2).xlsm
    151.8 KB · Affichages: 81

tototiti2008

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Re,

Visiblement VBA (et VB6) ne prennent en charge les fichier .cur (curseur) qu'en noir et blanc
Il faut leur donner un fichier .ico pour avoir de la couleur, mais dans ce cas on ne peut pas définir la pointe de la fléchette en active...
une version noir et blanc plus lisible
 

Pièces jointes

  • Partie flechettes (2) (1).xlsm
    153.6 KB · Affichages: 81

Dranreb

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Sauf erreur de ma part le score du secteur devrait se calculer comme ça :
VB:
S = Choose(Int(Atn2(X, Y) * 10 / Pi + 0.5) Mod 20 + 1, _
   6, 13, 4, 18, 1, 20, 5, 12, 9, 14, 11, 8, 16, 7, 19, 3, 17, 2, 15, 10)
Avec X et Y les coordonnées du point atteint par rapport à celles du centre de la cible.
Il ne restera plus qu'à fixer le score de la fléchette à l'aide d'affectations dans un Select Case Sqr(X * X + Y * Y) suivi de plusieurs Case Is < r: pour chaque valeur de r marquant une limite, le 1er r étant le rayon du disque central, le suivant de la couronne qui l'entoure, ensuite les autres zones où il suffira d'y affecter S multiplié par le facteur, doublement ou triplement.
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Bonsour® à tous
:rolleyes:
petit exercice pour le fun ...
Capture.jpg

nb :
les formules sont cachées derrière le bouton...
Vba ne sert que pour l'interactivité et archivage
:(
je ne suis pas arrivé à appliquer le fond transparent aux images des fléchettes... :(
 

Pièces jointes

  • flechettes-avec-moi.xlsm
    183.4 KB · Affichages: 80
  • Capture.jpg
    Capture.jpg
    72.3 KB · Affichages: 497

Dranreb

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Même avec BackStyle 0 - fmBackStyleTransparent ?
Remarque: en copiant l'image que j'avais joint et en la collant dans Microsoft Photo Editor, je m'aperçois que le fond transparent à disparu…
Je le re-joins zippé à tout hasard.
 

Pièces jointes

  • Flechette.zip
    3.4 KB · Affichages: 33
  • Flechette.zip
    3.4 KB · Affichages: 28
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Une partie de flechettes avec moi ?

Voila.
Fait avec Photo Editor, qui à disparu des version récentes de Windows je crois. C'était sans doute trop bien de la part de son auteur vu son niveau qui dégringole à vu d’œil.
 

Pièces jointes

  • Flechette.zip
    6.8 KB · Affichages: 29
  • Flechette.zip
    6.8 KB · Affichages: 30

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 190
Membres
112 679
dernier inscrit
Yupanki