aboutsummaryrefslogtreecommitdiff
path: root/calculette_aoo/bin/main.ml
blob: 37d015b3696f8e8dabde9c5554e48238f19bf1e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
let cout_a = (800, 200, 100)
let cout_m = (110, 55, 35)
let cout_rm = (50, 40, 20)
let cout_pm = (5, 3, 1)
let cout_fm = (100, 50, 30)
let fm_oponent = 1
let n = 3
let ratio = Float.(to_int (pow 3.0 (of_int n)))

let print_arr arr =
  Format.printf "@[<v>%a@]@." (Format.pp_print_array Format.pp_print_int) arr

let () = print_arr (Aoo.Roll.build_frequencies n)

(* Calcule les probabilités de toucher contre les 10 prochains niveaux *)
let compare_result = Aoo.Roll.compare 9 1

let () =
  Format.printf "%.4f - %s\n"
    (compare_result |> Q.to_float)
    (compare_result |> Q.to_string)

let env : Aoo.Build.env =
  {
    cost_max = 1800
  ; max_tours = 5
  ; cout_sort = 8
  ; degat_sort = 6
  ; fm_oponent
  ; frequencies = Aoo.Build.buil_freq_table 9 fm_oponent
  }

(* Définition des caractéristiques *)
let a = Aoo.Carac.create 2 cout_a
let m = Aoo.Carac.create 5 cout_m
let rm = Aoo.Carac.create 7 cout_rm
let pm = Aoo.Carac.create 40 cout_pm
let fm = Aoo.Carac.create 9 cout_fm
let default = Aoo.Build.{ a; m; rm; pm; fm }
let score1 = Aoo.Build.score env default
let cost1 = Aoo.Build.cost default
let () = print_endline @@ Printf.sprintf "Score du build : %f" score1
let build3 = { default with fm = Aoo.Carac.incr ~step:1 fm }
let score3 = Aoo.Build.score env build3
let cost3 = Aoo.Build.cost build3
let () = print_endline @@ Printf.sprintf "Score du build : %f" score3
let () = print_endline @@ Printf.sprintf "%b" (score1 = score3)
let () = print_endline @@ Printf.sprintf "%b" (cost1 < cost3)

(*
   let () =
     let build =
       Aoo.Build.traverse env
         (Aoo.Build.cost default, Aoo.Build.score env default)
         (Aoo.Build.upgrade env default)
     in

     Aoo.Build.repr env Format.std_formatter build
*)