Jump to content
hloberg

Uno+ game in XB

Recommended Posts

wrote a new version on Uno card game, Uno Plus. added color, speed, speech and some of the variations on Uno such as:

All draw 2 on 2: All other players draw 2 when a 2 is played.

7 swap: play a 7 and you can swap cards with another player.

Draw till play: must draw cards till one is playable.

Can't play Draw 4 till last playable: Can only play a draw 4 if it is the only card that can be played.

Take must play: If you draw a card and it is playable you can play it immediately.

Also have a option to save you game choice profile to disk

here is the game screen.

PLAYSCREEN.thumb.jpg.e844538a2f7d7470f012ef10b632b877.jpg

It's on my projects blog:

It's also on my https://ti99resources.wordpress.com/

add here is the files: unoplus.zip

Enjoy

 

  • Like 9

Share this post


Link to post
Share on other sites

looking at compiling this and you have two def statements that are nono's..  can you break those into a table of values instead of def?

 

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, arcadeshopper said:

looking at compiling this and you have two def statements that are nono's..  can you break those into a table of values instead of def?

 

You need also to remove the float on line 250 (it seems related to the random cards generator, so it should be quite easy to rewrite).

Share this post


Link to post
Share on other sites
Posted (edited)

Oh, sounds cool to compile it. OK, give me a day & I'll post here a corrected version. I assume you are going to be using HW 256 compiler?

just looked at the code. the functions should be easy to replace. I programmed this in Notepad++ and I'll just do a search and replace with the code. 

line 250 is a much faster way of getting a random number then RND. I probably have it several places in the code. I'll replace it with RND.

Also I use CALL SAY a lot which is also no supported by 256. i'll remove those references since they usually was included with a CALL SOUND too it shouldn't impact the game.

Also, when you do compile it you might have to add some timing loops or the action flies by so fast you can't tell what happened. You have my blessing to alter the program for compiling purposes if need be.

You know, I converted this from my Atari Microsoft BASIC version were I had to use timing loops to slow down the code or it zipped by too fast, not so in TIXB. One of the main differences was, Atari MSB can use integers as well a float. Just changing in Atari MSB from float to integer really sped up that program. You really don't realize how these floating point routines really slow a program down. 

 

 

 

Edited by hloberg
  • Like 2

Share this post


Link to post
Share on other sites

removed all the INT() references since they would be pointless. a table won't work for the functions. might just make it  GOSUBs since the compile won't slow.

the original version of TI99 Uno was in KullXB package and had multi-color fonts but was painfully slow with screen writes. I had toyed with using 256XB to create multi-color fonts in this Uno+ (which is why the black background) but it'd took too long to have modified. maybe one day.

  • Like 2

Share this post


Link to post
Share on other sites

dumb. I removed all the INT which is fine for the compile but testing, no so much.

 

Share this post


Link to post
Share on other sites
dumb. I removed all the INT which is fine for the compile but testing, no so much.
 
No floating point

Sent from my LM-V600 using Tapatalk

Share this post


Link to post
Share on other sites
26 minutes ago, arcadeshopper said:

needs to be integer only, no floating point

the program under Atari MSB was integer set. But I now remember having to make a few changes to compensate for TIXB float. I just gotta look over both codes to find those again & set back to integer. on the plus side all the function calls were converted. I just put the formula in the place of the fn calls.

  • Like 2

Share this post


Link to post
Share on other sites

Will this line compile? I=((A<1)*-3)+((A>3)*-1)+(((A>0) AND (A<4)*-1)*A)

did see anything specific in manual it wouldn't but haven't tried the compiler yet.

Share this post


Link to post
Share on other sites
1 hour ago, hloberg said:

Will this line compile? I=((A<1)*-3)+((A>3)*-1)+(((A>0) AND (A<4)*-1)*A)

did see anything specific in manual it wouldn't but haven't tried the compiler yet.

yes, it should.

Share this post


Link to post
Share on other sites
8 hours ago, hloberg said:

Oh, sounds cool to compile it. OK, give me a day & I'll post here a corrected version. I assume you are going to be using HW 256 compiler?

just looked at the code. the functions should be easy to replace. I programmed this in Notepad++ and I'll just do a search and replace with the code. 

line 250 is a much faster way of getting a random number then RND. I probably have it several places in the code. I'll replace it with RND.

Also I use CALL SAY a lot which is also no supported by 256. i'll remove those references since they usually was included with a CALL SOUND too it shouldn't impact the game.

Also, when you do compile it you might have to add some timing loops or the action flies by so fast you can't tell what happened. You have my blessing to alter the program for compiling purposes if need be.

You know, I converted this from my Atari Microsoft BASIC version were I had to use timing loops to slow down the code or it zipped by too fast, not so in TIXB. One of the main differences was, Atari MSB can use integers as well a float. Just changing in Atari MSB from float to integer really sped up that program. You really don't realize how these floating point routines really slow a program down. 

 

 

 

I use XB256 to speedup the conversion. In particular CALL LINK("SYNC"), CALL LINK("DELAY",VALUE) for adding delays. Usually 2/3 frames of delay to manage the input (CALL KEY/JOYST).

The FOR loops are replaced with "DELAY". E.g. FOR T=1 TO 1000::NEXT T is equivalent to CALL LINK("DELAY",4000).

 

The CALL SAY is supported (the limits are indicated in the Compiler's manual). Do not remove them, but it's better to check if the Speech is available or not:

CALL PEEK(-28672,SS)::IF SS=96 THEN CALL SAY("HELLO")

If not available add a CALL SOUND instead.

 

The CALL SOUND with negative duration have to be adapted in some cases, adding a delay after them. In general a CALL SOUND(-100,...) needs a CALL LINK("DELAY",10).

 

For RND you can use a CALL LINK("IRND",10,TP) instead that generates an INT from 0 to 9 assigned to the TP variable.

 

 

 

  • Like 2

Share this post


Link to post
Share on other sites
Posted (edited)

I went ahead a pulled the CALL SAYs, they are cute but not necessary since they are all companion-ed with CALL SOUND statements. 

It's mostly tested and works (stayed up way to late last night testing :) ). I have all the float points fixed and the functions converted. Put back INT statements for testing as won't run under TI99XB float correctly without them. but when ran under Atari MSB's integer math without INT the program ran fine so the compiler ignoring them should be OK. If there are any bugs let me know. otherwise, you have my permission to do whatever needed in 256 to slow the program down or whatever so it can compile. 

when done l'll post to https://ti99resources.wordpress.com/

with the other 3 versions of Uno I have done for the TI99 😁 . Oh, I also want the code. If I ever do decide to add colored text using 256 it'll be easy to just add it to the compile & recompile.

Here is the file in Classic99 FIAD format & the original program in .txt (for comparison) and the modified program in .txt.

have fun compiling. Im already moving on to another project of adding an educational software section to https://ti99resources.wordpress.com/

UNO+forcompile.7z

Edited by hloberg
  • Like 6

Share this post


Link to post
Share on other sites

The compiled version is available here: UNO+

 

Note that various changes were required (fix for file load/saving, crash due to double "::", fix for some DISPLAY AT, etc.) to be able to compile the source above... Please, test it since I do not remember how to play and this is also the English version of the game.

  • Like 2

Share this post


Link to post
Share on other sites
4 hours ago, tmop69 said:

The compiled version is available here: UNO+

 

Note that various changes were required (fix for file load/saving, crash due to double "::", fix for some DISPLAY AT, etc.) to be able to compile the source above... Please, test it since I do not remember how to play and this is also the English version of the game.

thanks for doing this! :)

Share this post


Link to post
Share on other sites

Updated version 1.1 available: UNO+ v1.1

 

Please, download this new one, since the old version is crashing at game over!

 

 

 

 

  • Like 1

Share this post


Link to post
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...