Jump to content
IGNORED

2015 Holiday Demo Contest


Opry99er

Recommended Posts

I have decided to move the contest end date up to the 1st of December, unless anyone protests. I want to be able to ship these out and have them at their destination by Christmas Eve. If it is the 15th as I originally anticipated, that leaves alot of work to do and very little time to ship before Christmas.

 

Once the contest ends, we will need to vote on the winner, I will need to finalize the program(s), rework the artwork for the JCard insert, dub all the tapes, package and shrink wrap them, and then ship them out (hopefully in time to arrive by Christmas)...

 

There just won't be enough time. Next year I will start the contest day after Halloween...

 

 

 

Everyone okay with this?

  • Like 1
Link to comment
Share on other sites

The Demo Contributions panel will likely change to red... The cyan does not contrast well with the green quarter panel... Other than that, I am happy with it.

 

The cover will (again) feature the winning demo and not the snowman... I started typing in the chained program last night onto the TI. Got two demos done. :)

 

Having fun doing it.

  • Like 1
Link to comment
Share on other sites

oh... it's a sample! I was just thinking "I don't remember seeing 'Peter Pan Eats Donkeys'... where is that one?" ;)

LOL!!! Yea. Just needed to make one up so I could tweak the sizing and get the offsets/ratios corrected. Took 5-6 prints, but it's rolling now.

 

I put the template together right after the second demo was posted, so only two are real... The rest are, as matt says, a wish list. ;)

 

I even wrote a story for the Charlie Brown/Turkey program. :D

 

 

jcardtemp_zpspp2wopoi.jpg

  • Like 1
Link to comment
Share on other sites

When looking at the picture in Photobucket, do not try to right click and download the picture. You will get the problem you've identified, Schmitzi. Instead, click on the Gear Icon and then click the Download selection from the dropdown. Note that the only two permissions you have to give the site to view the pictures (using No Script in Firefox) are photobucket.com and pbsrc.com.

  • Like 1
Link to comment
Share on other sites

Well that was fun. I got everything I wanted crammed into 10 lines of code. No room for audio, though.... Took me longer than I hoped. Figured out some new tricks needed for my GraphiCV tool (and found bugs). Maybe I go back and fix 'em and figure out how to make it work on Mac.

Edited by unhuman
Link to comment
Share on other sites

Well this don't fit 10 lines but I made it anyways :)

 


1 CALL CLEAR::CALL SCREEN(2)::CALL CHAR(33,"FFFFFFFFFFFFFFFF",34,"000000000080C0E0",35,"FEFEFEFEFEFEFEFE",36,"C0E0F0F8FCFEFFFF")
2 CALL CHAR(37,"F8800000000080F8",38,"1F0100000000011F",48,"00007CFEFEFEFEFE",49,"003C7EFFFF7E3C00",50,"FEFEFEFEFEFEFEFE")
3 CALL CHAR(39,"0303030303030301",40,"80C0E0E0E0E0E0E0",41,"FF7F3F0703030101",51,"FEFEFE7C00000000",42,"E0E0E0E0E0E0E0E0")
4 CALL CHAR(43,"FF7F3E1C00000000",44,"FFFF7F3F1F0F0703",45,"000000000080C0FF",46,"FFFF7F3F1F1F3FFF",47,"E0E0E0E0C0800000")
5 CALL CHAR(56,"FF7F7F3F3F1F1F0F",57,"FFFEFCF8F0E0C080",58,"0F07070707030301",59,"FF7F7F3F3F1F1F0F",60,"FFFFFFFEFEFCFCFC")
6 CALL CHAR(61,"0F07070303010000",62,"F8F8FCFCFEFF7F00",100,"000028107C102800")
7 CALL HCHAR(5,14,33,2)::CALL HCHAR(6,14,33,2)::CALL HCHAR(6,16,34,1)::CALL HCHAR(7,14,33,2)::CALL HCHAR(7,16,35,1)
8 CALL HCHAR(7,17,48,1)::CALL HCHAR(7,18,33,2)::CALL HCHAR(7,20,36,1)::CALL HCHAR(6,17,49,1)::CALL HCHAR(8,14,33,2)
9 CALL HCHAR(8,16,37,1)::CALL HCHAR(8,18,38,1)::CALL HCHAR(8,17,50,1)::CALL HCHAR(8,19,33,2)::CALL HCHAR(9,12,39,1)
10 CALL HCHAR(9,13,33,3)::CALL HCHAR(9,16,35,1)::CALL HCHAR(9,17,50,1)::CALL HCHAR(9,18,33,3)::CALL HCHAR(9,21,40,1)
11 CALL HCHAR(10,13,41,1)::CALL HCHAR(10,14,33,2)::CALL HCHAR(10,16,35,1)::CALL HCHAR(10,17,51,1)::CALL HCHAR(10,18,33,3)
12 CALL HCHAR(10,21,42,1)::CALL HCHAR(11,14,43,1)::CALL HCHAR(11,15,44,1)::CALL HCHAR(11,16,33,1)::CALL HCHAR(11,17,45,1)
13 CALL HCHAR(11,18,46,1)::CALL HCHAR(11,19,33,2)::CALL HCHAR(11,21,47,1)::CALL HCHAR(12,16,56,1)::CALL HCHAR(12,17,33,3)
14 CALL HCHAR(12,20,57,1)::CALL HCHAR(13,16,58,1)::CALL HCHAR(13,17,33,2)::CALL HCHAR(13,19,57,1)::CALL HCHAR(14,17,59,1)
15 CALL HCHAR(14,18,60,1)::CALL HCHAR(15,17,61,1)::CALL HCHAR(15,18,62,1)::CALL COLOR(1,7,1,2,7,1,3,13,1,4,7,1,5,5,1)
16 CALL COLOR(6,5,1,7,5,1,8,5,1,10,16,1)::DISPLAY AT(18,30):"  HAPPY HOLIDAYS TO ALL MY"
17 DISPLAY AT(20,30):"      FELLOW TI USERS"
18 CALL SAY("HOW HOW HOW")::RANDOMIZE::FOR I=3 TO 28::SC=INT(RND*256)+1::VSPD=INT(RND*2)+5
19 CALL SPRITE(#I,100,16,1,SC,VSPD,0)::FOR DEL=1 TO 50::NEXT DEL::NEXT I
20 GOTO 20

  • Like 1
Link to comment
Share on other sites

Use DATA lines for your HCHAR values and it will probably fit.

 

Ex:

 

 

300 FOR I=1 TO 4

310 READ R,C,V

320 CALL HCHAR(R,C,V)

330 NEXT I

.

.

.

1000 DATA 4,3,96,2,10,104,11,20,42,5,6,97

 

 

This will read the data lines into the R C amd V variables and then you use them in your HCHAR statement. This loops 4 times, drawing 4 characters onscreen. ;)

Link to comment
Share on other sites

Well this don't fit 10 lines but I made it anyways :)

 


1 CALL CLEAR::CALL SCREEN(2)::CALL CHAR(33,"FFFFFFFFFFFFFFFF",34,"000000000080C0E0",35,"FEFEFEFEFEFEFEFE",36,"C0E0F0F8FCFEFFFF")
2 CALL CHAR(37,"F8800000000080F8",38,"1F0100000000011F",48,"00007CFEFEFEFEFE",49,"003C7EFFFF7E3C00",50,"FEFEFEFEFEFEFEFE")
3 CALL CHAR(39,"0303030303030301",40,"80C0E0E0E0E0E0E0",41,"FF7F3F0703030101",51,"FEFEFE7C00000000",42,"E0E0E0E0E0E0E0E0")
4 CALL CHAR(43,"FF7F3E1C00000000",44,"FFFF7F3F1F0F0703",45,"000000000080C0FF",46,"FFFF7F3F1F1F3FFF",47,"E0E0E0E0C0800000")
5 CALL CHAR(56,"FF7F7F3F3F1F1F0F",57,"FFFEFCF8F0E0C080",58,"0F07070707030301",59,"FF7F7F3F3F1F1F0F",60,"FFFFFFFEFEFCFCFC")
6 CALL CHAR(61,"0F07070303010000",62,"F8F8FCFCFEFF7F00",100,"000028107C102800")
7 CALL HCHAR(5,14,33,2)::CALL HCHAR(6,14,33,2)::CALL HCHAR(6,16,34,1)::CALL HCHAR(7,14,33,2)::CALL HCHAR(7,16,35,1)
8 CALL HCHAR(7,17,48,1)::CALL HCHAR(7,18,33,2)::CALL HCHAR(7,20,36,1)::CALL HCHAR(6,17,49,1)::CALL HCHAR(8,14,33,2)
9 CALL HCHAR(8,16,37,1)::CALL HCHAR(8,18,38,1)::CALL HCHAR(8,17,50,1)::CALL HCHAR(8,19,33,2)::CALL HCHAR(9,12,39,1)
10 CALL HCHAR(9,13,33,3)::CALL HCHAR(9,16,35,1)::CALL HCHAR(9,17,50,1)::CALL HCHAR(9,18,33,3)::CALL HCHAR(9,21,40,1)
11 CALL HCHAR(10,13,41,1)::CALL HCHAR(10,14,33,2)::CALL HCHAR(10,16,35,1)::CALL HCHAR(10,17,51,1)::CALL HCHAR(10,18,33,3)
12 CALL HCHAR(10,21,42,1)::CALL HCHAR(11,14,43,1)::CALL HCHAR(11,15,44,1)::CALL HCHAR(11,16,33,1)::CALL HCHAR(11,17,45,1)
13 CALL HCHAR(11,18,46,1)::CALL HCHAR(11,19,33,2)::CALL HCHAR(11,21,47,1)::CALL HCHAR(12,16,56,1)::CALL HCHAR(12,17,33,3)
14 CALL HCHAR(12,20,57,1)::CALL HCHAR(13,16,58,1)::CALL HCHAR(13,17,33,2)::CALL HCHAR(13,19,57,1)::CALL HCHAR(14,17,59,1)
15 CALL HCHAR(14,18,60,1)::CALL HCHAR(15,17,61,1)::CALL HCHAR(15,18,62,1)::CALL COLOR(1,7,1,2,7,1,3,13,1,4,7,1,5,5,1)
16 CALL COLOR(6,5,1,7,5,1,8,5,1,10,16,1)::DISPLAY AT(18,30):"  HAPPY HOLIDAYS TO ALL MY"
17 DISPLAY AT(20,30):"      FELLOW TI USERS"
18 CALL SAY("HOW HOW HOW")::RANDOMIZE::FOR I=3 TO 28::SC=INT(RND*256)+1::VSPD=INT(RND*2)+5
19 CALL SPRITE(#I,100,16,1,SC,VSPD,0)::FOR DEL=1 TO 50::NEXT DEL::NEXT I
20 GOTO 20

Could no run this on any XB that uses GKXB commands, DEL is used to delete lines or portions of lines.

So line 19 needed to be changed to:

19 CALL SPRITE(#I,100,16,1,SC,VSPD,0)::FOR DL=1 TO 50::NEXT DL::NEXT I

Link to comment
Share on other sites

I think I understand. I'll try and see what I can do

You can also leverage lines a little bit more efficiently, so if you can't put more call char, maybe you can do something else... Also, you can optimize the strings in CALL CHAR by grouping characters together, just like Magnify(3) sprites... Works for regular chars too. So, 36, 37, 38, 39 could just take one long String...

Edited by unhuman
Link to comment
Share on other sites

I was able to get it to 14

 


1 CALL CLEAR::CALL SCREEN(2)::CALL CHAR(33,"FFFFFFFFFFFFFFFF000000000080C0E0FEFEFEFEFEFEFEFEC0E0F0F8FCFEFFFF")
2 CALL CHAR(37,"F8800000000080F81F0100000000011F030303030303030180C0E0E0E0E0E0E0")::DISPLAY AT(18,30):"  HAPPY HOLIDAYS TO ALL MY"
3 CALL CHAR(41,"FF7F3F0703030101E0E0E0E0E0E0E0E0FF7F3E1C00000000FFFF7F3F1F0F0703")::DISPLAY AT(20,30):"      FELLOW TI USERS"
4 CALL CHAR(48,"00007CFEFEFEFEFE003C7EFFFF7E3C00FEFEFEFEFEFEFEFEFEFEFE7C00000000")::FOR I=1 TO 60::READ R,C,V::CALL HCHAR(R,C,V)::NEXT I
5 CALL CHAR(45,"000000000080C0FFFFFF7F3F1F1F3FFFE0E0E0E0C0800000")::CALL COLOR(1,7,1,2,7,1,3,13,1,4,7,1,5,5,1,6,5,1)
6 CALL CHAR(56,"FF7F7F3F3F1F1F0FFFFEFCF8F0E0C0800F07070707030301FF7F7F3F3F1F1F0F")::CALL COLOR(7,5,1,8,5,1,10,16,1)
7 CALL CHAR(60,"FFFFFFFEFEFCFCFC0F07070303010000F8F8FCFCFEFF7F00",100,"000028107C102800")::RANDOMIZE::FOR I=3 TO 28
8 SC=INT(RND*256)+1::VSPD=INT(RND*2)+5::CALL SPRITE(#I,100,16,1,SC,VSPD,0)::FOR DEL=1 TO 50::NEXT DEL::NEXT I::GOTO 5
9 DATA 5,14,33,5,15,33,6,14,33,6,15,33,6,16,34,7,14,33,7,15,33,7,16,35,7,17,48,7,18,33,7,19,33,7
10 DATA 20,36,6,17,49,8,14,33,8,15,33,8,16,37,8,18,38,8,17,50,8,19,33,8,20,33,9,12,39,9,13,33,9
11 DATA 14,33,9,15,33,9,16,35,9,17,50,9,18,33,9,19,33,9,20,33,9,21,40,10,13,41,10,14,33,10,15,33,10
12 DATA 16,35,10,17,51,10,18,33,10,19,33,10,20,33,10,21,42,11,14,43,11,15,44,11,16,33,11,17,45,11,18
13 DATA 46,11,19,33,11,20,33,11,21,47,12,16,56,12,17,33,12,18,33,12,19,33,12,20,57,13,16,58,13,17,33
14 DATA 13,18,33,13,19,57,14,17,59,14,18,60,15,17,61,15,18,62

Link to comment
Share on other sites

:) you can do better than 14, my friend.

 

HCHAR has a repeat field too. If you have both single HCHARs AND repeated HCHARs, simple put a "1" in the repeat field.

 

You can also put your char definitions in DATA statements and READ them into a string variable.

 

 

200 FOR I=1 TO 3

210 READ CH,CH$

220 CALL CHAR(CH,CH$)

230 NEXT I

.

.

.

300 FOR I=1 TO 4

310 READ R,C,V,P

320 CALL HCHAR(R,C,V,P)

330 NEXT I

 

 

1000 DATA 96,FFFFFFFFFFFFFFFF,100,AB162987612CA32C,104,1119FFEC7634CDF3

1010 DATA 1,1,96,5,3,1,100,1,8,5,104,20,20,1,96,1

 

 

Voila. Now get it under 10. ;)

Edited by Opry99er
Link to comment
Share on other sites

I was able to get it to 14

 


1 CALL CLEAR::CALL SCREEN(2)::CALL CHAR(33,"FFFFFFFFFFFFFFFF000000000080C0E0FEFEFEFEFEFEFEFEC0E0F0F8FCFEFFFF")
2 CALL CHAR(37,"F8800000000080F81F0100000000011F030303030303030180C0E0E0E0E0E0E0")::DISPLAY AT(18,30):"  HAPPY HOLIDAYS TO ALL MY"
3 CALL CHAR(41,"FF7F3F0703030101E0E0E0E0E0E0E0E0FF7F3E1C00000000FFFF7F3F1F0F0703")::DISPLAY AT(20,30):"      FELLOW TI USERS"
4 CALL CHAR(48,"00007CFEFEFEFEFE003C7EFFFF7E3C00FEFEFEFEFEFEFEFEFEFEFE7C00000000")::FOR I=1 TO 60::READ R,C,V::CALL HCHAR(R,C,V)::NEXT I
5 CALL CHAR(45,"000000000080C0FFFFFF7F3F1F1F3FFFE0E0E0E0C0800000")::CALL COLOR(1,7,1,2,7,1,3,13,1,4,7,1,5,5,1,6,5,1)
6 CALL CHAR(56,"FF7F7F3F3F1F1F0FFFFEFCF8F0E0C0800F07070707030301FF7F7F3F3F1F1F0F")::CALL COLOR(7,5,1,8,5,1,10,16,1)
7 CALL CHAR(60,"FFFFFFFEFEFCFCFC0F07070303010000F8F8FCFCFEFF7F00",100,"000028107C102800")::RANDOMIZE::FOR I=3 TO 28
8 SC=INT(RND*256)+1::VSPD=INT(RND*2)+5::CALL SPRITE(#I,100,16,1,SC,VSPD,0)::FOR DEL=1 TO 50::NEXT DEL::NEXT I::GOTO 5
9 DATA 5,14,33,5,15,33,6,14,33,6,15,33,6,16,34,7,14,33,7,15,33,7,16,35,7,17,48,7,18,33,7,19,33,7
10 DATA 20,36,6,17,49,8,14,33,8,15,33,8,16,37,8,18,38,8,17,50,8,19,33,8,20,33,9,12,39,9,13,33,9
11 DATA 14,33,9,15,33,9,16,35,9,17,50,9,18,33,9,19,33,9,20,33,9,21,40,10,13,41,10,14,33,10,15,33,10
12 DATA 16,35,10,17,51,10,18,33,10,19,33,10,20,33,10,21,42,11,14,43,11,15,44,11,16,33,11,17,45,11,18
13 DATA 46,11,19,33,11,20,33,11,21,47,12,16,56,12,17,33,12,18,33,12,19,33,12,20,57,13,16,58,13,17,33
14 DATA 13,18,33,13,19,57,14,17,59,14,18,60,15,17,61,15,18,62

 

I recently learned that you can leave trailing '0's off in the CALL CHAR pattern definitions. XB will automatically fill the definition out to the right with zeros for you.

 

So, "00007CFEFEFEFEFE003C7EFFFF7E3C00FEFEFEFEFEFEFEFEFEFEFE7C00000000" from line 4, can be "00007CFEFEFEFEFE003C7EFFFF7E3C00FEFEFEFEFEFEFEFEFEFEFE7C"

 

Also, did you see what Tursi did to squish my data? I think you can get 44 bytes in a single DATA line that way. Instead of DATA 5,14 for your R,C values, you would pre-compute (R*256)+C, and put that value in the DATA statement. Then after performing something like READ N to get the squished bytes, you deconstruct them again. R=INT(N/256)::C=N-R. I imagine this gets messy if any values of R are greater than 127, but both our cases don't have that issue.

 

Right now, with the small values, the DATA statement is holding about 34 bytes per line.

 

Now, I recognize you need triplets, not tuples. But do you? If you drew all of your 33s then all of your 34s, and so on, you could possibly pull them out of the data and into a loop.. I preceeded my coordinates with a tuple of count,asciicode and then the list of R,C locations for that asciicode.

 

btw: I like the theme of yours :) It looks good.

Link to comment
Share on other sites

Hey games... I think you should VCHARs instead of HCHARs... You can eliminate a bunch of the repeated HCHARs because your graphic there has several vertical repeats of the FFFFFFFFFFFFFFFF character. VCHAR works just like HCHAR, but in THIS particular case, you can get some space economy out of using VCHAR instead of HCHAR.

 

Right now, if you changed HCHAR to VCHAR in 4, it would run precisely the same way. If you use VCHAR, you can get some repeats and save a bunch of data.

 

Just my $.02

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...