# loop through different p1 values and calculate our best guess each time
p1 = 0
for i in range(0, 19):
    p1 = p1 + 0.05
    diff = 1 - p1
    prob = float(diff) / 5
    p2 = prob
    p3 = prob
    p4 = prob
    p5 = prob

    for j in range(0, Nexp):
        ones = 0

        for k in range(0, Nroll):
            x = random.DiceRoll(p1, p2, p3, p4, p5)
            if (x == 1):
                ones = ones + 1
        cp1 = float(ones) / Nroll
        p1_true_arr.append(p1)
        p1_guess_arr.append(cp1)

        # fill our 2 slices
        if (abs(p1 - probA) < 0.00000008):
            sliceA.append(cp1)
        if (abs(p1 - probB) < 0.00000008):
            sliceB.append(cp1)

# plotting
plt.figure()
plt.hist2d(p1_true_arr, p1_guess_arr)
# user can input value for p1, experiment or measurement number
if "-prob1" in sys.argv:
    p = sys.argv.index("-prob1")
    prob1 = float(sys.argv[p + 1])
    if (prob1 > 0 and prob1 < 1):
        p1 = prob1
if "-Nexp" in sys.argv:
    p = sys.argv.index("-Nexp")
    Ne = int(sys.argv[p + 1])
    if Ne > 0:
        Nexp = Ne
if "-Nroll" in sys.argv:
    p = sys.argv.index("-Nroll")
    Nt = int(sys.argv[p + 1])
    if Nt > 0:
        Nroll = Nt

# the remaining dice roll outcomes are given equal probability
diff = 1 - p1
prob = float(diff) / 5
p2 = prob
p3 = prob
p4 = prob
p5 = prob

# output rolls
for e in range(0, Nexp):
    for t in range(0, Nroll):
        print(random.DiceRoll(p1, p2, p3, p4, p5), end=" ")
    print(" ")