Profil de mike251

Date d'inscription : 24.11.2012
Commentaires : 1
Fan Points : 3

Dernières activités de mike251

le 24.11.2012 à 01:18

Comme je n'aime pas le japonais, j'ai écris un petit script en VBA (à lancer depuis Excel) pour résoudre le cadran (si vous voulez vous amuser..., ça a marché pour moi):

Sub FF13_2_Resolution_du_cadran()
Dim i As Integer 'Variable incrémentale
Dim NumberOfCases As Integer
Dim Clock(10) As Integer '10 représente la taille du tableau à utiliser pour un cadran de 11 cases (0 représente la 1° case à gauche, il faut ensuite tourner dans le sens das aiguilles d'une montre)
Dim PathToFollow(11) As Integer 'Le chemin à suivre. Quand le script à donner une réponse, il affiche une boite de dialogue avec la séquence des cases à suivre de 0 au nombre de cases moins 1
Clock(0) = 5 '(Valeur inscrite sur la case Ex.:5)
Clock(1) = 4 '(Valeur inscrite sur la case Ex.:4)
Clock(2) = 1 '(Valeur inscrite sur la case Ex.:1)
Clock(3) = 3 '(Valeur inscrite sur la case Ex.:3)
Clock(4) = 5 '(Valeur inscrite sur la case Ex.:5)
Clock(5) = 5 '(Valeur inscrite sur la case Ex.:5)
Clock(6) = 4 '(Valeur inscrite sur la case Ex.:4)
Clock(7) = 1 '(Valeur inscrite sur la case Ex.:1)
Clock(8) = 5 '(Valeur inscrite sur la case Ex.:5)
Clock(9) = 5 '(Valeur inscrite sur la case Ex.:5)
Clock(10) = 3 '(Valeur inscrite sur la case Ex.:3)
'The result is 4 9 3 0 6 2 1 5 10 7 8
' 5 6
' 4 7
' 3 8
' 2 9
' 1 10
' 0 11

i = 0
NumberOfCases = 11 'Egal au nombre de cases dans le cadran (à modifier selon la taille du cadran)
While i < 11 And PathToFollow(1) = 0
PathToFollow(0) = FF13_2_Resolution_du_cadran_Fonction_Recursive(Clock(), PathToFollow(), i, 0, NumberOfCases)
i = i + 1
Wend
If PathToFollow(1) <> 0 Then
MsgBox PathToFollow(0) & " " & PathToFollow(1) & " " & PathToFollow(2) & " " & PathToFollow(3) & " " & PathToFollow(4) & " " & PathToFollow(5) & " " & PathToFollow(6) & " " & PathToFollow(7) & " " & PathToFollow(8) & " " & PathToFollow(9) & " " & PathToFollow(10)
End If
End Sub

Function FF13_2_Resolution_du_cadran_Fonction_Recursive(Clock() As Integer, PathToFollow() As Integer, SelectedCase As Integer, Sequence As Integer, NumberOfCases As Integer) As Integer
Dim FirstClockNeedle As Integer
Dim SecondClockNeedle As Integer
Sequence = Sequence + 1
ValueCase = Clock(SelectedCase)
Clock(SelectedCase) = 0
If SelectedCase - ValueCase < 0 Then
FirstClockNeedle = SelectedCase - ValueCase + NumberOfCases
Else
FirstClockNeedle = (SelectedCase - ValueCase) Mod NumberOfCases
End If
SecondClockNeedle = (SelectedCase + ValueCase) Mod NumberOfCases
If Sequence <= NumberOfCases Then
If Not (Clock(0) = 0 And Clock(1) = 0 And Clock(2) = 0 And Clock(3) = 0 And Clock(4) = 0 And Clock(5) = 0 And Clock(6) = 0 And Clock(7) = 0 And Clock(8) = 0 And Clock(9) = 0 And Clock(10) = 0) Then
If Clock(FirstClockNeedle) <> 0 Then
PathToFollow(Sequence) = FF13_2_Resolution_du_cadran_Fonction_Recursive(Clock(), PathToFollow(), FirstClockNeedle, Sequence, NumberOfCases)
End If
If Clock(SecondClockNeedle) <> 0 Then
PathToFollow(Sequence) = FF13_2_Resolution_du_cadran_Fonction_Recursive(Clock(), PathToFollow(), SecondClockNeedle, Sequence, NumberOfCases)
End If
End If
If Not (Clock(0) = 0 And Clock(1) = 0 And Clock(2) = 0 And Clock(3) = 0 And Clock(4) = 0 And Clock(5) = 0 And Clock(6) = 0 And Clock(7) = 0 And Clock(8) = 0 And Clock(9) = 0 And Clock(10) = 0) Then
Clock(SelectedCase) = ValueCase
Sequence = Sequence - 1
Else
FF13_2_Resolution_du_cadran_Fonction_Recursive = SelectedCase
Sequence = Sequence - 1
End If
End If
End Function 

 

 

 

 

 

 

> Liste des membres