π
<-
Chat plein-écran
[^]

Résultat du premier tour du concours d'optimisation.

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Résultat du premier tour du concours d'optimisation.

Unread postby nikitouzz » 06 Aug 2012, 00:31

Voici les resultat du petit concours d'optimisation que j'ai lancé il y a une semaine :)

En Axe le premier est Runer112 sur les 5 participant :) Il reporte haut la main avec un code optimiser a 436 octets, en reprenant fidèlement mon code de départ dans ses moindre détaille :) je tiens a le felicitee pour son code qui est pour moi parfait :)

il va donc en finale :)

Code de depart :
Code: Select all
:ClrHome
:[FF818181818181FF]→pic0
:[FFC3A59999A5C3FF]→pic1
:[0000000000000000]→pic9
:0→S
:1→A
:2→B
:ClrDraw
:Repeat getKey(15)
:Pt-Change(A*8,B*8,Pic0)
:DispGraph
:Pt-Change(A*8,B*8,Pic0)
:Pause 100
:If getKey(1) and (B≠7) and (pxl-Test(A*8,B+1*8)=0)
:B+1→B
:S++
:pause 250
:End
:If getKey(2) and (A≠1) and (pxl-Test(A-1*8,B*8)=0)
:A-1→A
:S++
:pause 250
:End
:If getKey(3) and (A≠11) and (pxl-Test(A+1*8,B*8)=0)
:A+1→A
:S+1→S
:pause 250
:End
:If getKey(4) and (B≠1) and (pxl-Test(A*8,B-1*8)=0)
:B-1→B
:S+1→S
:pause 250
:End
:If getKey(3) and (pxl-Test(A+1*8,B*8)=1) and (pxl-Test(A+2*8,B*8)=0) and (A≠10) and (pxl-Test(A+1*8+1,B*8+2)=0)
:Pt-Off(A+1*8,B*8,Pic9)
:Pt-Off(A+2*8,B*8,Pic1)
:A+1→A
:S+1→S
:pause 250
:End
:If getKey(2) and (pxl-Test(A-1*8,B*8)=1) and (pxl-Test(A-2*8,B*8)=0) and (A≠2) and (pxl-Test(A-1*8+1,B*8+2)=0)
:Pt-Off(A-1*8,B*8,Pic9)
:Pt-Off(A-2*8,B*8,Pic1)
:A-1→A
:S+1→S
:pause 250
:End
:If getKey(1) and (pxl-Test(A*8,B+1*8)=1) and (pxl-Test(A*8,B+2*8)=0) and (B≠6) and (pxl-Test(A*8+1,B+1*8+2)=0)
:Pt-Off(A*8,B+1*8,Pic9)
:Pt-Off(A*8,B+2*8,Pic1)
:B+1→B
:S+1→S
:pause 250
:End
:If getKey(4) and (pxl-Test(A*8,B-1*8)=1) and (pxl-Test(A*8,B-2*8)=0) and (B≠2) and (pxl-Test(A*8+1,B-1*8+2)=0)
:Pt-Off(A*8,B-1*8,Pic9)
:Pt-Off(A*8,B-2*8,Pic1)
:B-1→B
:S+1→S
:pause 250
:End
:End


Code d'arrivée :
Code: Select all
:0->^^oDEBUG
:[FF818181818181]->Pic0
:[FFC3A59999A5C3FF]->Pic1
:L1+706->Pic9
:ClrDraw(L1)
:ClrDraw
:2*96+1+L6->P->r2
:(Pic0)Draw()
:...If ^^oDEBUG
:4*96+4+L6->r2
:(Pic1)Draw()
:...
:While 1
:DispGraph
:Pause 100
:4
:While 1
:End!If Select(,TryMv())-1
:3
:While 1
:End!If Select(,TryPs())-1
:4TryPs()
:EndIf getKey(15)
:Lbl KOfs
:[60FF01A0]->GDB0
:Return sign{r1-1+GDB0}
:Lbl CanMv
:ReturnIf +P->r2 and |EDF-|E9381*3plotdot|E0820
:Return {r2}
:Lbl TryMv
:Return!If getKey(->r1)
:Lbl Mv
:ReturnIf KOfs()CanMv()
:r2->P
:S++
:Pause 250
:Pic0
:Lbl DrwMv
:Draw()
:-96->r2
:Pic9
:Lbl Draw
:For(8)
:Select(,{}->{r2}+12->r2)+1
:End
:Lbl SKOfs
:r2-KOfs()
:Return
:Lbl TryPs
:Return!If getKey(->r1)
:ReturnIf KOfs()*2CanMv()
:ReturnIf {SKOfs()+12} xor |EC3
:(Pic1)DrwMv()
:Goto Mv


Code le plus optimisé :
Code: Select all
:0->^^oDEBUG
:[FF818181818181]->Pic0
:[FFC3A59999A5C3FF]->Pic1
:L1+706->Pic9
:ClrDraw(L1)
:ClrDraw
:2*96+1+L6->P->r2
:(Pic0)Draw()
:...If ^^oDEBUG
:4*96+4+L6->r2
:(Pic1)Draw()
:...
:While 1
:DispGraph
:Pause 100
:4
:While 1
:End!If Select(,TryMv())-1
:3
:While 1
:End!If Select(,TryPs())-1
:4TryPs()
:EndIf getKey(15)
:Lbl KOfs
:[60FF01A0]->GDB0
:Return sign{r1-1+GDB0}
:Lbl CanMv
:ReturnIf +P->r2 and |EDF-|E9381*3plotdot|E0820
:Return {r2}
:Lbl TryMv
:Return!If getKey(->r1)
:Lbl Mv
:ReturnIf KOfs()CanMv()
:r2->P
:S++
:Pause 250
:Pic0
:Lbl DrwMv
:Draw()
:-96->r2
:Pic9
:Lbl Draw
:For(8)
:Select(,{}->{r2}+12->r2)+1
:End
:Lbl SKOfs
:r2-KOfs()
:Return
:Lbl TryPs
:Return!If getKey(->r1)
:ReturnIf KOfs()*2CanMv()
:ReturnIf {SKOfs()+12} xor |EC3
:(Pic1)DrwMv()
:Goto Mv



En Basic le gagnant est Linkaro qui remporte le concours avec un score moyen car aucun des 6 participants n'a su me faire un code fonctionnel a 100%.

Il va donc en finale :)

Code de depart :
Code: Select all
:Lbl 0:0→∟AD(1)
:Menu("JEUX","jouer",8,"quitter",9)
:Lbl 8
:ClrHome
:200→D
:Output(4,6,"00000")
:Output(5,6,"0  0")
:Output(6,6,"0  0")
:Output(7,6,"0  0")
:Output(8,6,"00000")
:Lbl 1
:∟AD+1→∟AD
:randInt(1,9)→A
:Repeat D=0
:D-1→D
:Output(1,1,"    ")
:Output(1,1,D)
:Output(2,1,∟AD(1))
:Output(6,8,A)
:0→B
:getKey→B
:B+A→C
:If C=93 or C=95 or C=97 or C=86 or C=88 or C=90 or C=79 or C=81 or C=83
:Goto 1
:End
:ClrHome
:Output(3,5,"SCORE:)
:Output(4,6,∟AD(1))
:If ∟AD(1)>∟AC(1)
:∟AD(1)→∟AC(1)
:Pause
:Goto 0
:Lbl 9


Code d'arrivée :
Code: Select all
DelVar SClrHome
randInt(1,9→A
For(D,200,1,¯1
Output(2,2,"  "
Output(2,1,D
Output(3,1,S
Output(1,1,A
getKey→B
{92,93,94,82,83,84,72,73,74
If B=Ans(A
Then
S+1→S
randInt(1,9→A
End
End
ClrHome
max(S,∟AC(1→∟AC(1
Disp "SCORE:
S


Code le plus optimisé : ( ici c'est le mien )
Code: Select all
:0->S
:900->C
"Menu("","",1,"",2
:Lbl 1
:randint(1,9->F
:while C
:output(2,3,F
:output(5,1,C
:output(4,1,S
:C-1->C
:{92,93,94,82,83,84,72,73,74
:If getkey=Ans(F
:then
:S+1->S
:randint(1,9->F
:end
:end
:Lbl 2
:output(1,1,""
:output(4,6,"SACHA"



Pour la finale :

Le but est de me programmer un snake, en basic pour linkaro et en Axe pour runer112 le plus simple et le plus optimisé possible.
Le code qui techniquement sera supérieur à l'autre sera vainqueur (ne vous inquiétez pas je vais compter l’écart de puissance entre le basic et l'axe).

La finale commence dés aujourd'hui et finis le 16/08/2012 a 12 heures pile. :)

Bonne chance a vous runer112 et linkaro :)


edit by Laurae : majuscules manquantes et erreurs d'orthographe corrigés
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 1.9%
 
Posts: 1014
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
Class: Fac de maths

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 6 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
379 utilisateurs:
>364 invités
>10 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)