Devoir de Philosophie

analyse linéaire

Publié le 18/06/2023

Extrait du document

« ### Jeu de puissance 4 - TP de NSI à faire seul ou à deux ### ### NOMS prénoms: Laulanet Capucine / Ridet Charly ### ############################################################## # La grille de jeu est formée de 42 cases sur 6 lignes et 7 colonnes. # Deux joueurs empilent à tour de rôle un pion jaune ou rouge. # Le but du jeu est d'aligner 4 pions rouges ou jaunes, horizontalement, verticalement ou en diagonale # "_" signifie que la case est vide, "R" signifie un pion rouge, "J" un pion jaune ### Exemples de grilles de jeu (vide au départ) sous forme de liste de listes grille_jeu = grille_test [ ['_', ['_', ['_', ['_', ['_', ['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_'], '_'], '_'], '_'], '_'], '_']] = [ ['_', ['_', ['_', ['_', ['_', ['_', '_', '_', '_', '_', 'J', 'R', '_', '_', '_', 'J', 'J', 'R', '_', '_', 'R', 'J', 'R', 'R', '_', '_', '_', 'J', 'J', 'J', '_', '_', 'R', 'R', 'R', 'R', '_'], '_'], '_'], 'R'], 'R'], 'R']] grille_complete = [ ['R', ['J', ['J', ['R', ['J', ['J', 'R', 'J', 'J', 'R', 'J', 'R', 'J', 'J', 'R', 'J', 'J', 'J', 'R', 'R', 'R', 'J', 'R', 'R', 'J', 'J', 'J', 'R', 'J', 'J', 'J', 'R', 'R', 'J', 'R', 'R', 'J'], 'R'], 'J'], 'R'], 'R'], 'J']] # pour afficher une grille quelconque def afficher(G:list): """affiche le contenu de la grille sans crochets ni virgules Entrée : une grille (liste de listes) Sortie: Rien """ print(0,1,2,3,4,5,6) for ligne in G: print(*ligne) # Question 1 : echauffement ### que vaut grille_test[2][5] ? "R" ### que vaut grille_test[0][6] ? "_" ### que vaut grille_test[5][4] ? "J" # question 2 : compléter la fonction nbre_cases_vides def nbre_cases_vides(G:list, col:int)->int: """compte le nombre de cases vides dans une colonne d'une grille donnée Entrées : Liste G + numéro de colone (entier) Sortie : Nombre de cases vide (entier) """ cpt = 0 for lig in range(5,-1,-1): if G[lig][col]=='_': cpt += 1 return cpt assert assert assert assert assert assert assert assert assert assert assert # on parcourt toutes les lignes en partant du bas nbre_cases_vides(grille_test,0)== 6 nbre_cases_vides(grille_test,1)== 4 nbre_cases_vides(grille_test,2)== 3 nbre_cases_vides(grille_test,3)== 2 nbre_cases_vides(grille_test,4)== 3 nbre_cases_vides(grille_test,5)== 2 nbre_cases_vides(grille_test,6)== 3 nbre_cases_vides(grille_complete,0)== 0 nbre_cases_vides(grille_complete,6)== 0 nbre_cases_vides(grille_jeu,0)== 6 nbre_cases_vides(grille_jeu,1)== 6 #question 3 : compléter la fonction empiler_pion pour qu'elle place un pion de couleur dans la bonne case, dans une colonne donnée def empiler_pion(G:list,couleur:str,col:int): """ La fonction sert a placé un pion de couleur dans la bonne case,dans la colonne demander. Entrées : G est une liste de listes, couleur vaut 'R' ou 'J' (la couleur du pion), col est un entier entre 0 et 6 sortie : Rien """ ##i = nbre_cases_vides(G,col)->int: if i != 0: G[i-1][col] = couleur #question 4 : définir une fonction pleine qui renvoie True si aucune case n'est vide dans une grille donnée, et False sinon def pleine(G:list)->bool: """ La fonction renvoie False si au minimum un case est vide dans une grille donné et sinon il renvoie True. Entrée:liste(G) Sortie: bool """ cpt = 0 for lig in range(5,-1,-1): # on parcourt toutes les lignes en partant du bas if G[lig][col]=='_': cpt += 1 if cpt>=1: return True return False ### jeu de tests possible: ## assert pleine(grille_jeu)==False ## assert pleine(grille_test)==False ## aseert pleine(grille_complete)==True #question 5 : Compléter.... »

↓↓↓ APERÇU DU DOCUMENT ↓↓↓

Liens utiles