Last year, jonbush and I started a project we called TI-FLOW, a port of flow free for the TI-84+SE. Since then the project went dead for a while, and recently we have returned to the development of TI-FLOW. Interestingly enough, it seems PT_ also started working on a flow game for the TI-84+CSE a little after we returned to our game. Progress has gone smoothly so far, and has reached a point at which we thought it was time to post our progress to Cemetech.

The game is planned to work on the TI-84+ grey scale calculators.
TI-FLOW features many levels, and is expandable to play even more levels in the future.
The game will also save your progress, completed and perfectly completed levels.

The game is in pure TI-Basic

In the future we may port the game to color calculators such as the TI-84+CE.
Here is an animated gif of what we have so far. We are currently working on optimizing the line erasing and flow drawing, and fully implementing the progress saving features.



The current implementation features 300 levels, and the ability to selectively load packs to the calculator.

We also plan to provide support for users to create their own packs, either with a separate program, or by submission to us.
It has been brought to our attention that some of the 3x3 text-sprite font characters that we are using may be difficult to read or distinguish from other letters. If possible, earthnite and I would like to retain this look in our program, but usability is more important.

Does anybody have any ideas on how to improve characters, specifically P and B? Would you rather see standard 3x5 Text(? Thanks.
Looks cool, and nice use of letters as a replacement for colors Smile Though the custom font you made is cool, I think you should probably go with regular Text() to make it more readable.
Hmm this is cool! Very Happy I had the idea of porting flow some some time ago, and it is cool that someone has done this. The graphics look quiet good, especially for tibasic. The only problem is that it seems that tibasic is not fast enough for this Sad hopefully you will be able to optimize it Smile
also, you say this game is for ti84+ greyscale, but the it84+ plus does not actually support greyscale (only in hackish ways using native code). It defiantly does not support greyscale in tibasic Wink
c4ooo wrote:
Hmm this is cool! Very Happy I had the idea of porting flow some some time ago, and it is cool that someone has done this. The graphics look quiet good, especially for tibasic. The only problem is that it seems that tibasic is not fast enough for this Sad hopefully you will be able to optimize it Smile
also, you say this game is for ti84+ greyscale, but the it84+ plus does not actually support greyscale (only in hackish ways using native code). It defiantly does not support greyscale in tibasic Wink


We have made significant progress optimizing the line following and draw/erase algorithm, which should be implemented shortly. There are faster ways to do the initial board drawing, but we decided that we liked the animation effect.

earthnite and I understand about the lack of support for hardware grayscale - but you could consider the checkerboard pattern a kind of halftone grayscale. You could also say that black and white is just 1-bit grayscale. Smile
If you Google "black and white images" you see, grey scale? I consider things that don't have color grey scale, I suppose to be more specific then you could call it black and white, or even more specific, black and lack of black, since there are no white pixels, only black, and off.

And doesn't black and white fall under grey scale? I don't see what's the big deal.
I see what you mean, but the way people will interpret simething should be more improtant then a "technical" definition you invented Wink Mixing on/off pixels to fool the eye into seeing a diferent color is called dithering. Smile
c4ooo wrote:
I see what you mean, but the way people will interpret simething should be more improtant then a "technical" definition you invented Wink


I don't think most people would make the distinction between BW and grayscale anyway. It's interesting how a larger conversation can devolve into a debate over an insignificant technicality.
It's because on Cemetech (or with 1 person on Omnimaga), from experience, people can derail IRC and forum discussions with semantics debates about the most insignificant matters imaginable. Razz
I'll try to be more clear next time, but lets stick to the topic.

We have started porting the program to the CE. The CE version will support even larger boards, colors, and everything already in the BW version.

More to come soon!
We have been steadily making progress on TI-FLOW, and have been refining our level storage techniques. Currently we have three packs each, each with 100 levels. The first pack contains 5x5 and 6x6 boards, the second 7x7 and 8x8 boards, and the third 9x9 and 10x10.



With our current compression techniques, we are able to achieve an efficiency of approximately 15.84 bytes per level. The packs are currently stored as programs, and the user runs they pack the wish to play to start the game. This triggers several actions and tells the master program what progress information to recall.

For the TI-84+CE version, we hope to build these packs and more into the program, and include a selection screen that displays progress for each level.

Edit: We recently finished transitioning our packs to a new compression standard that supports boards larger than 10x10 so that packs are packs are compatible with both the BW and color calculators.
I have updated the 3px font, hopefully its better than before, but still needs some work, maybe? What do you guys think?

Hello all. We have been working on optimizing and making sure everything works before we can implement the last few features.

Level packs are now even better than before with compatibility between Color and BW versions and can be even bigger.

The cursor algorithm has been completely rewritten, hopefully for the best, but still in testing.

We need some help optimizing these bits of code, If you can help, that would be great!

Code:
For([recursiven],1,30)
   64+[recursiven]
   Text(53,Ans,sub(" ++' '^^x' '?^^o     ''^^o    ^'^  ",min(29,[recursiven]),1
   Text(57,Ans,sub(" 'YY ^^oY^^o ''^^o '++ '^^x'    ?^^o?  ",min(29,[recursiven]),1
   If Ans>81
   Then
      If Ans=82
      Text(8,82,"    00
      If Ans=84
      Text(15,86,"00
      If Ans=86
      Text(22,82,"000
      If Ans=88
      Text(29,88,"-
   End
   If Ans<82
   Then
      Text(24,Ans,sub("'Y' '^^x' Y+Y ''^^x  ",[recursiven],1
      Text(10,Ans,sub("'YY ^^oY^^o '^^x^^x '^^^x  ",[recursiven],1
      Text(31,Ans,sub("'Y? '++ '^^x' '+^^o+'",[recursiven],1
   End
End
Text(8,86+4(W<9),W
Text(15,86+4(V<=10),V-1


Code:
30-3U->T
For([recursiven],1,121,2)
   max(1,[recursiven]-60->A
   min(61,[recursiven]->B
   Line(A,Ans,Ans,A
   [recursiven]>60
   Line(min(60,A+Ans),B+not(Ans),B+not(Ans),min(60,A+Ans),0
   T
   If [recursiven]-Ans>Ans and [recursiven]<12U+2Ans+4
   Then
      max(Ans,[recursiven]-Ans-6U-2->A
      min(6U+T+2,[recursiven]-T
      Line(A,Ans,Ans,A
   End
End
For(A,1,U
   For([recursiven],1,U
      [A](A,[recursiven]
      If Ans
      Then
         Text(6A-5+T,6[recursiven]-3+T,sub("ABCDEFGHIJKLMNO",Ans,1
         T
         Line(6[recursiven]-5+Ans,66-6A-Ans,6[recursiven]-5+Ans,62-6A-Ans,0
         Line(6[recursiven]-4+Ans,67-6A-Ans,6[recursiven]-4+Ans,61-6A-Ans,0
         Line(6[recursiven]+1+Ans,66-6A-Ans,6[recursiven]+1+Ans,62-6A-Ans,0
      End
   End
End


Code:
Repeat Ans
   L1(dim(L1->I
   If G=[A](int(Ans),100fPart(Ans))-[A](min(U,int(Ans)+1),100fPart(Ans
   Ans+1->L1(1+dim(L1
   If G=[A](int(Ans),100fPart(Ans))-[A](int(Ans),min(U,100fPart(Ans)+1
   Ans+.01->L1(1+dim(L1
   If G=[A](int(Ans),100fPart(Ans))-[A](max(1,int(Ans)-1),100fPart(Ans
   Ans-1->L1(1+dim(L1
   If G=[A](int(Ans),100fPart(Ans))-[A](int(Ans),max(1,100fPart(Ans)-1
   Ans-.01->L1(1+dim(L1
   Ans=I
End
Is a part of the level playing done already?

Edit: Earthnite just told me that I can play levels but it doesn't save them yet.
So I wanted to suggest, as I said to PT_, randomly adding textsprites of pumps and other things that could occur on pipes, e.g.

Code:
If randInt(1,10
EDIT: As mr womp womp said in the following post, this line is wrong, it should be
If not(randInt(0,9
Then
Coordinates -> XY
sub("Spritedata for three objects",5randInt(1,3)-4,5
prgmDISPSPRIT
End
Nik wrote:
Is a part of the level playing done already?

Edit: Earthnite just told me that I can play levels but it doesn't save them yet.
So I wanted to suggest, as I said to PT_, randomly adding textsprites of pumps and other things that could occur on pipes, e.g.

Code:
If randInt(1,10
Then
Coordinates -> XY
sub("Spritedata for three objects",5randInt(1,3)-4,5
prgmDISPSPRIT
End

I haven't been paying attention to this project much, but in that code, why the if statement?

Code:
Coordinates -> XY
sub("Spritedata for three objects",5randInt(1,3)-4,5
prgmDISPSPRIT

Since its a random positive integer, the if statement will always go through... Its kind of like doing

Code:
If 1=1
Then
End

seems fairly useless Razz
Oh.
Stupid me Razz
I mean something like "If not(randInt(0,9" Wink
Thank you!
Hello again,

I've implemented the move counter, and made a .gif of the new cursor functionality.



Enjoy!
Nik wrote:
Is a part of the level playing done already?

Edit: Earthnite just told me that I can play levels but it doesn't save them yet.
So I wanted to suggest, as I said to PT_, randomly adding textsprites of pumps and other things that could occur on pipes, e.g.

Code:
If randInt(1,10
EDIT: As mr womp womp said in the following post, this line is wrong, it should be
If not(randInt(0,9
Then
Coordinates -> XY
sub("Spritedata for three objects",5randInt(1,3)-4,5
prgmDISPSPRIT
End


Just for clarification, this is not the same game as Pipes, Pipe Mania, or similar games. Here is a screenshot from the real Flow Free game:

I know, I just thought this would enhance the graphics.

Also, earlier you called those connecting lines "pipes", that brang me to the idea of adding pipe elements.
  
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 3
» 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

 

Advertisement