Skip to content
Extraits de code Groupes Projets
Valider ea33ec01 rédigé par Loïc DUBARD's avatar Loïc DUBARD :speech_balloon:
Parcourir les fichiers

correction quelle_roue donne un meilleur résultat

parent 20bf31da
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Aucun aperçu pour ce type de fichier
Aucun aperçu pour ce type de fichier
Aucun aperçu pour ce type de fichier
......@@ -102,14 +102,19 @@ let rec make_liste_index l c = match l with
(*[quelle_roue l c] renvoi l'indice de la roue (dans la liste de roues l) avec laquelle il est plus rapide de traduire c*)
let quelle_roue l c =
let quelle_roue l c index_init =
let index = (char_to_index 0 c roue) in
let m = (if index < 14 then index else 27-index) in
let test = char_to_index 0 c (List.nth l index_init) in
let test_opt = (if test < 14 then test else 27-test) in
if (test_opt <= m) then index_init else
(*i doit être 0 lors du premier appel*)
let rec index_min m n i r = match r with
| [] -> n
| e::t -> if e < 14 then (if e < m then (index_min e i (i+1) t) else index_min m n (i+1) t)
else (if 27-e < m then (index_min (27-e) i (i+1) t) else index_min m n (i+1) t)
in
index_min (char_to_index 0 c roue) 0 (List.length l) (make_liste_index l c);;
index_min m (List.length l) 0 (make_liste_index l c);;
(*[tourner_list m c n i l] tourne n fois dans le sens de c la roue d'indice i dans la liste de roues l*)
......@@ -123,7 +128,7 @@ let rec tourner_list c n i l =
(*[commande_phase2 (i,l) roue] traduit le message l en commande en selectionnant pour chaque lettre la bonne antenne*)
let rec commande_phase2 (i,l) liste_roues index_init = match l with
| [] -> ""
| e::t -> let index = quelle_roue liste_roues e in
| e::t -> let index = quelle_roue liste_roues e index_init in
let r = (if index = (List.length liste_roues) then roue else (List.nth liste_roues index)) in
let (s,n) = translate e r in
let sres = (if index = index_init then s else (String.concat "" ("S"::(string_of_int index)::s::[])) ) in
......
Aucun aperçu pour ce type de fichier
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter