from kandinsky import * from ion import * from time import * from random import randint purple=(160,0,255) def init(): global Jeu,x,y Jeu=[randint(0,1) for i in range(9)] x,y=100+45,100+45 for i in range(4): fill_rect(100+30*i,100,1,91,'orange') fill_rect(100,100+30*i,91,1,'orange') remplissage() curseur(x,y) # Affichage du curseur def curseur(x,y,couleur='orange'): for k in range(2,5): set_pixel(x-k,y,couleur) set_pixel(x+k,y,couleur) set_pixel(x,y-k,couleur) set_pixel(x,y+k,couleur) # Deplacement def deplacement(): global x,y dep=0 if keydown(KEY_LEFT): curseur(x,y,get_pixel(x,y)) x=(x-30-101)%90+101 dep=1 elif keydown(KEY_RIGHT): curseur(x,y,get_pixel(x,y)) x=(x+30-101)%90+101 dep=1 elif keydown(KEY_DOWN): curseur(x,y,get_pixel(x,y)) y=(y+30-101)%90+101 dep=1 elif keydown(KEY_UP): curseur(x,y,get_pixel(x,y)) y=(y-30-101)%90+101 dep=1 curseur(x,y) while (keydown(KEY_LEFT) or keydown(KEY_RIGHT) or keydown(KEY_DOWN) or keydown(KEY_UP)) and dep==1:True def remplissage(): global Jeu for l in range(9): couleur='white' if Jeu[l]==1: couleur=purple fill_rect(101+30*(l%3),101+30*(l//3),29,29,couleur) def appui(): global Jeu,x,y rang=(x-115)//30+3*(y-115)//30 Jeu[rang]=1-Jeu[rang] if rang-3>=0: Jeu[rang-3]=1-Jeu[rang-3] if rang-1>=0 and rang not in [3,6]: Jeu[rang-1]=1-Jeu[rang-1] if rang+1<=8 and rang not in [2,5]: Jeu[rang+1]=1-Jeu[rang+1] if rang+3<=8: Jeu[rang+3]=1-Jeu[rang+3] def fin(): global Jeu,mini if sum(Jeu) in [0,9]: draw_string("Gagné en "+str(nb)+" coup"+"s"*(nb>1),90,30,'blue') if nb<mini: mini=nb draw_string("Appuyer sur EXE",90+5*len(str(nb)),50,purple) draw_string("Record : ",220,130,'blue') draw_string(" ",220+6*10,148) draw_string(str(mini)+" coup"+"s"*(mini>1),220,148,'red') sleep(1) while not (keydown(KEY_EXE) or keydown(KEY_OK)):True draw_string(" ",90,30) draw_string(" ",90,50) return True return False global x,y,Jeu init() nb=0 mini=1000 while True: deplacement() if keydown(KEY_EXE) or keydown(KEY_OK): appui() nb+=1 remplissage() curseur(x,y) if fin(): init() nb=0