Voici une reconstitution en 3d du jeu mobile stack. Le but est de faire la plus haute pile de rectangles.
Plus vous montez en niveau, plus vous débloquerez de nouvelles couleurs dans le menu.
Placer le rectangle: [ OK ]
Menu: [ EXE ]
from random import * from kandinsky import * from ion import * from time import * score1,d,d1,l1,l2=0,0,0,['black','white','red','blue','yellow','brown','pink','orange','purple'],['white','black','red','blue','yellow','brown','pink','orange','purple'] while True: a,l,score=100,[[110,100,0,randint(1,5)]],0 while keydown(KEY_OK):continue while True: l.append([0,a,0,randint(1,5)]) if randint(0,50)==0:l[-1][3]==0.2 score+=1 if score1<score:score1=score fill_rect(0,0,320,222,l1[d]) if d==1:draw_string("Score: "+str(score),5,5,'black','white');draw_string("max: "+str(score1),5,20,'black','white') elif d==4:draw_string("Score: "+str(score),5,5,'black','yellow');draw_string("max: "+str(score1),5,20,'black','yellow') else:draw_string("Score: "+str(score),5,5,'yellow',l1[d]);draw_string("max: "+str(score1),5,20,'yellow',l1[d]) if len(l)==5:del l[0] while True: for i in range(len(l)): b=0 if score in (1,2):b+=1 if score==1:b+=1 fill_rect(l[i][0],142+(len(l)-1-i)*20+b*20,l[i][1],20,l2[d1]) if l[-1][2]==0:fill_rect(l[-1][0],142+b*20,1,20,l1[d]);l[-1][0]+=1 else:fill_rect(l[-1][0]+l[-1][1],142+b*20,1,20,l1[d]);l[-1][0]-=1 if l[-1][0]==320-l[-1][1]:l[-1][2]=1 if l[-1][0]==0:l[-1][2]=0 sleep(l[-1][3]/300) if keydown(KEY_OK): if len(l)!=1: if l[-1][0]>l[-2][0]:a-=l[-1][0]-l[-2][0] else:a-=l[-2][0]-l[-1][0];l[-1][0]+=l[-2][0]-l[-1][0] l[-1][1]=a while keydown(KEY_OK):continue break if a<1:break c,e,e1,f=1,0,0,0 while True: if c==1: fill_rect(0,0,320,222,l1[d]) for i in range(len(l)-1):fill_rect(l[i][0],142+(len(l)-1-i)*20+b*20,l[i][1],20,l2[d1]) if d==2:draw_string("GAME OVER",110,60,'white',l1[d]) else:draw_string("GAME OVER",110,60,'red',l1[d]) if d==4:draw_string("Score: "+str(score),5,5,'black','yellow');draw_string("max: "+str(score1),5,20,'black','yellow');draw_string("Colors: exe",200,5,'black','yellow') elif d==1:draw_string("Score: "+str(score),5,5,'black','white');draw_string("max: "+str(score1),5,20,'black','white');draw_string("Colors: exe",200,5,'black','white') else:draw_string("Score: "+str(score),5,5,'yellow',l1[d]);draw_string("max: "+str(score1),5,20,'yellow',l1[d]);draw_string("Colors: exe",200,5,'yellow',l1[d]) c=0 if c==2: fill_rect(0,0,320,222,'black');fill_rect(27,50,26,26,'gray') for i in range(len(l1)): if score1>=i*10:fill_rect(i*30+27,50,26,26,'gray') else:fill_rect(i*30+27,50,26,26,(80,80,80)) if d==i:fill_rect(i*30+27,50,26,26,(0,50,0)) fill_rect(i*30+31,54,18,18,l1[i]) if score1>=i*10:fill_rect(i*30+27,90,26,26,'gray') else:fill_rect(i*30+27,90,26,26,(80,80,80)) if d1==i:fill_rect(i*30+27,90,26,26,(0,50,0)) fill_rect(i*30+31,94,18,18,l2[i]) if f==0:fill_rect(e*30+27,76,26,5,'green') else:fill_rect(e1*30+27,116,26,5,'green') c=3 if keydown(KEY_RIGHT) and c==3 and f==0 and e<8: e+=1;c=2 while keydown(KEY_RIGHT):continue if keydown(KEY_RIGHT) and c==3 and f==1 and e1<8: e1+=1;c=2 while keydown(KEY_RIGHT):continue if keydown(KEY_LEFT) and c==3 and f==0 and e>0: e-=1;c=2 while keydown(KEY_LEFT):continue if keydown(KEY_LEFT) and c==3 and f==1 and e1>0: e1-=1;c=2 while keydown(KEY_LEFT):continue if keydown(KEY_UP) and c==3: f=0;c=2 while keydown(KEY_UP):continue if keydown(KEY_DOWN) and c==3: f=1;c=2 while keydown(KEY_DOWN):continue if keydown(KEY_EXE): if c==0:c=2 else:c=1 while keydown(KEY_EXE):continue if keydown(KEY_OK) and c==3 and score1>=e*10: if f==0:d=e else:d1=e1 c=2 while keydown(KEY_OK):continue if keydown(KEY_OK) and c==0: while keydown(KEY_OK):continue break