TP carnet d’adresses v3 – suite … et fin ?

Question « flash » :

  1. Comprendre ce code.
  2. Le modifier pour que ça « rebondisse » sur tous les murs.
import pygame
from pygame.locals import *
pygame.init()

fenetre=pygame.display.set_mode((640, 480))
pygame.display.set_caption("Une balle ?")

clock = pygame.time.Clock()

continuer=True

# un rectangle que nous déplacerons ...
hitbox = pygame.Rect(80, 120, 40, 40)
# ... à l'aide de ce vecteur
vecteur = [10, 10]

while continuer :
    # déplcement du rectangle
    hitbox.move_ip(vecteur)

    # collision avec un mur ?
    if hitbox.right > 640:
        vecteur[0] *= -1
    if hitbox.bottom > 480:
        vecteur[1] *= -1

    # le fond
    fenetre.fill((0, 160, 160))

    # dessiner le cercle
    x, y = hitbox.centerx, hitbox.centery
    pygame.draw.circle(fenetre, (255, 255, 255), (x, y), 20, 1)

    #mettre à jour l'affichage
    pygame.display.flip()    

    #30 images par seconde
    clock.tick(30)

    #gestion des événements
    for event in pygame.event.get():

        if event.type==QUIT: #la croix en haut à gauche
            continuer=False

        elif event.type==MOUSEBUTTONUP : # clic de souris
            hitbox.centerx, hitbox.centery = event.pos

pygame.quit()

TP carnet d’adresses v3 – fin

On reprend là où on s’est arrêté lundi et on propose les deux fonctions suivantes :

def recherche(chaine):
    reponse = []
    for truc in repertoire :
        if truc == chaine :
            reponse.append(truc)
        else :
            for machin in repertoire[truc].values():
                if chaine in str(machin):
                    reponse.append(truc)
    return reponse
def sauvegarde() :
    # ouverture du fichier en ecriture : 'w'
    with open("contacts.csv", 'w') as fichier:
        for nom in repertoire:
            # conversion de l'age en chaine de caractere
            ligne = nom
            ligne += ';' + str(repertoire[nom]['age'])
            ligne += ';' + repertoire[nom]['tel']
            ligne += ';' + repertoire[nom]['adresse']
            fichier.write(ligne + '\n')
        fichier.close()

Travail :

  • Tester et commenter chacune de ces lignes
  • Commencer les exercices pour lundi :
    • créer ces listes en compréhension (oublié ? Voir exemple 3 de ce cours) :
      • [10, 8, 6, 4, 2, 0, -2, -4, -6, -8]
      • ['a', 'c', 'e', ... , 'y']
    • créer ce dictionnaire : {'A' : 0, 'B' : 1, ... , 'Z' : 25}
      • avec une boucle for i in range(26):,
      • en compréhension.
    • créer une fonction mot_de_passe(a, b, c) qui renvoie un mot de passe aléatoire constitué de
      • a lettres minuscules,
      • b lettres majuscules,
      • c chiffres.

Deuxième heure : ProjetLaby

Pour tous les groupes, m’envoyer à

marchantchristophe arobase gmail point com

votre code en l’état actuel avec des questions éventuelles d’ici demain !

3 réflexions au sujet de « TP carnet d’adresses v3 – suite … et fin ? »

  1. Bonjour, ici groupe flashlight

    Vous aviez dit en classe qu’il fallait finir le code pour ce soir et l’envoyer ensuite. Le problème étant que notre flash light fonction avec des positions x/y mais nous avons des difficultés avec le passage « hitbox », j’ai même l’impression que plus je modifie mon code, plus je m’enfonce et moins il fonctionne…

    Je n’ai pas de question en particulier seulement si quelqu’un pouvait me donner quelques indications ou une aide pour ce changement, cela m’aiderait beaucoup (j’arrive à bouger le personnage mais il traverse les murs…)

    MERCI BEAUCOUP 😢

    • BooooojjjjoooouuuUUuuuurrr !
      C’est bien l’objet de ma requête, récupérer codes et images pour faire le point et vous aider à avancer.
      Le groupe « déplacement » a effectivement migré en « hitbox » et « collisions », synchroniser avec le calque, tout comme le score, c’est la tâche qui nous attend ! 💡
      Envoyez tel quel, je pourrai mieux vous répondre.
      Bonne fin de journée :mrgreen:

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.