Accueil
Portfolio
Portfolio Details
Python
Les Normes en Python
Les Variables en Programmation
Codes
Pygame
Concepts
Blog Single 1
Blog Single 2
Blog single 3
Jeux
Alphabet
Contact
# Lifestyle
# Travel
# Business
# Space
# Food
Subscribe
Accueil
Portfolio
Portfolio Details
Python
Les Normes en Python
Les Variables en Programmation
Codes
Pygame
Concepts
Blog Single 1
Blog Single 2
Blog single 3
Jeux
Alphabet
Contact
© 2023 Created by
Jthemes.com
Python
import pygame from pygame.locals import * import random import time # — taille de la fenetre DIMENSIONX = 800 DIMENSIONY = 600 # — correspondance entre le code du clavier et la lettre CODE_CLAVIER = {"A" : 113, "B" : 98 , "C" : 99, "D" : 100, "E" : 101, "F" : 102, "G" : 103, "H" : 104, "I" : 105, "J" : 106, "K" : 107, "L" : 108, "M" : 59 , "N" : 110, "O" : 111, "P" : 112, "Q" : 97 , "R" : 114, "S" : 115, "T" : 116, "U" : 117, "V" : 118, "W" : 122, "X" : 120, "Y" : 121, "Z" : 116} # — liste des lettres qui seront affichées ALPHABET = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] # — paramètres du jeu # vitesse = au delais en seconde d'attente entre chaque mouvement vitesse = 0.10 nombre_lettres = 10 # — liste des lettres affichées a l'écran liste_objets_sur_ecran = [] # — score joueur score = 0 lettres_detruites = 0 lettres_ratees = 0 # — gestion de la vitesse au clavier horloge = time.time() lettres_par_minutes = 0 lettres_par_minutes_max = 0 # — objet Lettre class objet: # — fonction a la creation de la lettre def __init__(self, _lettre): self.lettre = _lettre self.x = random.randint(20, DIMENSIONX – 20) self.y = 0 self.taille = random.randint(20,70) self.pas = random.randint(1,6) self.horloge_vitesse = time.time() # — création des images de la lettre, une blanche quand la lettre est active # — une rouge quand elle est tuée font = pygame.font.SysFont('arial', self.taille) self.image_vivante = font.render(self.lettre, True, (255,255,255)) self.image_morte = font.render(self.lettre, True, (255,0,0)) # — indique si la lettre est active self.vivant = True # — fonction qui affiche la lettre def afficher(self): if self.vivant: fenetre.blit(self.image_vivante, (self.x, self.y)) else: fenetre.blit(self.image_morte, (self.x, self.y)) # — fonction qui fait descendre les lettres def objets_qui_descendent(): global liste_objets_sur_ecran, lettres_ratees, score for o in liste_objets_sur_ecran: if o.vivant == True: if time.time() < o.horloge_vitesse + vitesse: return None o.horloge_vitesse = time.time() o.y = o.y + o.pas if (o.y > DIMENSIONY-40): o.vivant = False lettres_ratees = lettres_ratees +1 score = score – 5 else: # — détruit les lettres et les recrées si elles sont tuées liste_objets_sur_ecran.remove(o) liste_objets_sur_ecran.append(objet(random.choice(ALPHABET))) # — efface l'ecran def effacer_ecran(): pygame.draw.rect(fenetre, (16,16,16), (0,0,DIMENSIONX, DIMENSIONY)) # — affiche les lettres a l'écran def afficher_lettres(): for objet in liste_objets_sur_ecran: objet.afficher() def afficher_score(): global horloge, lettres_par_minutes,lettres_par_minutes_max pygame.draw.rect(fenetre, (32,32,32), (0, DIMENSIONY – 40, DIMENSIONX, 40)) if time.time() > horloge + 60.0: if lettres_par_minutes > lettres_par_minutes_max: lettres_par_minutes_max = lettres_par_minutes lettres_par_minutes = 0 horloge = time.time() font = pygame.font.SysFont('arial', 30) text = font.render(" SCORE : " + str(score) + \ " L/min : " + str(lettres_par_minutes) + " / MAX : " +str(lettres_par_minutes_max)+ \ " Ratées : " + str(lettres_ratees), True, (255,255,255)) centrerX = (DIMENSIONX – text.get_width()) / 2 fenetre.blit(text, (centrerX, DIMENSIONY – 40)) def afficher_temps(): font = pygame.font.SysFont('arial', 200) compteur = font.render(str(int(time.time()-horloge)), True, (32,32,32)) centrerX = (DIMENSIONX – compteur.get_width()) / 2 fenetre.blit(compteur, (centrerX, 200)) # On active Pygame. pygame.init() fenetre = pygame.display.set_mode((800,600)) pygame.display.set_caption("Alphabet") # Création des premiers lettres for i in range(nombre_lettres): liste_objets_sur_ecran.append(objet(random.choice(ALPHABET))) # Boucle du jeu boucle_active = True while boucle_active: for event in pygame.event.get(): if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE: boucle_active = False if event.type == KEYDOWN: bonne_touche = False keys = pygame.key.get_pressed() for o in liste_objets_sur_ecran: code = CODE_CLAVIER[o.lettre] if keys[code] == 1: lettres_detruites = lettres_detruites +1 lettres_par_minutes = lettres_par_minutes +1 score = score + 1 o.vivant = False bonne_touche = True if bonne_touche == False: score = score – 1 effacer_ecran() afficher_temps() objets_qui_descendent() afficher_lettres() afficher_score() pygame.display.flip() # — Quitte le programme proprement pygame.display.quit() pygame.quit()