16-is-dead/user_interface.py

83 lines
1.9 KiB
Python

"""This module has all the building blocks for a nice 16-is-dead user interface"""
__author__ = ""
__credits__ = ""
__email__ = ""
import time
import os
def dice_animation():
'''
This functions prints the rolling dice animation
return: None
'''
for i in range(4):
plz_print('dice_animation1.txt')
time.sleep(0.25)
clear()
plz_print('dice_animation2.txt')
time.sleep(0.25)
clear()
def plz_print(filename):
'''
This functions reads a file line by line
and prints it in on call.
return: None
'''
with open(filename, 'r', encoding='utf8') as f:
bigstring = ""
for line in f:
bigstring = bigstring + line
print('\n' + bigstring)
def clear():
'''
This functions clears the terminal screen,
it distinguishes between Linux and Windows
But it does not work in pycharm or idle.
return: None
'''
if os.name == 'nt': # for windows
os.system('cls')
else: # for linux, mac
os.system('clear')
def pling(current_roll):
'''
This functions prints the animation of the dice result
return: None
'''
with open('pling_animation', 'r', encoding='utf8') as f:
big_string = ""
animations = []
scan_lines = ''
for line in f:
big_string = big_string + line
if line[0] == '$':
animations.append(big_string[:-2])
big_string = ''
dice_result = animations[current_roll[0] - 1]
for line in dice_result:
scan_lines += line
if line[0] == '#':
clear()
print(scan_lines[:-2])
time.sleep(0.5)
scan_lines = ""
def the_end():
'''
This functions prints the end screen.
return: None
'''
print("--------------------------\n\/\/\/\ SPIELENDE /\/\/\/\n--------------------------")