CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Projet Pong en Language Python !

Pseudo supprimé
Pseudo supprimé 27 mars 2014 à 20:07:59

Bonsoir !
Voila, etant actuellement en classe de terminale S, je dois realiser un projet en python pour ma spécialité ISN.
J'ai donc choisi de réaliser un jeu du style de pong !
J'ai pour le moment gerer le mouvement aléatoire ainsi que les collisions de la balle, il me reste donc a gerer le deplacement de la raquette, je souhaiterai faire un peu dans l'originalité, le jeu ne serait pas vraiment un pong mais plutot un mur, il me faudrait donc mettre un timer pour permettre de comptabiliser des scores !
J'ai oublier de préciser que je ne dois utiliser ni pygame, ni de classes pour la réalisation de ce projet.
Voici ce que j'ai fait pour l'instant, j'ai l'impression qu'il n'est pas optimal, si quelqu'un pourrait y apporter des modifs et des améliorations ça serait génial ! Merci d'avance !

  1. --- Importer les bibliothèques utilisées ---- #

import tkinter as tk # pour Python 2.x, c'est Tkinter (majuscule initiale)
import random
import time

  1. --- Variables --- #

w_fen, h_fen = 500, 400 # Dimensions de notre zone graphique.
x = random.randint(0,500) # Position x aléatoire des balles.
y = random.randint(0,400) # Position y aléatoire des balles.
r = 8 # Rayon de la balle.
n = 0
dx = random.randint(-5,5) # Etape 4 : Rebond aléatoire.
dy = random.randint(-5,5) # Etape 4 : Rebond aléatoire.

while n != 1 : # Empecher d'avoir le 0 comme valeur et ainsi empecher un non mouvement possible d'une balle.
if dx == 0 or dy == 0 :
dx = random.randint(-5,5) # Etape 4 : Rebond aléatoire.
dy = random.randint(-5,5) # Etape 4 : Rebond aléatoire.
n = - 1
n = n + 1
n = 1
a = 0
b = 150
c = 10
d = 100
drapeau = False

  1. --- Fonctions de modification de l'interface graphique --- #

def fin(event=None):
"Fin anticipée (Maj+Ctrl+Fin)."
fen.destroy()
def arret(event=None):
global drapeau
drapeau = True
def reprise(event=None):
global drapeau
drapeau = False

def left (event=None) :# descend
can.move("rec",0,10)
b = b + 10
d = d + 10
print(d)
return d and b

def right (event=None) : # monte
can.move("rec",0,-10)
b = b - 10
d = d - 10
print(d)
return d and b

  1. --- Fenêtre principale --- #

fen = tk.Tk() # Crée la fenêtre principale de l'application.
fen.title("Pytypong")

tit = tk.Label(fen, text="Pytypong") # Un titre
tit.pack(side=tk.TOP)

can = tk.Canvas(fen) # Puis une surface 'pour dessiner' à l'intérieur.
can.configure(width=w_fen, height=h_fen, bg='black')
can.pack(side=tk.TOP)

  1. --- COMMANDES --- #

boutQuit=tk.Button(fen, text="Quitter", command=fin).pack(side=tk.BOTTOM)
fen.bind("<Shift-Control-End>", fin)
fen.bind("<Return>",arret)
fen.bind("<space>",reprise)
fen.bind("<Left>",left)
fen.bind("<Right>",right)

  1. --- FONCTIONS --- #

def cercle(x, y, r, nom = "balle"): #Fonction cercle
a = x - r
b = y - r
c = x + r
d = y + r
return can.create_oval((a,b,c,d), fill="blue", outline="black", tag = nom)
def rec (nom1 = "rec"):
return can.create_rectangle(a,b,c,d, fill='white', outline='blue', width=5, tag = nom1)

  1. --- PARTIE PRINCIPALE DU CODE --- #

cercle(x,y,r)
rec()

while 1 : # Boucle infinie.

# --- GESTION DU MOUVEMENT --- #
can.move("balle",dx,dy) # Déplacement de la balle selon dx et dy.
fen.update() # Actualisation de la fenetre graphique.
fen.after(10) # Vitesse de la balle.

# --- GESTION DES REBONDS SUR LES BORDS --- #
if 490 < x < 505 or -5 < x < 10 : # Si la balle touche le bord en x ...
dx = -dx # Gestion du rebord en prenant l'inverse de dx pour un rebond coherent.
if 390 < y < 405 or -5 < y < 10 : # Si la balle touche le bord en y ...
dy = -dy # Gestion du rebord en prenant l'inverse de dy pour un rebond coherent.
y = y + dy # Incrémentation de dy sur y.
x = x + dx # Incrémentation de dx sur x.

# --- GESTION DES COLLISIONS --- #

if 0 < x < 10 and b < y < d :
print("test")

  1. ------------------------------------ #

fen.mainloop()

Ti-samu
Ti-samu
Niveau 10
28 mars 2014 à 10:15:56

Si tu as le droit aux bibliothèques externes, essaye de découvrir pygame, c'est une bibliothèque SDL pour python qui s'avère très puissante, ce sera peut-être mieux adapté qu'une simple GUI qui est plus adapté à une interface logiciel plutôt qu'à un jeu. :(

Si seulement cette spécialité existait quand j'ai fait ma Terminale S. :nonnon:

lokilok
lokilok
Niveau 17
28 mars 2014 à 12:07:55

" je ne dois utiliser ni pygame, ni de classes pour la réalisation de ce projet."

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment