Nouvelle version du jeu disponible ici !
Jeu dont le but est d’éviter les voitures (carés noirs tombant du haut de l’écran) en jouant le carré vert. Le jeu est infini.
Les informations de score apparaissent lorsque que la première voiture a fini sa traversée. Les trois chiffres sont respectivement : le nombre total de voitures passées, le pourcentage de voitures évitées et le nombre de morts.
Le jeu peut être modifié en changeant les variables du début du script (désolé pour l’orthographe) : width
sert à donner la taille des voitures et du joueur, space
set à donner l’espace entre deux voitures, speed
sert à donner la vitesse initiale (petit = rapide, grand = lent) et screen_x_end
sert à donner la largeur de l’écran de jeu en pixels.
Le nom du jeu vient du mot “car race” en anglais, qui, écrit littéralement, donne “karas”
from kandinsky import * from time import * from random import * from ion import * width=10 heidth=width #space=2 space=0 speed=.5 screen_x_end=250 class Car: def __init__(self,id): self.id=id self.x=self.id*(width+space) self.y=0 try: self.iter+=1 except: self.iter=0 self.update_at=monotonic()+uniform(0,5) print("Car",id,"initialized") fill_rect(self.x,self.y,width,heidth,"black") def update(self): time_now=monotonic() if not time_now>self.update_at: return fill_rect(self.x,self.y,width,heidth,"white") self.y+=heidth fill_rect(self.x,self.y,width,heidth,"black") self.update_at=self.update_at+speed if self.y>222: self.__init__(self.id) def touching(self,x,y): if x>=self.x and x<(self.x+heidth): if y>=self.y and y<(self.y+width): return True return False def draw_player(x): fill_rect(x,y,heidth,width,"green") car_lst=[] for id in range(int(screen_x_end/(width+space))): car_lst.append(Car(id)) x=0 y=200 lost=0 last_motion=monotonic() while True: speed-=0.0001 speed=max(0.02,speed) # speed=max(0.01,speed) total=0 for car in car_lst: if car.touching(x,y): lost+=1 print("You lose",lost,"times") car.__init__(car.id) total+=car.iter car.update() draw_player(x) print(lost,total) if total: draw_string(str(total-lost),screen_x_end,160) draw_string(str(round(100-lost/total*100,1))[:4]+"% ",screen_x_end,180) draw_string(str(lost),screen_x_end,200) can_move=(monotonic()-last_motion)>speed # can_move=(monotonic()-last_motion)>0.1 if can_move and keydown(KEY_LEFT): if x-width+space<0: continue fill_rect(x,y,heidth,width,"white") x-=width+space draw_player(x) last_motion=monotonic() if can_move and keydown(KEY_RIGHT): if x+width+space>(screen_x_end-width-space): continue fill_rect(x,y,heidth,width,"white") x+=width+space draw_player(x) last_motion=monotonic()