Voici la version Speedrun de Chute: The Last Journey, un mod du jeu Chute d'Antarctus ! ;)
Si vous souhaitez publier un score dans le classement, il est complètement interdit de modifier le code ci-dessous !
Pour m'envoyer votre score, ajoutez-moi sur discord (RockingCha1r), ou rejoignez le discord d'Antarctus et Chute : https://discord.gg/H3xjpUc38f
Classements
Fin 1 - Subterranean Ending
1. Varmule - 15.657s
2. RockingCha1r - 37.708s
Fin 2 - Reaching the Clouds Ending
1. Varmule - 12.631s
2. Geek Puant - 18.641s
2. RockingCha1r - 21.866s
Fin 3 - The 2nd Summit
1. Varmule - 19.023s
2. RockingCha1r - 28.667s
Fin 4 - The Left Door Ending
1. Varmule - 24.99s
2. RockingCha1r - 42.349s
Fin 5 - The Ascension
- Personne -
Fin 5.5 - Dev Room
1. Varmule - 2.209s
2. Lolo - 6.722s
3. Geek Puant - 7.509s
4. RockingCha1r - 8.464s
_D='Chute: The Last Journey' _C=False _B=None _A=True _L=len _P=print _R=range _i=int _W=round from kandinsky import fill_rect as E,color as O,draw_string as DD from ion import keydown as AZ from time import sleep as WW,monotonic as MN from micropython import* from math import* kbd_intr(52) RK=2000 SA=0 BT=0 BC=(255,)*3 PC=100,150,100 sg=255,100,0 SC=0 r,v,b,g,n=(255,0,0),(0,255,0),(0,0,255),(200,200,200),(0,0,0) SK=[[(3,0,17,30,r),(0,3,12,10,g)],[(0,0,20,30,r),(1,1,18,28,BC)],[(3,0,17,30,r),(5,6,3,3,g),(12,6,3,3,g),[5,13,10,3,g]],[(3,5,16,25,r),(0,8,11,10,g)],[(3,0,17,26,r),(13,26,7,4,r),(3,26,6,4,r),(0,4,12,5,g)]] LZ=0 LJ=6 MO=0 SM=0 pk=_A pm='Crash' FW=0 fe=0 tg='' LP=[[360,-40],[0,0]] class Entity: def __init__(self,x,y,SP,ma=_A):self.x=float(x);self.y=float(y);self.SP=SP;self.move_alone=ma;self.ch=0;self.gx=self.x+10;self.gy=self.y+30;self.dd=_C;self.cheating=_C;self.dw=[];self.kj=_B def dz(self): self.drawing_inverse=[_B]*_L(self.dw) for i in _R(_L(self.dw)):j=self.dw[i];self.drawing_inverse[i]=[20-j[0]-j[2],j[1],j[2],j[3],j[4]] def ct(self,x1,y1,x2,y2): if self.x<=x1<=self.x+20 or self.x<=x2<=self.x+20: if self.y<=y1<=self.y+30 or self.y<=y2<=self.y+30:return _A return _C def st(self): x=self.x;y=self.y;self.move() if self.x!=x or self.y!=y or _L(SH):E(_i(x),_i(y),20,30,BC);self.da() if IK:ds((0,)*3) def move(self): global LZ,LJ,LP,MO,SM,BT,tg if IK:ds(BC) if self.ch: if self.ch>0: if self.tomber():self.y+=_i(self.ch*.4);self.ch+=1 elif not self.tomber():self.y=PT[self.get_plateform()][1]-30 else:self.y+=_i(self.ch);self.ch+=.8 if self.move_alone: self.x+=self.SP if self.tomber():self.SP*=-1;self.x+=self.SP else: if AZ(3):MO+=1 x=AZ(3)-AZ(0) if x:self.SP=abs(self.SP)*x;self.x+=self.SP if(AZ(5)or AZ(1))and not self.tomber():SM+=1;self.y=PT[self.get_plateform()][1]-30;self.ch=-10 if self.x>320: if _L(MP[LJ])>LZ+1: if MP[LJ][LZ+1]!=[]:self.dd=_A;LZ+=1;BT=BT*10+1 else:self.x-=self.SP if self.x<0: if LZ>0: if MP[LJ][LZ-1]!=[]:self.dd=_A;LZ-=1;BT=BT*10+2 elif LJ!=_L(MP)-4:self.x-=self.SP else:self.x-=self.SP if self.y>222: self.dd=_A if _L(MP)>LJ+1: if _L(MP[LJ+1])>LZ: if MP[LJ+1][LZ]!=[]:self.dd=_A;LJ+=1;BT=BT*10+3 if self.y<-20 and LJ>0: if _L(MP[LJ-1])>LZ: if MP[LJ-1][LZ]!=[]:self.dd=_A;LJ-=1;BT=BT*10+4 if self.tomber()and self.ch==0:self.ch=1 if self.dd: x=_W(MN()-time_start) if x<10:x='0'+str(x) tg=tg+str(x);LP[0]=[self.x,self.y] def tomber(self): self.gx=self.x+10;self.gy=self.y+30 for i in PT: if self.gy<=i[1]<=self.gy+self.ch: if i[0]<=self.gx-8<=i[0]+i[2]or i[0]<=self.gx+7<=i[0]+i[2]or self.gx-8<=i[0]<=self.gx+7:return _C return _A def get_plateform(self): for i in PT: if self.gy<=i[1]<=self.gy+self.ch: if i[0]<=self.gx-8<=i[0]+i[2]or i[0]<=self.gx+7<=i[0]+i[2]or self.gx-8<=i[0]<=self.gx+7:return PT.index(i) def da(self): if self.SP<=0: for i in self.dw:E(_i(self.x)+i[0],_i(self.y)+i[1],i[2],i[3],i[4]) else: for i in self.drawing_inverse:E(_i(self.x)+i[0],_i(self.y)+i[1],i[2],i[3],i[4]) def dap(O): for i in PT:E(i[0],i[1],i[2],i[3],O) def draw_all_entities(): for i in ez:i.move();i.da() IK=_B SD=1 SH=[] SL=[] for i in _R(20):SL+=[[_i((15**2-(i-10)**2)**.5),i-10]] def gu(e,kj):return[_i(e.gx),_i(e.y)+8+10,SL[kj][0]*((e.SP>0)*2-1),SL[kj][1],0] def ds(O):c=gu(av,IK);E(c[0]+c[2]*2-5,c[1]+c[3]*2-2,10,10,O) MP=[[[],[],[],[[],[],['The Ascension (5/6)']]],[[],[[],[]],[[[170,114,1]],[[170,214,6,8],[310,214,20,8],[170,144,6,8],[15,100,6,8],[170,60,6,8]]],[[],[[11,214,2,8],[250,220,3,2],[280,175,5,8],[157,120,6,8],[60,30,200,8]]]],[[],[[],[]],[[[135,160,1]],[[135,190,10,8],[5,140,3,8],[50,100,6,8],[170,60,6,8],[170,0,6,2]]],[[],[[155,214,10,8],[310,170,5,8],[240,110,5,8],[5,140,5,8]]]],[[],[[],[]],[[[170,184,2],[130,184,-2]],[[120,214,80,8],[10,160,5,8],[158,110,5,8],[310,60,30,8]]],[[],[[300,214,10,8],[60,214,5,8],[-10,60,30,8],[155,0,10,2]]],[],[[],[],['The 2nd Summit (3/6)']]],[[],[[],[]],[[],[]],[[],[[130,214,60,8],[10,174,10,8],[70,134,10,8],[240,94,10,8],[300,54,10,8],[300,0,10,2]]],[],[[],[[250,148,80,8],[100,100,10,8],[250,52,10,8]]],[[[50,118,4],[50,118,3],[50,118,2]],[[250,178,80,8],[0,148,60,8]]],[[],[[270,218,10,4],[70,208,10,4],[0,178,10,8]]]],[[[],[],['Dev Room (6/6)']],[],[[],[[120,217,80,5],[260,187,70,8]]],[[[130,117,1],[180,117,-1]],[[-10,187,70,8],[130,147,60,8],[260,107,70,8],[130,47,60,8],[130,0,60,2]]],[[],[[-10,107,58,8],[272,107,58,8]]],[[[240,150,1]],[[-10,107,55,8],[240,180,40,8]]],[[[160,150,-1]],[[100,180,80,8],[310,140,20,8]]],[[],[[-10,140,50,8],[110,105,10,6],[200,70,8,5],[270,40,6,4],[270,0,10,2]]]],[[[],[[-10,212,150,10],[180,212,150,10]]],[[[170,150,1]],[[-10,212,90,10],[160,190,80,10],[300,160,50,10]]],[[[153,120,1]],[[0,160,80,10],[153,150,15,5],[270,140,60,10],[270,78,15,5],[153,50,15,5],[120,0,80,2]]],[[],[[-10,140,70,10],[220,118,20,5],[148,78,20,5],[40,78,20,5],[148,140,20,5]]],[[],[]],[[],[]],[[],[[-10,218,340,4]]],[[],[[-10,218,340,4]]],[[],[[-10,218,340,4]]],[[],[[-10,218,340,4]]],[[],[[-10,218,340,4]]]],[[[],[[0,0,130,222],[190,0,140,222]]],[[[158,110,1]],[[-10,50,90,10],[270,90,60,8],[158,70,24,9],[150,140,40,9],[225,180,10,7],[270,214,60,8]]],[[[150,155,1]],[[80,130,190,8],[-10,90,20,8],[-10,214,70,8],[150,185,50,8],[310,90,20,8]]],[[[150,100,1]],[[-10,90,70,8],[140,130,40,8],[260,170,70,8]]],[[[260,140,1]],[[135,215,50,7],[-10,170,70,8],[260,170,70,8]]],[[],[[-10,170,70,8],[240,202,40,8],[260,70,70,8],[130,130,60,8]]],[[],[[-10,70,70,8],[260,70,70,8],[30,110,20,8],[270,110,20,8],[-10,0,340,2]]],[[],[[-10,70,70,8],[260,216,70,6],[-10,0,340,2]]],[[[158,80,1],[158,130,1],[158,30,1]],[[-10,216,70,6],[158,160,4,6],[158,110,4,6],[158,60,4,6],[-10,0,340,2],[260,70,70,8]]],[[],[[-10,0,340,2],[-10,70,70,8],[155,70,10,3],[155,120,10,3],[260,70,10,4]]],[[[120,40,-3],[220,40,-5]],[[-10,0,340,2],[-10,70,340,8]]],[[],[],['Reaching the Clouds Ending (2/6)']]],[[[],[[0,0,130,222],[190,0,140,222]]],[[[290,10,-1],[150,130,1]],[[260,40,70,8],[130,80,60,8],[-10,120,70,8],[130,160,60,8],[260,190,70,8],[130,220,60,2],[260,0,70,2]]],[[[130,120,.5],[270,90,.5]],[[-10,40,90,8],[130,150,40,8],[270,120,60,8],[0,190,5,8],[-10,0,70,2]]],[[[220,135,1],[80,135,1]],[[-10,120,60,8],[270,120,60,8],[80,165,30,8],[220,165,30,8]]],[[],[[-10,120,60,8],[135,0,50,7],[270,120,60,8],[80,60,30,8],[220,60,30,8]]],[[[150,60,1]],[[-10,120,70,8],[140,90,40,8],[240,50,40,8]]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]],[[],[]]],[[[[160,155,.5]],[[40,40,300,8],[0,214,30,8],[160,190,15,8],[280,150,50,8]]],[[[155,140,1]],[[-10,40,340,8],[-10,150,50,8],[130,0,60,6],[155,180,10,6],[280,151,50,8]]],[[[40,110,-.5],[300,110,3]],[[-10,40,340,8],[-10,151,70,8],[260,152,70,8]]],[[],[[-10,40,340,8],[90,180,50,8]]],[[[70,150,-1.1]],[[-10,40,340,8],[-10,180,90,8]]],[[],[[-10,40,340,8]]],[[],[[-10,40,340,8],[260,216,40,6]]],[[],[[-10,40,340,8],[40,216,60,6],[180,160,3,6]]],[[],[[-10,40,340,8]]],[[],[[-10,40,340,8],[140,216,40,6],[280,170,20,6]]],[[],[[-10,40,340,8],[80,150,20,6]]],[[],[[-10,40,340,8]]]],[[],[],[],[],[[],[[-1400,214,1750,8]]],[[],[[-20,214,360,8],[20,174,40,8],[237,132,20,8],[260,94,70,8]]],[[],[[-10,94,70,8],[150,55,10,8],[-20,214,360,8],[260,0,40,2]]],[[],[[-20,214,360,8]]],[[],[[-20,214,360,8],[300,80,40,8]]],[[],[[-20,214,3600,8],[-10,80,70,8],[140,60,40,8],[140,0,40,2]]],[],[[],[],['Subterranean Ending (1/6)']]],[[[],[]],[[],[]],[[],[]],[[],[]],[[],[]]],[[[],[[-10,40,340,8]]],[[[63,190,1]],[[-10,40,340,8],[300,214,10,8],[60,221,10,1]]],[[[145,135,1]],[[-10,40,340,8],[145,165,30,8],[20,120,20,8]]],[[[1073,184,.5]],[[180,214,5,5],[165,160,20,8],[-10,40,340,8],[20,140,10,8]]],[[],[[120,214,5,8],[-10,40,200,8]]]],[[[],[],['The Left Door Ending (4/6)']]]] def pj(ly,lx): global av,ez,PT,SH,pk,LZ,LJ,FW,pk,pm,SC;map=MP[ly][lx] if LP[0]==LP[1]: if FW<9:FW+=1 else:LZ,lx=0,0;LJ,ly=6,6;pX=30;pY=150;WW(.1) else:FW=0 E(0,0,320,222,BC);SH=[];PT=map[1];pX=LP[0][0];pY=LP[0][1] if pX>=320:pX=10 elif pX<0:pX=310 if pY<=-20:pY=170 elif pY>=222:pY=10 LP[1]=LP[0] if(LZ,LJ)==(0,6):DD(_D,45,50) av=Entity(pX,pY,7,_C);av.dw=[i for i in SK[SC]];av.dz();ez=[av] for i in map[0]:ez+=[Entity(i[0],i[1],i[2])];ez[-1].dw=[(3,0,17,30,(0,255,0)),(0,3,12,10,(200,200,200))];ez[-1].dz() if _L(map)==3:pm=map[2][0];pk=_C else:av.da() zz=MN() KK=0 def play(): global IK,SH,SD,ff,pb,KK,zz,RK,fe,SA for i in _R(_L(ez)-1,0,-1): for j in _R(_L(SH)-1,-1,-1): if ez[i].ct(SH[j][0]-5,SH[j][1]-5,SH[j][0]+5,SH[j][1]+5):E(_i(ez[i].x),_i(ez[i].y),20,30,BC);E(SH[j][0]-5,SH[j][1]-5,10,10,BC);del ez[i];del SH[j];break if AZ(4)or IK!=_B: if AZ(4): if IK==_B:IK=1;SA+=1 ds(BC);IK+=SD if IK==_L(SL)-1 or IK==0:SD*=-1 elif IK!=_B:SH+=[gu(av,IK)];SH[-1][0]+=SH[-1][2];SH[-1][1]+=SH[-1][3];ds(BC);IK=_B for i in ez:i.st() for i in SH:E(i[0]-5,i[1]-5,10,10,BC) if AZ(3):RK+=1 for i in _R(_L(SH)-1,-1,-1): SH[i][0]+=SH[i][2];SH[i][1]+=SH[i][3];SH[i][3]+=1 if SH[i][1]>222:del SH[i];continue E(SH[i][0]-5,SH[i][1]-5,10,10,sg) for i in ez[1:]: if i.ct(av.x,av.y,av.x+20,av.y+30):av.dd=_A dap(PC);KK=MN()-zz if KK<.017:WW(.017-KK) zz=MN() if av.dd:pj(LJ,LZ) fe+=1 time_start=0 def menu(): global time_start,SC for i in _R(50):DD(_D,45,i);WW(.0125) cc=0;DD('Made by RockingCha1r',60,70);DD("Using Antarctus' work",55,90);DD('Skins by Varmule',80,202);l=1 while not AZ(4): if AZ(1):cc-=1;WW(.1) if AZ(2):cc+=1;WW(.1) if cc%2==0:DD('> Jouer',45,150) else:DD('Jouer ',45,150) if cc%2==1:DD('> Quitter',45,170) else:DD('Quitter ',45,170) if AZ(3):SC=(SC+1)%5;WW(.1);E(190,155,40,40,O(255,255,255)) if AZ(0):SC=(SC-1)%5;WW(.1);E(190,155,40,40,O(255,255,255)) if l!=SC: DD('< >',175,160) for i in SK[SC]:E(i[0]+190,i[1]+155,i[2],i[3],i[4]);l=SC if cc%2==0: E(45,120,275,120,(255,255,255));ff=_A;pb=MN();time_start=MN();pj(LJ,LZ) while pk:play() if cc%2==1:raise BaseException('Aurevoir !') menu() _P('Verifications Scores:') a='' for i in str(tg): if _L(a)<20:a+=str(i) else:_P(a);a='' _P(a) _P('Alpha: '+str(_W(cos((RK+5)*pi/1000),5))) _P('Beta: '+str(BT)) _P('Delta: '+str(MO)+'x'+str(fe)+'x'+str(SM)) _P('Gamma: '+str(LP[0])) _P('You finished the '+pm+'!') if RK==0:_P('Jumpless!') if SA==1:_P('Shootless!') _P('Your time: '+str(_W(MN()-time_start,3)),' s') E(0,0,320,222,(255,255,255)) DD(str('You finished the\n'+' '*_i((160-_L(pm)*5)/10)+pm),80,0) DD('Chute: Last Journey',70,202)