MasterMind

Salut
Je crée ce sujet afin de partager et de proposer des améliorations pour les codes sources des masterminds au premier tour du TI-concours 2013
Sujet: http://www.ti-concours.com/tz/t1/
Voilà mon programme:
MIND03IP:
Je crée ce sujet afin de partager et de proposer des améliorations pour les codes sources des masterminds au premier tour du TI-concours 2013
Sujet: http://www.ti-concours.com/tz/t1/
Voilà mon programme:
- Code: Select all
:StoreGDB 0:Func:AxesOff:FnOff :PlotsOff :GridOff
:0→Xmin:0→Ymin
:1→∆X:1→∆Y
:4→D
:{π→L4
:DelVar GDelVar F10→E
:While 1
: ClrDraw
: ClrHome
: 30→X
: Text(3,26,"MASTERMIND
: Horizontal 62
: Horizontal 0
: Horizontal 50
: Horizontal 40
: Vertical 0
: Vertical 94
: Text(14,2,"TI CONCOURS 2013 SAMOS
: Text(25,34,"1 PLAYER
: Text(34,32,"2 PLAYERS
: Text(43,40,"HELP
: Text(52,32,"SETTINGS
: Repeat Ans=105 or Ans=45
: Line(1,X,93,X,0
: Line(1,X+8,93,X+8,0
: X+9((X≠30 and Ans=25)-(Ans=34 and X≠3→X
: Horizontal X
: Horizontal X+8
: getKey
: End
: ClrDraw
: DelVar CDelVar L1DelVar L2DelVar L3DelVar BDelVar YIf Ans=45
: Goto 4
: If X=3
: Goto 5
: X=30→C
: If X≠12
: Goto 2
: Disp "AFTER CHOOSING","DIGITS TYPE","[ENTER] TO VALID","OR [ANNUL] TO
: Pause "REMOVE.
: Disp "+ MEANS A DIGIT","IS OKAY","- MEANS A DIGIT
: Pause "IS IN A WRONG SPOT
: Disp "PRESS [ANNUL] IN","THE MENU TO QUIT","CHECK HISTORY TO","SEE PREVIOUS
: Pause "GAMES
:End
:Lbl 5
:53→Y
:Text(0,33,"OPTIONS
:Text(9,3,"CODE LENGTH:
:Text(18,3,"TRIALS:
:Text(27,3,"PLAYER:
:Text(36,3,"HISTORY
:Repeat B=105
: getKey→B
: Line(0,Y,0,Y-6,0
: Y+9((B=25 and Y≠53)-(B=34 and Y≠26→Y
: Line(0,Y,0,Y-6
: If Y=53
: D-(B=24 and D≠2)+(B=26 and D≠9→D
: If Y=44
: E-(B=24 and E≠2)+(B=26 and 10≠E→E
: If Y=35 and (B=24 or B=26
: not(F→F
: Text(18,48,"<",E,">
: Text(9,48,"<",D,">
: Text(27,48,"<",F,">
:End
:If Y=26 and π-L4(1
:Then
: ClrDraw
: Text(0,0,"HISTORY:
: Text(9,0,"PLAYER: WON: TRIALS:
: For(X,1,dim(L4
: "NO
: If iPart(10fPart(L4(X
: "YES
: Text(9+6X,2,10fPart(10L4(X
: Text(9+6X,30,Ans
: Text(9+6X,50,iPart(L4(X
: End
: Pause
: ClrDraw
:End
:End
:Lbl 2
:{π→L1
:If C
:Then
: For(X,1,D
: While sum(Ans=L1
: randInt(0,9
: End
: Ans→L1(X
: End
:Else
: Text(9,2,"PLAYER",not(F)," :TYPE THE CODE
: Text(16,2,"NUMBERS MUST BE DIFFERENTS
: prgmMIND03IP
: L2→L1
:End
:1
:For(X,1,D-1
: For(B,X+1,D
: Ans(L1(X)≠L1(B
: End
:End
:If not(Ans
: Goto 2
:D→dim(L1
:ClrDraw
:Horizontal 62
:Horizontal 0
:Vertical 0
:Vertical 94
:Repeat Y=E or prod(L1=L2
: Text(1+6Y,2,Y,":
: prgmMIND03IP
: "
: For(X,1,D
: If sum(L2=L1(X
: Then
: If L1(X)=L2(X
: Then
: "+"+Ans
: Else
: Ans+"-
: End
: End
: End
: Text(1+6Y,12+4D,Ans
: Y+1→Y
:End
:Pause
:1+G(G≠8→G
:Y+F.01+.1prod(L1=L2→L4(G
:" LOST
:If prod(L1=L2
: " WON
:ClrDraw
:Text(0,1,"PLAYER",F,Ans
:Text(7,1,"THE CODE IS:
:For(X,1,D
: Text(15,4X,L1(X
:End
:Pause
:End
:Lbl 4
:RecallGDB 0
:DelVar GDelVar FDelVar L4DelVar DDelVar EDelVar GDB0DelVar X"
MIND03IP:
- Code: Select all
:{102,92,93,94,82,83,84,72,73,74→L3
:Repeat Ans-45
: For(X,1,D
: Line(6+4X,60-6Y,6+4X,56-Y6
: Repeat Ans
: getKey→B
: sum(L3=Ans
: End
: While B-L3(Ans
: Ans+1
: End
: Ans-1→L2(X
: Text(1+6Y,6+4X,Ans
: End
: While Ans-105 and Ans-45
: getKey
: End
:End