##############################################################################
#                            Pyramide de nombres                             #
##############################################################################

import time as t
import random as rd

p_exemple=[[4,2,8,3,2,9],[1,5,2,6,1],[5,8,9,3],[2,4,6],[7,4],[3]]

## Question 1


## Question 2

def p_a(n):
    return [[rd.randint(0,9) for j in range(n-i)] for i in range(n)]

def affiche_p(p):                       # Fonction affichant la pyramide
    nb_eta=len(p)                       # Nombre d'étage de la pyramide
    nb_esp=len(p)-1                     # Nombre d'espacement pour mettre le sommet au centre
    for i in range(nb_eta-1,-1,-1):     # Parcours des étages du sommet (étage n) à la base
        for k in range(nb_esp):         # Placement horizontal du début du ième étage
            print('  ',end='',sep='')   # Affichage d'un espacement sans retour à la ligne
        for nbr in p[i]:                # Parcours d'un niveau de la pyramide
            if nbr<10:                  # Pour un nombre à un seul chiffre
                print(' ',nbr,'  ',end='',sep='') # affiche 1 espace le nombre et 2 espaces
            elif nbr<100:               # Pour un nombre à deux chiffres
                print(' ',nbr,' ',end='',sep='')  # affiche 1 espace le nombre et 1 espace
            else:                       # Pour un nombre à trois chiffres (ou plus)
                print(nbr,' ',end='',sep='')    # affiche le nombre et 1 espace
        print('')               # retour à la ligne
        nb_esp-=1               # Décalage de l'étage inférieur (1 espacement de moins)

## Question 3

# def somme_et_chemin_naif(p):






















## Question 4

def test_naif(n):
    p=p_a(n)
    print('Voici la pyramide aléatoire de :',n,'étages')
    affiche_p(p)
    t1=t.time()
    S,C=somme_et_chemin_naif(p)
    t2=t.time()
    print('La somme maximale pouvant être obtenue est de :',S)
    print('Les directions à prendre pour obtenir cette somme sont :')
    print(C)
    print('La résolution a été faite en',t2-t1,'secondes')

## Question 5

# def pyramide_des_sommes(p):             # Fonction construisant la pyramide des sommes maximales










## Question 6

# def somme_et_chemin(p):






















## Question 7


## Question 8

# def somme_et_chemin_memoisation(p):
