You can help CodeWalrus stay online by donating here. | New CodeWalrus | Old (dark mode) | Old (light) | Discord server

Bejeweled 84+ progress thread

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

0
b/Calculator Development publicado por u/JWinslow23 July 16, 2015, 06:41:07 PM
Introducing, a first look at what I want to make into a full game: Bejeweled 84+!

Click on the image to jump to the latest version!



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.

Download attached. Tell me what you think!

EDIT: Source code for the curious (processed with TokenIDE):
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
Last Edit: July 21, 2015, 12:17:54 AM by JWinslow23
Inicia sesión o crea una cuenta para dejar un comentario
u/alexgt July 16, 2015, 07:42:01 PM
Awesome! Is it written in basic, the source looks like Axe but I haven't coded on my 84+ for a long time :-\?! Because the board drawing is a little slow or is that an animation?
u/JWinslow23 July 16, 2015, 07:44:11 PM
Quote from: alexgt on July 16, 2015, 07:42:01 PM
Awesome! Is it written in basic, the source looks like Axe but I haven't coded on my 84+ for a long time :-\?! Because the board drawing is a little slow or is that an animation?
Lol XD No, it is not Axe. This is entirely in pure TI-BASIC. All of the drawing (aside from lines and points to make the score box and board border) is actually made from textsprites. The link I gave in the post should explain them to you, and how you can make some yourself.
u/alexgt July 16, 2015, 07:51:50 PM
That is cool I will have to look into that O.O
u/Unicorn July 16, 2015, 10:53:53 PM
Nice looking, there will now be Bejeweled for everyone. Except for HP Prime users.  9_9

* Unicorn runs
u/JWinslow23 July 16, 2015, 10:57:28 PM
Quote from: Unicorn on July 16, 2015, 10:53:53 PM
Nice looking, there will now be Bejeweled for everyone. Except for HP Prime users.  9_9

* Unicorn runs
Make an emulator for the monochrome calcs like the nSpire :P
* Unicorn turns out to be running to his calculator to program such
u/Dream of Omnimaga July 16, 2015, 11:29:17 PM
This looks amazing. O.O if only text sprites were faster. I wonder if they work on the CE?
u/alexgt July 17, 2015, 12:10:24 AM
A z80 emu is out of my field at the moment but that would be amazing O.O
u/Unicorn July 17, 2015, 12:11:25 AM
Quote from: alexgt on July 17, 2015, 12:10:24 AM
A z80 emu is out of my field at the moment but that would be amazing O.O

We first have to figure out how to control a robot using a prime, this comes later :P
u/alexgt July 17, 2015, 12:14:43 AM
Before that I need to learn java so I can program the robot we will make in school, but we are getting off topic already :-\

back on topic why didn't you use Pix-on()? is it faster with the text sprites?
u/JWinslow23 July 17, 2015, 12:19:46 AM
Quote from: DJ Omnimaga on July 16, 2015, 11:29:17 PM
This looks amazing. O.O if only text sprites were faster. I wonder if they work on the CE?
Thanks. And I agree with you, I was a bit annoyed at the long time it took. The one faster option that doesn't take TOO much memory is Pics, which we ALL know is never gonna happen :P

And I imagine you can do something similar on the CE, but if the fonts are different, then modifications and new reference tables have to be made. :P

Quote from: alexgt on July 17, 2015, 12:14:43 AM
back on topic why didn't you use Pix-on()? is it faster with the text sprites?
It would take me over 9000 drawing commands to actually draw the things without text sprites. Text sprites are not only cool, but they also take not a whole lot of memory (but it still takes up a fair amount), and are decently fast if you know how to use them ;)

Also, 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 :P



Source code for the curious:

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


Download attached. Tell me what you think!
Last Edit: July 17, 2015, 12:32:18 AM by JWinslow23
u/alexgt July 17, 2015, 12:40:05 AM
Awesome! I want to try this out sometime when I have time :)
u/JWinslow23 July 17, 2015, 12:41:30 AM
Quote from: alexgt on July 17, 2015, 12:40:05 AM
Awesome! I want to try this out sometime when I have time :)
You'll have more of a fun time when I add match checking and removal, though ;)
u/alexgt July 17, 2015, 12:45:25 AM
Yeah, that will probably be implemented before I have time (if everything goes smoothly :P)
u/Dream of Omnimaga July 17, 2015, 02:58:11 AM
I'll try the latest version of your game soon :walrii:

EDIT: So I ended up not trying it much. I instead wanted to see how it would look like on the CE and unfortunately it seems that Text( has a gap at the top and bottom of the characters, not just the top, so there would be a space between characters:



I multiplied text spaces a bit. And since the chars are a little different, the game might as well be themed as an horror version of Bejeweled and be renamed to Jelebewed. :P
Last Edit: July 17, 2015, 03:17:19 AM by DJ Omnimaga
Start a Discussion

b/Calculator Development

Showcase your newest TI, Casio, HP, Numworks or Sharp calculator projects here, discuss programming and share or browse user tutorials!

320
Topics
Explore Board
Website statistics


MyCalcs | Ticalc.org | Cemetech | Omnimaga | TI-Basic Developer | MaxCoderz | TI-Story | Casiocalc.org | Casiopeia | The Museum of HP Calculators | HPCalc.org | CnCalc.org | Music 2000 Community | TI Education | Casio Education | HP Calcs | NumWorks | SwissMicros | Sharp Calculators
Powered by EzPortal