Actually, lots of articles mentioned Dice Roller for beginner’s python project. It involves the following functions/statements:
I chose this as my No.1 project, because I roll dices a lot in Dungeons and Dragons and it could be utilized in other projects that I might develop in the future.
Before digging into code, I should mention that Python scripts that involve user input cannot be run directly through code editor like Atom as it can only generate output. To run those Python scripts, we need to use Terminal.
# navigate to working folder cd /Users/username/Documents/ # run python file test.py Python3 test.py
Here is the code for Dice Roller.
#import random module import random min = 1 max = 6 reroll = "yes" #roll dice again? while reroll =="yes" or reroll == "y": print("Rolling the dice...") print("The values are....") print(random.randint(min, max)) reroll = input("Roll the dice again? ")
I made some changes to accomodate uppercase input.
#original code: while reroll =="yes" or reroll == "y": #accomodate both upper and lower case: while reroll.lower() in ("yes","y"):
Note that in the original code, the
while loop will not run if the user input “Y” or “YES”. The updated version is able to accomodate more scenarios as we extend to case-insensitive cases.
In the Dice Roller, the result is generated by
random.randint, which is a random function that returns a random integer
a <= N <= b. If we want to make a D20 roller –– D&D players should be familiar with it –– we can change
max = 6 to
max = 20.
It’s another random function that returns a randomly element, but the result is selected from a
range(start, stop, step).
Another equivalent is
choice(range(start, stop, step)), but doesn’t actually build a range object.
Note the difference with the former one is that it’s not an
include relation. If we would like achieve the same result, the code would be