» Goto page 1, 2  Next
Introducing, a first look at what I want to make into a full game: Bejeweled 84+! As of now, it just loads the graphics, creates a random board with no match checking (yet), and displays that board.

If anyone's wondering how I did all that, one word: textsprites.

EDIT: Source code for the curious (processed with TokenIDE):

Code:
```ClrDraw AxesOff ZStandard 104→Xmax ⁻72→Ymin ZInteger For(A,0,74 If A<11 Text(57,A+15,sub("?Y°﹢.﹢°Y?  ",A+1,1 If A<21 Text(52,A+10,sub("?Y'([i]ÎQJ'['JQÎ[i]('Y?  ",A+1,1 If A<25 Text(47,A+8,sub("﹢[s]!!]:XX.χ[i][i][i]χ.XX:]!![s]﹢  ",A+1,1 If A<28 Text(42,A+8,sub("  .Jẋûí[e]|u([s]:[s](|u[e]í[e]íJ.   ??  ",A+1,1 If A<41 Then Text(37,A,sub("''?    Y'°°Y]|uQYYY? Y'°°°^Y'°°'Y1|uQYYY?  ",A+1,1 Text(32,A,sub(" plotsquare[[2JQ!Jplotsquare[e]plotsquareJ[e]plotsquareplotsquare[e]plotsquareJ plotsquare['??YÎJplotsquare[e]plotsquareplotsquare [e]plotsquareplotsquareûplotsquare2  ",A+1,1 Text(27,A,sub("JJJJJJJ.              .          plotsquareí﹢  ",A+1,1 End Text(5,A+11,sub("[[JJ[i]Q' 'QplotsquareJJJJ JJJplotsquareQ' 'QplotsquareJJJJ  YQplotsquare('(plotsquareQY  'QplotsquareJJJJ 'QplotsquareJJJ 'QplotsquareJJJJ [[JJplotsquareQ'  ",A+1,1 Text(0,A+11,sub("[[]]X[( |u[Î]]]?     [[ |u[Î]]]? [[.     .[[ |u[Î]]]? [[     |u[Î]]]? [[??Y[|u  ",A+1,1 End {11,21,36,56,71,77 For(A,1,6 Line(Ans(A),0,Ans(A)+4,0 End {31,42,51,62 For(A,1,4 Line(Ans(A),0,Ans(A)+1,0 End ⁻14 Line(2,Ans,36,Ans Line(⁻Ans,2Ans,24,2Ans {2,⁻Ans,26 For(A,1,3 Line(Ans(A),⁻22,Ans(A)+10,⁻22 End 26 Line(12,⁻24,12,⁻Ans Line(Ans,⁻24,Ans,⁻Ans ⁻16 Line(0,Ans,0,⁻20 Line(38,Ans,38,⁻20 Line(⁻Ans,⁻12,19,⁻13 13 Line(22,⁻12,19,⁻Ans Line(40,⁻Ans,40,⁻61 {1,15,37,15,1,21,37,21,Ans,23,25,23,Ans,27,25,27,15,Ans,23,Ans For(A,1,10 Pt-On(Ans(2A-1),⁻Ans(2A End ⁻12 Line(41,Ans,92,Ans Line(41,Ymin,92,Ymin Line(42,Ans,42,Ymin Line(92,Ans,92,Ymin DelVar [A]{8,8→dim([A] For(A,1,8 For(B,1,8 randInt(1,7→[A](A,B StorePic 1 For(C,0,7 Text(7+6A,38+6B+C,sub(sub("[[i][[[(ẋXẋ(+([(+(X]X(°û[Q°J|u[|uJ(X[i][(",5[A](A,B)-4,5)+"   ",C+1,1 End RecallPic 1 End End Pause ```
Pretty cool! Are you using hybrid or regular basic?
LuckyGhost wrote:
Pretty cool! Are you using hybrid or regular basic?

I'm gonna be using pure TI-BASIC for everything, hopefully. At this point, it is all pure TI-BASIC.

Also, I'm testing a system of generating boards that have no matches before you start.
Your text sprites look really great there. I think I've only seen Elfprince13 and perhaps Bsparks use text sprites that effectively before, so I salute you for going that route. Keep up the great work, and I can't wait to see how this progresses.
KermMartian wrote:
Your text sprites look really great there. I think I've only seen Elfprince13 and perhaps Bsparks use text sprites that effectively before, so I salute you for going that route. Keep up the great work, and I can't wait to see how this progresses.

Thank you so much. It took me a while to manually convert the images to text and type them in on my calculator XD
Bump.

New code and binary! You can now switch gems! Match checking will come later.

Press 2nd on a square, and the corners of the selection box will turn black. Press 2nd on that same square to deselect, and an adjacent square to switch them. If you press 2nd on any other square, it deselects the selected square and selects the new one. So, basically like the CSE version  Source code for the curious:

Code:
```ClrDraw AxesOff ZStandard 104→Xmax ⁻72→Ymin ZInteger For(A,0,74 If A<11 Text(57,A+15,sub("?Y°﹢.﹢°Y?  ",A+1,1 If A<21 Text(52,A+10,sub("?Y'([i]ÎQJ'['JQÎ[i]('Y?  ",A+1,1 If A<25 Text(47,A+8,sub("﹢[s]!!]:XX.χ[i][i][i]χ.XX:]!![s]﹢  ",A+1,1 If A<28 Text(42,A+8,sub("  .Jẋûí[e]|u([s]:[s](|u[e]í[e]íJ.   ??  ",A+1,1 If A<41 Then Text(37,A,sub("''?    Y'°°Y]|uQYYY? Y'°°°^Y'°°'Y1|uQYYY?  ",A+1,1 Text(32,A,sub(" plotsquare[[2JQ!Jplotsquare[e]plotsquareJ[e]plotsquareplotsquare[e]plotsquareJ plotsquare['??YÎJplotsquare[e]plotsquareplotsquare [e]plotsquareplotsquareûplotsquare2  ",A+1,1 Text(27,A,sub("JJJJJJJ.              .          plotsquareí﹢  ",A+1,1 End Text(5,A+11,sub("[[JJ[i]Q' 'QplotsquareJJJJ JJJplotsquareQ' 'QplotsquareJJJJ  YQplotsquare('(plotsquareQY  'QplotsquareJJJJ 'QplotsquareJJJ 'QplotsquareJJJJ [[JJplotsquareQ'  ",A+1,1 Text(0,A+11,sub("[[]]X[( |u[Î]]]?     [[ |u[Î]]]? [[.     .[[ |u[Î]]]? [[     |u[Î]]]? [[??Y[|u  ",A+1,1 End {11,21,36,56,71,77 For(A,1,6 Line(Ans(A),0,Ans(A)+4,0 End {31,42,51,62 For(A,1,4 Line(Ans(A),0,Ans(A)+1,0 End ⁻14 Line(2,Ans,36,Ans Line(⁻Ans,2Ans,24,2Ans {2,⁻Ans,26 For(A,1,3 Line(Ans(A),⁻22,Ans(A)+10,⁻22 End 26 Line(12,⁻24,12,⁻Ans Line(Ans,⁻24,Ans,⁻Ans ⁻16 Line(0,Ans,0,⁻20 Line(38,Ans,38,⁻20 Line(⁻Ans,⁻12,19,⁻13 13 Line(22,⁻12,19,⁻Ans Line(40,⁻Ans,40,⁻61 {1,15,37,15,1,21,37,21,Ans,23,25,23,Ans,27,25,27,15,Ans,23,Ans For(A,1,10 Pt-On(Ans(2A-1),⁻Ans(2A End ⁻12 Line(41,Ans,92,Ans Line(41,Ymin,92,Ymin Line(42,Ans,42,Ymin Line(92,Ans,92,Ymin DelVar [A]{8,8→dim([A] For(A,1,8 For(B,1,8 randInt(1,7→[A](A,B End End Repeat [A]=[B] [A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁³→L₁ For(B,1,6max(Ans If L₁(B Then Repeat Ans≠[A](B+1,A randInt(1,7→[A](B,A End End End End [A]ᵀ→[A] End End "[[i][[[(ẋXẋ(+([(+(X]X(°û[Q°J|u[|uJ(X[i][(→Str1 For(A,1,8 For(B,1,8 For(C,0,7 Text(7+6A,38+6B+C,sub(sub(Str1,5[A](A,B)-4,5)+"   ",C+1,1 End Line(92,⁻12,92,Ymin End End DelVar SDelVar T1→Z 1→θ Repeat K=45 Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ getKey→K If K Then Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ,0 Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ,0 Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ,0 Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ,0 End If K=21 Then If S and T and (Z=S or θ=T) and 2>abs(Z-S)+abs(θ-T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T [A](T,S→A [A](θ,Z→[A](T,S A→[A](θ,Z "      Text(7+6θ,38+6Z,Ans Text(7+6T,38+6S,Ans StorePic 1 For(C,0,7 Text(7+6θ,38+6Z+C,sub(sub(Str1,5[A](θ,Z)-4,5)+"   ",C+1,1 End RecallPic 1 StorePic 1 For(C,0,7 Text(7+6T,38+6S+C,sub(sub(Str1,5[A](T,S)-4,5)+"   ",C+1,1 End RecallPic 1 0→S 0→T Else If S and T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T End Z→S θ→T Pt-On(37+6S,⁻7-6T Pt-On(43+6S,⁻7-6T Pt-On(37+6S,⁻13-6T Pt-On(43+6S,⁻13-6T End End Z+(K=26 and Z<8)-(K=24 and Z>1→Z θ+(K=34 and θ<8)-(K=25 and θ>1→θ End```

Bump.

Newer code STILL! After 3 days of work, it is now possible to actually match gems, and play like a regular Bejeweled game! Levels and points will come later  Source code for the curious (I myself think it's messy, but it works! and well at that!):

Code:
```G-T Full ClrDraw AxesOff ZStandard 104→Xmax ⁻72→Ymin ZInteger For(A,0,74 If A<11 Text(57,A+15,sub("?Y°﹢.﹢°Y?  ",A+1,1 If A<21 Text(52,A+10,sub("?Y'([i]ÎQJ'['JQÎ[i]('Y?  ",A+1,1 If A<25 Text(47,A+8,sub("﹢[s]!!]:XX.χ[i][i][i]χ.XX:]!![s]﹢  ",A+1,1 If A<28 Text(42,A+8,sub("  .Jẋûí[e]|u([s]:[s](|u[e]í[e]íJ.   ??  ",A+1,1 If A<41 Then Text(37,A,sub("''?    Y'°°Y]|uQYYY? Y'°°°^Y'°°'Y1|uQYYY?  ",A+1,1 Text(32,A,sub(" plotsquare[[2JQ!Jplotsquare[e]plotsquareJ[e]plotsquareplotsquare[e]plotsquareJ plotsquare['??YÎJplotsquare[e]plotsquareplotsquare [e]plotsquareplotsquareûplotsquare2  ",A+1,1 Text(27,A,sub("JJJJJJJ.              .          plotsquareí﹢  ",A+1,1 End Text(5,A+11,sub("[[JJ[i]Q' 'QplotsquareJJJJ JJJplotsquareQ' 'QplotsquareJJJJ  YQplotsquare('(plotsquareQY  'QplotsquareJJJJ 'QplotsquareJJJ 'QplotsquareJJJJ [[JJplotsquareQ'  ",A+1,1 Text(0,A+11,sub("[[]]X[( |u[Î]]]?     [[ |u[Î]]]? [[.     .[[ |u[Î]]]? [[     |u[Î]]]? [[??Y[|u  ",A+1,1 End {11,21,36,56,71,77 For(A,1,6 Line(Ans(A),0,Ans(A)+4,0 End {31,42,51,62 For(A,1,4 Line(Ans(A),0,Ans(A)+1,0 End 14 Line(2,⁻Ans,36,⁻Ans Line(Ans,⁻30,24,⁻30 {2,Ans,26 For(A,1,3 Line(Ans(A),⁻22,Ans(A)+10,⁻22 End 12 Line(Ans,⁻2Ans,Ans,⁻28 Line(26,⁻2Ans,26,⁻28 ⁻16 Line(0,Ans,0,⁻20 Line(38,Ans,38,⁻20 Line(⁻Ans,⁻12,19,⁻13 13 Line(22,⁻12,19,⁻Ans Line(40,⁻Ans,40,⁻61 {1,15,37,15,1,21,37,21,Ans,23,25,23,Ans,29,25,29,15,Ans,23,Ans For(A,1,10 Pt-On(Ans(2A-1),⁻Ans(2A End ⁻12 Line(41,Ans,92,Ans Line(41,Ymin,92,Ymin Line(42,Ans,42,Ymin Line(92,Ans,92,Ymin StorePic 2 Text(25,49,"Generating Text(31,44,"boardplease Text(37,48,"be patient DelVar [A]{8,8→dim([A] For(A,1,8 For(B,1,8 randInt(1,7→[A](A,B End End Repeat [A]=[B] [A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁³→L₁ For(B,1,6max(Ans If L₁(B Then Repeat Ans≠[A](B+1,A randInt(1,7→[A](B,A End End End End [A]ᵀ→[A] End End "[[i][[[(ẋXẋ(+([(+(X]X(°û[Q°J|u[|uJ(X[i][(→Str1 For(A,1,8 For(B,1,8 For(C,0,7 Text(7+6A,38+6B+C,sub(sub(Str1,5[A](A,B)-4,5)+"   ",C+1,1 End Line(92,⁻12,92,Ymin End End DelVar SDelVar T1→Z 1→θ Repeat K=45 Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ getKey→K If K Then Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ,0 Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ,0 Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ,0 Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ,0 End If K=21 Then If S and T and (Z=S or θ=T) and 2>abs(Z-S)+abs(θ-T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T [A](T,S→A [A](θ,Z→[A](T,S DelVar FDelVar NA→[A](θ,Z Repeat not(M DelVar M[A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁³→L₁ For(B,1,6max(L₁ If L₁(B Then 1→M 1→N For(C,0,2 {B+C,A If X {A,B+C Text(7+6Ans(1),38+6Ans(2),"      0→[B](Ans(1),Ans(2 End End End End [A]ᵀ→[A] End If M Then [B]→[A] If not(F Then For(X,0,1 {T,S If X {θ,Z Text(7+6Ans(1),38+6Ans(2),"      StorePic 1 For(C,0,7 If [A](Ans(1),Ans(2 Text(7+6Ans(1),38+6Ans(2)+C,sub(sub(Str1,5[A](Ans(1),Ans(2))-4,5)+"   ",C+1,1 End RecallPic 1 End 1→F End For(A,1,8 Matr►list([A],A,L₁ DelVar O1→D Repeat 8=sum(L₁=L₂ L₁→L₂ 9→B Repeat B<3 or not(L₁(B B-1→B End If not(L₁(B Then max(B,D→D For(C,B,2,⁻1 L₁(C-1→L₁(C End 0→L₁(1 End End For(B,1,D If not(L₁(B Then 1→O randInt(1,7→L₁(B End End If O Then List►matr(L₁,[B] rowSwap(augment([A],[B])ᵀ,A,9)ᵀ→[A] {8,8→dim([A] For(B,D,1,⁻1 Text(7+6B,38+6A,"      StorePic 1 For(C,0,7 Text(7+6B,38+6A+C,sub(sub(Str1,5[A](B,A)-4,5)+"   ",C+1,1 End RecallPic 1 End End End Else If not(N Then [A](T,S→A [A](θ,Z→[A](T,S A→[A](θ,Z End End End DelVar SDelVar T Else If S and T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T End Z→S θ→T Pt-On(37+6S,⁻7-6T Pt-On(43+6S,⁻7-6T Pt-On(37+6S,⁻13-6T Pt-On(43+6S,⁻13-6T End End Z+(K=26 and Z<-(K=24 and Z>1→Z θ+(K=34 and θ<-(K=25 and θ>1→θ End```

Download here and here. Tell me what you think! Also, test this to your heart's content, as this now has the main game mechanics!
Why is it that text sprites work on the monochrome calculators? When I ran it on my TI-84+CSE just to see if the text sprites would work, stuff kept getting covered up with white, so it didn't work at all.
Why is it that text sprites work on the monochrome calculators? When I ran it on my TI-84+CSE just to see if the text sprites would work, stuff kept getting covered up with white, so it didn't work at all.

How textsprites work on the monochrome calculators is that each character has a certain pattern of pixels on their leftmost side. For example:

Code:
```##   #  #      # ```

has (from top to bottom) 10000, and

Code:
``` # # # #  #```

has (from top to bottom) 01110.
These are displayed right next to each other (I mean by the PIXEL), and each left-hand pattern is drawn from left to right to create an image.

For example, this code on an 83+ or higher will show you how a donut picture is made (press ENTER to see it draw character by character):

Code:
```ClrDraw For(A,0,7 Text(0,A,sub("([X[(  ",A+1,1      //2 spaces Pause End```

My program doesn't work on the CSE or CE mainly due to 1. the coordinates for drawing them being different, and 2. the different fonts of both.
Text sprites are possible on the CSE and CE models, but requires some coordinates adjusting. This is how JWinslow23's game looked like when I tried spacing out each ASCII character by 1 pixel instead of 1 and changed the text Y location: Unfortunately, the CSE adds gaps of white pixels both at the top and bottom of text rather than just the bottom, so you can't use text sprites to create large sprites in height, since there will be a white gap between each row of characters.
One concern, while we're talking about the game's overall design: I'm not sure that putting the PopCap logo on it is a great idea. While it's a respectful way to acknowledge the original publishers of the game, it also appears to imply that you're affiliated with PopCap and have permission to use their logo, to me. I would recommend removing it.
KermMartian wrote:
One concern, while we're talking about the game's overall design: I'm not sure that putting the PopCap logo on it is a great idea. While it's a respectful way to acknowledge the original publishers of the game, it also appears to imply that you're affiliated with PopCap and have permission to use their logo, to me. I would recommend removing it.

Noted. No PopCap logo in the next update, just the jewel.
My progress on game-over checking:

* My List►Matr hack didn't work out
* Using augment({0,0},seq(sum( instead of the long augment( line is 10 ms slower.
* Typing out 10^ for small integer powers is actually faster than using the 10^( token, by a couple of ms. This should save ~20 ms per iteration, but not as much as precomputation would.
* I'm still trying out algorithm changes, but I don't know if anything can be faster. Your implementation in two pieces instead of fourteen has motivated me to optimize as much as I can.

EDIT: The augment(seq( was slow (73 ms), but unrolling it is only 31 ms, which saves about 30 ms net, and at the cost of only 8 bytes. Here's my current code with timing:

Code:
```;3x2 checking, about 250 ms + list store time For(D,0,1                    ;negligible Matr►list([A],1,L2           ;? For(C,2,8                    ;1 L2->L1                       ;? Matr►list([A],C,L2           ;? .1(10^L1+10^L2(L1≠L2         ;? {0,0,sum(Ans,1,3),sum(Ans,2,4),sum(Ans,3,5),sum(Ans,4,6),sum(Ans,5,7),sum(Ans,6,8   ;31 If .3≤max(max(fPart(Ans10^~L1)),fPart(Ans10^~L2   ;? ---break the loop; possible move found--- End [A]ᵀ->A                      ;? End ;4x1 checking line, 74 ms max(.3010299957=abs(ΔList(log(abs(ΔList(ΔList(10^L1```
Bump.

This is almost a full game now! I just need to optimize some stuff (maybe) and add game saving. Any testers of this new game are welcome. I tried a bold font on the Game Over (or, more correctly, "NO MORE MOVES") screen (but it's not in the screenie), hope it looks cool. Source code for the absolutely insane:

Code:
```G-T Full ClrDraw AxesOff ZStandard 104→Xmax ⁻72→Ymin ZInteger For(A,0,74 If A<11 Text(51,A+15,sub("?Y°﹢.﹢°Y?  ",A+1,1 If A<21 Text(46,A+10,sub("?Y'([i]ÎQJ'['JQÎ[i]('Y?  ",A+1,1 If A<25 Text(41,A+8,sub("﹢[s]!!]:XX.χ[i][i][i]χ.XX:]!![s]﹢  ",A+1,1 If A<22 Text(36,A+8,sub("  .Jí[e]í[e]|u([s]:[s](|u[e]í[e]íJ. ",A+1,1 Text(5,A+11,sub("[[JJ[i]Q' 'QplotsquareJJJJ JJJplotsquareQ' 'QplotsquareJJJJ  YQplotsquare('(plotsquareQY  'QplotsquareJJJJ 'QplotsquareJJJ 'QplotsquareJJJJ [[JJplotsquareQ'  ",A+1,1 Text(0,A+11,sub("[[]]X[( |u[Î]]]?     [[ |u[Î]]]? [[.     .[[ |u[Î]]]? [[     |u[Î]]]? [[??Y[|u  ",A+1,1 End {11,21,36,56,71,77 For(A,1,6 Line(Ans(A),0,Ans(A)+4,0 End {31,42,51,62 For(A,1,4 Line(Ans(A),0,Ans(A)+1,0 End 14 Line(2,⁻Ans,36,⁻Ans Line(Ans,⁻30,24,⁻30 {2,Ans,26 For(A,1,3 Line(Ans(A),⁻22,Ans(A)+10,⁻22 End 12 Line(Ans,⁻2Ans,Ans,⁻28 Line(26,⁻2Ans,26,⁻28 ⁻16 Line(0,Ans,0,⁻20 Line(38,Ans,38,⁻20 Line(⁻Ans,⁻12,19,⁻13 13 Line(22,⁻12,19,⁻Ans Line(40,⁻Ans,40,⁻61 {1,15,1,21,37,21,Ans,23,Ans,29,25,29,15,Ans,23,Ans For(A,1,8 Pt-On(Ans(2A-1),⁻Ans(2A End ⁻12 Line(41,Ans,92,Ans Line(41,Ymin,92,Ymin Line(42,Ans,42,Ymin Line(92,Ans,92,Ymin "[[i][[[(ẋXẋ(+([(+(X]X(°û[Q°J|u[|uJ(X[i][(→Str1 DelVar PDelVar V30→E StorePic 2 Lbl A DelVar FRecallPic 2 Text(15,2,P Pt-On(37,⁻15 Text(23,14,V Pt-On(25,⁻23 Text(25,49,"Generating Text(31,44,"boardplease Text(37,48,"be patient DelVar [A]{8,8→dim([A] For(A,1,8 For(B,1,8 randInt(1,7→[A](A,B End End Repeat [A]=[B] [A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁³→L₁ For(B,1,6max(Ans If L₁(B Then Repeat Ans≠[A](B+1,A randInt(1,7→[A](B,A End End End End [A]ᵀ→[A] End End For(A,1,8 For(B,1,8 For(C,0,7 Text(7+6A,38+6B+C,sub(sub(Str1,5[A](A,B)-4,5)+"   ",C+1,1 End Line(92,⁻12,92,Ymin End End DelVar SDelVar T1→Z Ans→θ DelVar L₁→W Repeat K=45 or F≥E or L=15 and F<E Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ getKey→K If Ans Then Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ,0 Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ,0 Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ,0 Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ,0 End If Ans=21 Then If S and T and (Z=S or θ=T) and 2>abs(Z-S)+abs(θ-T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T [A](T,S→A [A](θ,Z→[A](T,S DelVar GDelVar NA→[A](θ,Z Repeat not(M DelVar M[A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁³→L₁ For(B,1,6max(L₁ If L₁(B Then P+(3^M+2N+2→P Text(15,2,P Pt-On(37,⁻15 F+(3^M+2N+2→F Line(41,⁻62,41,⁻62+min(49,49F/E N+not(M→N M+1→M For(C,0,2 {B+C,A If X {A,B+C Text(7+6Ans(1),38+6Ans(2),"      0→[B](Ans(1),Ans(2 End End End End [A]ᵀ→[A] End If M Then 1→W [B]→[A] If not(G Then For(X,0,1 {T,S If X {θ,Z Text(7+6Ans(1),38+6Ans(2),"      StorePic 1 For(C,0,7 If [A](Ans(1),Ans(2 Text(7+6Ans(1),38+6Ans(2)+C,sub(sub(Str1,5[A](Ans(1),Ans(2))-4,5)+"   ",C+1,1 End RecallPic 1 End 1→G End For(A,1,8 Matr►list([A],A,L₁ DelVar O1→D Repeat 8=sum(L₁=L₂ L₁→L₂ 9→B Repeat B<3 or not(L₁(B B-1→B End If not(L₁(B Then max(B,D→D For(C,B,2,⁻1 L₁(C-1→L₁(C End 0→L₁(1 End End For(B,1,D If not(L₁(B Then 1→O randInt(1,7→L₁(B End End If O Then List►matr(L₁,[B] rowSwap(augment([A],[B])ᵀ,A,9)ᵀ→[A] {8,8→dim([A] For(B,D,1,⁻1 Text(7+6B,38+6A,"      StorePic 1 For(C,0,7 Text(7+6B,38+6A+C,sub(sub(Str1,5[A](B,A)-4,5)+"   ",C+1,1 End RecallPic 1 End End End Else If not(N Then [A](T,S→A [A](θ,Z→[A](T,S A→[A](θ,Z End End End DelVar SDelVar T Else If S and T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T End Z→S θ→T Pt-On(37+6S,⁻7-6T Pt-On(43+6S,⁻7-6T Pt-On(37+6S,⁻13-6T Pt-On(43+6S,⁻13-6T End End Z+(K=26 and Z<8)-(K=24 and Z>1→Z θ+(K=34 and θ<8)-(K=25 and θ>1→θ If W and F<E DelVar I1→L If L and L<16 Then Matr►list([A],1,L₂ For(A,2,8 L₂→L₁ Matr►list([A],A,L₂ .1(10^L₁+10^L₂)(L₁≠L₂ {0,0,sum(Ans,1,3),sum(Ans,2,4),sum(Ans,3,5),sum(Ans,4,6),sum(Ans,5,7),sum(Ans,6,8 If .3≤max(max(fPart(Ans10^⁻L₁),fPart(Ans10^⁻L₂))) or max(.3010299957=abs(DeltaList(log(abs(DeltaList(DeltaList(10^L₁ Then 16→L 8→A Else L+1→L End End If L=16 and I or L≠16 [A]ᵀ→[A] L≠16→I End not(L→W If L=15 and F<E Then ClrDraw RecallPic 2 Text(15,2,P Pt-On(37,⁻15 Text(23,14,V Pt-On(25,⁻23 For(X,0,1 Text(⁻1,21,X+47,"NO MORE Text(⁻1,29,X+53,"MOVES If not(X StorePic 1 End RecallPic 1 Text(37,49,"Press ENTER Pause DelVar PDelVar V30→E End End ClrDraw V+(F≥E→V E+15(F≥E→E If K≠45 Goto A```

Download here. Tell me what you think, and please notify me of any bugs, glitches, or feature suggestions!
Bump.

This should be the finished product right here! I implemented saving games, as well as restarting your current level and restarting your entire game. There's also a logo for DoorsCS7! Source code for the masochist:

Code:
```:"Bejeweled 84+ :"000007E01DB82A5477EE742EE3C797E977EE3BDC1BD80DB005A0024001800000 G-T Full ClrDraw AxesOff ZStandard 104→Xmax ⁻72→Ymin ZInteger For(A,0,74 If A<11 Text(51,A+15,sub("?Y°﹢.﹢°Y?  ",A+1,1 If A<21 Text(46,A+10,sub("?Y'([i]ÎQJ'['JQÎ[i]('Y?  ",A+1,1 If A<25 Text(41,A+8,sub("﹢[s]!!]:XX.χ[i][i][i]χ.XX:]!![s]﹢  ",A+1,1 If A<22 Text(36,A+8,sub("  .Jí[e]í[e]|u([s]:[s](|u[e]í[e]íJ. ",A+1,1 Text(5,A+11,sub("[[JJ[i]Q' 'QplotsquareJJJJ JJJplotsquareQ' 'QplotsquareJJJJ  YQplotsquare('(plotsquareQY  'QplotsquareJJJJ 'QplotsquareJJJ 'QplotsquareJJJJ [[JJplotsquareQ'  ",A+1,1 Text(0,A+11,sub("[[]]X[( |u[Î]]]?     [[ |u[Î]]]? [[.     .[[ |u[Î]]]? [[     |u[Î]]]? [[??Y[|u  ",A+1,1 End {11,21,36,56,71,77 For(A,1,6 Line(Ans(A),0,Ans(A)+4,0 End {31,42,51,62 For(A,1,4 Line(Ans(A),0,Ans(A)+1,0 End 14 Line(2,⁻Ans,36,⁻Ans Line(Ans,⁻30,24,⁻30 {2,Ans,26 For(A,1,3 Line(Ans(A),⁻22,Ans(A)+10,⁻22 End 12 Line(Ans,⁻2Ans,Ans,⁻28 Line(26,⁻2Ans,26,⁻28 ⁻16 Line(0,Ans,0,⁻20 Line(38,Ans,38,⁻20 Line(⁻Ans,⁻12,19,⁻13 13 Line(22,⁻12,19,⁻Ans Line(40,⁻Ans,40,⁻61 {1,15,1,21,37,21,Ans,23,Ans,29,25,29,15,Ans,23,Ans For(A,1,8 Pt-On(Ans(2A-1),⁻Ans(2A End ⁻12 Line(41,Ans,92,Ans Line(41,Ymin,92,Ymin Line(42,Ans,42,Ymin Line(92,Ans,92,Ymin "[[i][[[(ẋXẋ(+([(+(X]X(°û[Q°J|u[|uJ(X[i][(→Str1 SetUpEditor BJWL If 4=dim(ʟBJWL Then ʟBJWL(1→V ʟBJWL(2→P ʟBJWL(3→F ʟBJWL(4→E Else DelVar FDelVar PDelVar V30→E 4→dim(ʟBJWL E→ʟBJWL(4 End 7^cumSum(binomcdf(7,0→L₃ StorePic 2 Lbl A RecallPic 2 Text(15,2,P+F Pt-On(37,⁻15 Text(23,14,V Pt-On(25,⁻23 Line(41,⁻62,41,⁻62+min(49,49F/E Text(25,49,"Generating Text(31,44,"boardplease Text(37,48,"be patient DelVar [A]{8,8→dim([A] List►matr(10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),10^(1+iPart(7fPart(randL₃))),[A] Repeat [A]=[B] [A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁→L₁ For(B,1,6max(Ans If L₁(B Then Repeat Ans≠[A](B+1,A 10^randInt(1,7→[A](B,A End End End End [A]ᵀ→[A] End End For(A,1,8 For(B,1,8 For(C,0,7 Text(7+6A,38+6B+C,sub(sub(Str1,5log([A](A,B))-4,5)+"   ",C+1,1 End Line(92,⁻12,92,Ymin End End DelVar LDelVar SDelVar T1→Z 1→θ 1→W Repeat F≥E or L=15 and F<E or sum(K={22,23,45 Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ getKey→K If Ans Then Line(38+6Z,⁻7-6θ,42+6Z,⁻7-6θ,0 Line(38+6Z,⁻13-6θ,42+6Z,⁻13-6θ,0 Line(37+6Z,⁻8-6θ,37+6Z,⁻12-6θ,0 Line(43+6Z,⁻8-6θ,43+6Z,⁻12-6θ,0 End If Ans=23 DelVar FDelVar PDelVar V30→E If K=22 DelVar F If K=21 Then If S and T and (Z=S or θ=T) and 2>abs(Z-S)+abs(θ-T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T [A](T,S→A [A](θ,Z→[A](T,S DelVar GDelVar NA→[A](θ,Z Repeat not(M DelVar M[A]→[B] For(X,0,1 For(A,1,8 Matr►list([A],A,L₁ not(DeltaList(DeltaList(L₁→L₁ For(B,1,6max(Ans If L₁(B Then 3^M+2N+2+F→F Line(41,⁻62,41,⁻62+min(49,49Ans/E If P+Ans≥ᴇ9 ᴇ9-1-P→F Text(15,2,P+Ans Pt-On(37,⁻15 N+not(M→N M+1→M For(C,0,2 {B+C,A If X {A,B+C Text(7+6Ans(1),38+6Ans(2),"      0→[B](Ans(1),Ans(2 End End End End [A]ᵀ→[A] End If M Then 1→W [B]→[A] If not(G Then For(X,0,1 {T,S If X {θ,Z Text(7+6Ans(1),38+6Ans(2),"      StorePic 1 For(C,0,7 If [A](Ans(1),Ans(2 Text(7+6Ans(1),38+6Ans(2)+C,sub(sub(Str1,5log([A](Ans(1),Ans(2)))-4,5)+"   ",C+1,1 End RecallPic 1 End 1→G End For(A,1,8 Matr►list([A],A,L₁ If not(min(L₁ Then DelVar DDelVar L₂8→dim(L₂ 8→C For(B,1,8 L₁(9-B If Ans Then Ans→L₂(C C-1→C End If not(L₁(B B→D End List►matr(L₂+10^(1+iPart(7fPart(randL₃)))not(L₂),[B] rowSwap(augment([A],[B])ᵀ,A,9)ᵀ→[A] {8,8→dim([A] For(B,D,1,⁻1 Text(7+6B,38+6A,"      StorePic 1 For(C,0,7 Text(7+6B,38+6A+C,sub(sub(Str1,5log([A](B,A))-4,5)+"   ",C+1,1 End RecallPic 1 End End End Else If not(N Then [A](T,S→A [A](θ,Z→[A](T,S A→[A](θ,Z End End End DelVar SDelVar T Else If S and T Then Pt-Off(37+6S,⁻7-6T Pt-Off(43+6S,⁻7-6T Pt-Off(37+6S,⁻13-6T Pt-Off(43+6S,⁻13-6T End Z→S θ→T Pt-On(37+6S,⁻7-6Ans Pt-On(43+6S,⁻7-6Ans Pt-On(37+6S,⁻13-6Ans Pt-On(43+6S,⁻13-6Ans End End Z+(K=26 and Z<8)-(K=24 and Z>1→Z θ+(K=34 and θ<8)-(K=25 and θ>1→θ If W and F<E DelVar I1→L If L and L<16 Then Matr►list([A],1,L₂ For(A,2,8 L₂→L₁ Matr►list([A],A,L₂ .1(L₁+L₂)(L₁≠L₂ {0,0,sum(Ans,1,3),sum(Ans,2,4),sum(Ans,3,5),sum(Ans,4,6),sum(Ans,5,7),sum(Ans,6,8 If .3≤max(max(fPart(Ans/L₁),fPart(Ans/L₂))) or max(.3010299957=abs(DeltaList(log(abs(DeltaList(DeltaList(L₁ Then 15→L 8→A End L+1→L End If L=16 and I or L≠16 [A]ᵀ→[A] L≠16→I End not(L→W If L=15 and F<E Then ClrDraw RecallPic 2 Text(15,2,P+F Pt-On(37,⁻15 Text(23,14,V Pt-On(25,⁻23 For(X,0,1 Text(⁻1,21,X+47,"NO MORE Text(⁻1,29,X+53,"MOVES If not(X StorePic 1 End RecallPic 1 Text(37,49,"Press ENTER Pause DelVar FDelVar PDelVar V30→E End End ClrDraw If F≥E Then min(999,V+1→V min(15015,E+15→E P+F→P DelVar F End If K=22 DelVar F If K≠45 Goto A {V,P,F,E→ʟBJWL ClrHome Disp "Bejeweled 84+","","Game saved.```

Congratulations on finishing and releasing this game! I'm suitably impressed with how quickly you put it together, and how complete it seems to be. Do you have any future plans for it? From what I've heard, you've been busy debugging and de-glitching it over the past 24 hours.
KermMartian wrote:
Congratulations on finishing and releasing this game! I'm suitably impressed with how quickly you put it together, and how complete it seems to be. Do you have any future plans for it? From what I've heard, you've been busy debugging and de-glitching it over the past 24 hours.

I don't have that many future plans for it...that is, unless I figure out how pure-BASIC textsprites would suitably work on the +CSE Seriously, if I figure out how to do that, then I'll do a color calculator port. Until then, though, I have no future plans, except optimizing it more if I find any.

Code:
```.1(L₁+L₂)(L₁≠L₂ ;should be .1(L₁+L₂(L₁≠L₂ {0,0,sum(Ans,1,3),sum(Ans,2,4),sum(Ans,3,5),sum(Ans,4,6),sum(Ans,5,7),sum(Ans,6,8 If .3≤max(max(fPart(Ans/L₁),fPart(Ans/L₂))) or max(.3010299957=abs(DeltaList(log(abs(DeltaList(DeltaList(L₁ ;can be (saves 9 ms, but yet untested) {0,0,sum(Ans,1,2),sum(Ans,2,3),sum(Ans,3,4),sum(Ans,4,5),sum(Ans,5,6),sum(Ans,6,7 If .2≤max(max(fPart(Ans/L₁)),max(fPart(Ans/L₂))) or max(.3010299957=abs(DeltaList(log(abs(DeltaList(DeltaList(L₁ ```
lirtosiast wrote:

Code:
```.1(L₁+L₂)(L₁≠L₂ ;should be .1(L₁+L₂(L₁≠L₂ {0,0,sum(Ans,1,3),sum(Ans,2,4),sum(Ans,3,5),sum(Ans,4,6),sum(Ans,5,7),sum(Ans,6,8 If .3≤max(max(fPart(Ans/L₁),fPart(Ans/L₂))) or max(.3010299957=abs(DeltaList(log(abs(DeltaList(DeltaList(L₁ ;can be (saves 9 ms, but yet untested) {0,0,sum(Ans,1,2),sum(Ans,2,3),sum(Ans,3,4),sum(Ans,4,5),sum(Ans,5,6),sum(Ans,6,7 If .2≤max(max(fPart(Ans/L₁)),max(fPart(Ans/L₂))) or max(.3010299957=abs(DeltaList(log(abs(DeltaList(DeltaList(L₁ ```

As for the first optimization, that means you're adding the L₁≠L₂th element of L₂ . That's an INVALID DIM error for me most of the time.

As for the second one, I'll add that in, but make sure to test it.
Sorry, I meant (L1+(L1!=L2)L2; my intention was to only add the elements of L2 if they're different from those of L1.

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.

»
» Goto page 1, 2  Next
» All times are GMT - 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