Based off my Java Petals Around the Rose, I thought it would be good practice to write something again in a different language.
Because the language is Python, I named it "Pythons Around the Rose", and everywhere in my code, the word "rose" would be replaced with "python".
Also, "Potentate" is replaced with "Pytentate".
Code:
import random def display_help(): example = get_dice_result() print("The name of the game is Pythons Around the Rose.", "The name is important. I will roll five dice,", "and I will tell you how many pythons there are.", "\nFor example:", sep = "\n") print_dice(example) print("Will result in ", get_answer(example), ".", sep = "") print("\nIf you answer correctly 8 times in a row, you", "will be declared a \"Pytentate of the Rose\".", sep = "\n") def play(): streak = 0 while True: dice = get_dice_result() if play_once(dice): streak += 1 else: streak = 0 if streak == 8: print('You are now declared a "Pytentate of the Rose"!') break; print("Thank you for playing!") def get_dice_result(): result = [get_dice_roll(), get_dice_roll(), get_dice_roll(), get_dice_roll(), get_dice_roll()] return result def get_dice_roll(): return random.randrange(6) + 1 def play_once(results): print("How many pythons here?") print_dice(results) guess = get_guess() answer = get_answer(results) if guess == answer: print("Correct!") return True print("Incorrect. The answer is ", answer, ".", sep = "") return False def get_guess(): guess = 0 valid = False while not valid: try: guess = int(input("> ")) valid = True except: print("\nOops! That is not a number. Try again: ") return guess def get_answer(dice): answer = 0 for i in dice: if i == 3: answer += 2 elif i == 5: answer += 4 return answer; def print_dice(dice): rows = ["|", "|", "|"] for i in dice: if i == 1: rows[0] += " |" rows[1] += " . |" rows[2] += " |" elif i == 2: rows[0] += " . |" rows[1] += " |" rows[2] += " . |" elif i == 3: rows[0] += " . |" rows[1] += " . |" rows[2] += " . |" elif i == 4: rows[0] += " . . |" rows[1] += " |" rows[2] += " . . |" elif i == 5: rows[0] += " . . |" rows[1] += " . |" rows[2] += " . . |" elif i == 6: rows[0] += " . . |" rows[1] += " . . |" rows[2] += " . . |" print(rows[0], rows[1], rows[2], sep = "\n") def main(): display_help() play() if __name__ == '__main__': main() I wrote it to be based of standard conventions as close as possible. Because I'm a Java person, I might have added a ; somewhere in my code, or perhaps accidentally forgot to follow conventions somewhere.