Did you think SiCode made excellent programs at it's time?
Yes
 100%  [ 3 ]
No
 0%  [ 0 ]
Total Votes : 3

I am currently planning to expand the game. I optimized some of the things in the code (extra quotation marks, parenthesis, etc.). Can this be optimized any further?


Code:

:"CONNECT 4 By Scode
ClrDraw
1→Xmin:1→Ymin
95→Xmax:63→Ymax:AxesOff
Text(0,56,"CONNECT 4
Text(14,50,"WELCOME TO
Text(20,50,"CONNECT 4.
Text(26,50,"PLEASE SEE
Text(32,50,"WWW.SICODE.
Text(38,50,"TICALC.ORG
Text(44,50,"FOR A+ GAMES
Text(57,60,"SC°D
For(F,1,9
Line(1,65-F*8,49,65-F*8
Line(F*6-5,57,F*6-5,1
End
"                                            →Str1
Text(0,2,"V
8→dim(L₁
Fill(9,L₁
{11,12→dim([A]
Fill(0,[A]
{11,12→dim([B]
Fill(0,[B]
8→dim(L₂
1→D:­1→X
0→K:0→G
int(rand*3→H
If H=1:1.5→H
int(rand*2)/10→A
If rand<.5
Goto D
Lbl T
Lbl B
getKey
Text(0,0,Str1+"     
Lbl BB
Text(0,(X+D)*6+2,"V
getKey→K
If Ans:Then
Text(0,(X+D)*6+2,"   
max(1,min(8,D+(K=26)-(K=24→D
End
If K≠21 and K≠105
Goto BB
If 2=L₁(D
Goto BB
Text(0,(X+D)*6+2,"V
L₁(D→R
Line((D+X)*6+4,66-(L₁(D)-1)*8,(D+X)*6+2,68-(L₁(D)-1)*8
Line((D+X)*6+4,66-(L₁(D)-1)*8,(D+X)*6+6,68-(L₁(D)-1)*8
Line((D+X)*6+4,72-(L₁(D)-1)*8,(D+X)*6+2,70-(L₁(D)-1)*8
Line((D+X)*6+4,72-(L₁(D)-1)*8,(D+X)*6+6,70-(L₁(D)-1)*8
1→[B](R,D+2
0→Q
1→P:D→B
If rand>.6
Goto S
Lbl V
Text(0,0,"I'M THINKING...

Lbl C
B+2→C
0→I
While P=[B](R,C
I+1→I:C+1→C
End
C→Y:C+1→C
0→L
While P=[B](R,C
L+1→L
C+1→C
End
B+2→C
0→J
While P=[B](R,C
J+1→J:C-1→C
End
C→Z
C-1→C
0→O
While P=[B](R,C
O+1→O:C-1→C
End
If I+J≥5
Goto DD
I+J+L-1+A→N
I+J+O-1+A→O
If N>3:3→N
If O>3:3→O
If N+Q>[A](R,Y
N+Q→[A](R,Y
If O+Q>[A](R,Z
O+Q→[A](R,Z

B+2→C
0→I:R→E
While P=[B](R,C
I+1→I:R+1→R
End
0→J
E→R
While P=[B](R,C
J+1→J:R-1→R
End
If I+J≥5
Goto DD
I+J-1→N
If N>3
3→N
If N+Q>[A](R,C
N+Q→[A](R,C
E→R
B+2→C
0→I:R→E
While P=[B](R,C
I+1→I
R+1→R:C+1→C
End
C→Y:R→W
C+1→C:R+1→R
0→L
While P=[B](R,C
L+1→L:R+1→R
C+1→C:End
B+2→C
0→J
E→R
While P=[B](R,C
J+1→J:R-1→R
C-1→C:End
C→Z:R→K
C-1→C:R-1→R
0→O
While P=[B](R,C
O+1→O:R-1→R
C-1→C:End
If I+J≥5
Goto DD
I+J+L-1→N
I+J+O-1→O
If N>3:3→N
If O>3:3→O
If N+Q>[A](W,Y
N+Q→[A](W,Y
If O+Q>[A](K,Z
O+Q→[A](K,Z
E→R

B+2→C
0→I:R→E
While P=[B](R,C
I+1→I:R-1→R
C+1→C:End
C→Y:R→W
C+1→C:R-1→R
0→L
While P=[B](R,C
L+1→L:R-1→R
C+1→C:End
B+2→C
0→J:E→R
While P=[B](R,C
J+1→J:R+1→R
C-1→C:End
C→Z:R→K
C-1→C:R+1→R
0→O
While P=[B](R,C
O+1→O:R+1→R
C-1→C:End
If I+J≥5
Goto DD
I+J+L-1→N
I+J+O-1→O
If N>3:3→N
If O>3:3→O
If N+Q>[A](W,Y
N+Q→[A](W,Y
If O+Q>[A](K,Z
O+Q→[A](K,Z
E→R:G+1→G
If G=56:3→P
If G=56
Goto DD
L₁(B)-1→L₁(B
If Q=.5:Goto T
Lbl D
­1→Z
For(F,1,8
If 2≠L₁(F
Then
[A](L₁(F),F+2→S
If S≥Z
Then
If [A](L₁(F)-1,F+2)≥3 and S<3 and not(fPart([A](L₁(F)-1,F+2
­.5→S
If [A](L₁(F)-1,F+2)≥3.5 and S<3 and .5=fPart([A](L₁(F)-1,F+2
­.1→S
If S>Z
Then
S→Z:1→U
F→L₂(U:End
If S=Z
Then
U+1→U:F→L₂(U
End:End:End
End
L₂(int(rand*U)+1→B
2→P:.5→Q
Text((L₁(B)-1)*8-9,(X+B)*6+2,"O
Line((X+B)*6+4,66-(L₁(B)-1)*8,(X+B)*6+4,72-(L₁(B)-1)*8
Line((X+B)*6+2,68-(L₁(B)-1)*8,(X+B)*6+2,70-(L₁(B)-1)*8
Line((X+B)*6+6,68-(L₁(B)-1)*8,(X+B)*6+6,70-(L₁(B)-1)*8
2→[B](L₁(B),B+2
L₁(B→R
Goto C
Lbl DD
If P=3
Text(0,0,"---TIE GAME---
If P=2
Text(0,0,"--COMP WINS!--
If P=1
Text(0,0,"---YOU WIN!---
Pause
ClrHome
Disp "SC°D"
Stop
Lbl S
int(rand*12)+1→F
If F=1
Then
Text(14,50,"WE DON'T NEED"+Str1
Text(20,50,"NO EDUCATION,"+Str1
Text(26,50,"WE DON'T NEED"+Str1
Text(32,50,"NO THOUGHT"+Str1
Text(38,50,"CONTROL."+Str1
Text(44,50,"-PINK FLOYD"+Str1
End
If F=2
Then
Text(14,50,"THE ONLY"+Str1
Text(20,50,"THING YOU"+Str1
Text(26,50,"HAVE TO DO IS"+Str1
Text(32,50,"DIE. THE ONLY"+Str1
Text(38,50,"THING I HAVE"+Str1
Text(44,50,"TO IS MATH."+Str1
End
If F=3
Then
Text(14,50,"YOU ARE"+Str1
Text(20,50,"CARBON"+Str1
Text(26,50,"BASED LIFE."+Str1
Text(32,50,"I AM"+Str1
Text(38,50,"SILICON"+Str1
Text(44,50,"BASED LIFE"+Str1
End
If F=4
Then
Text(14,50,"MY LUCKY"+Str1
Text(20,50,"NUMBER IS 4A."+Str1
Text(26,50,"MY SOCIAL"+Str1
Text(32,50,"SECURITY"+Str1
Text(38,50,"NUMBER"+Str1
Text(44,50,"IS 2(X+3Y)."+Str1
End
If F=5
Then
Text(14,50,"HOW CAN YOU"+Str1
Text(20,50,"FEEL GOOD IF"+Str1
Text(26,50,"YOU NEVER"+Str1
Text(32,50,"FELT BAD."+Str1
Text(38,50,"YOU CAN'T."+Str1
Text(44,50,"ONLY I CAN."+Str1
End
If F=6
Then
Text(14,50,"T.I. CALCS ARE"+Str1
Text(20,50,"GOING TO"+Str1
Text(26,50,"TAKE OVER"+Str1
Text(32,50,"THE WORLD!"+Str1
Text(38,50,"OF LINEAR"+Str1
Text(44,50,"EQUATIONS."+Str1
End
If F=7
Then
Text(14,50,"GOD CREATED"+Str1
Text(20,50,"MAN. MAN"+Str1
Text(26,50,"CREATED CALC"+Str1
Text(32,50,"CALC CREATED"+Str1
Text(38,50,"NUMBERS."+Str1
Text(44,50,"WOOPTIE DOO"+Str1
End
If F=8
Then
Text(14,50,"BUDDA IS ON"+Str1
Text(20,50,"ZEUS'S SIDE."+Str1
Text(26,50,"ZEUS IS ON"+Str1
Text(32,50,"GOD'S SIDE."+Str1
Text(38,50,"GOD IS ON"+Str1
Text(44,50,"MY SIDE. HAHA"+Str1
End
If F=9
Then
Text(14,50,"IN JAIL, YOU"+Str1
Text(20,50,"COULD PLAY"+Str1
Text(26,50,"ME ALL DAY"+Str1
Text(32,50,"LONG. WON'T"+Str1
Text(38,50,"THAT BE A"+Str1
Text(44,50,"BLAST!"+Str1
End
If F=10
Then
Text(14,50,"YO HABLO"+Str1
Text(20,50,"ESPANOL. YO"+Str1
Text(26,50,"TENGO DOS"+Str1
Text(32,50,"HERMANOS."+Str1
Text(38,50,"YO SABO POCO"+Str1
Text(44,50,"ESPANOL."+Str1
End
If F>10
Then
Text(14,50,Str1
Text(20,50,Str1
Text(26,50,Str1
Text(32,50,Str1
Text(38,50,Str1
Text(44,50,Str1
End
Goto V
I think 0→[variable] should be switched to DelVar [variable], as I heard it's faster and you save 1 token.
You aren't saying "I know little Spanish", and I can tell you that because sé un poco español. Saber is an irregular verb, and doesn't work like it should. As for the code, it's TI-Basic, which I don't know much about.
L₂(int(rand*U)+1→B could be L₂(1+int(rand*U→B, and I think Urand still does implied multiplication unless I'm unaware of a token called "randU" or "Urand".

Other than that, the code is well-written.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement