Python Forum

Full Version: Random Dice roll program
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello,

Goal: Create a simple program that recreates a table-top game mechanic; rolling dice with a varying number of sides.

Python: Using 3.5.2

Problem: The code pasted below seems to work fine, on the surface. However, if I run it using an input of "2d2", it will only ever produce a result of 3 or 4. I'm worried I'm missing something that is preventing the random generator from using the lowest number (1).

Code:
# Allow a user to input a dice in the classic '2d6' format
# (which would indicate 2 dice with 6 sides) and create the right random dice roll
import random

while True:
    roll = input("What do you want to roll?")
    if roll == "exit":
        break
    else:
        # split the string at d. So '2d6' becomes ['2', '6']
        splitRoll = roll.split("d")
        # convert the string to an integer. so ['2', '6'] becomes [2,6]
        intRoll = [int(i) for i in splitRoll]
        # set (or reset) result to 0
        result = 0
        # create random numbers for each dice rolled and add them together
        for i in range(intRoll[0]):
            result += random.randint(1, intRoll[1])
        print (result)
        result = 0
Prints a 2 for me (eventually).