Jump to content

oddemann

Members
  • Posts

    537
  • Joined

  • Last visited

Posts posted by oddemann

  1. 2 hours ago, Retrospect said:

    It's okay .... by the time I'm onto my tenth or eleventh RXB game people might start seeing the difference between this and standard XB.

    I think that showing off RXB in this way is the best way, to "sell" it.

    And also by more games popping up, more stuff will show up. So I think now in the beginning it is a valid question to ask... "What makes it better!" But as I say, over time and more practical use of RXB will show what is better. A show and tell of a feature in RXB is not the same as the practical application of RXB in a game.

    Looks very nice! Great job @Retrospect Looks very smooth!

    Looking forward to more practical examples of RXB in a game!

    • Like 1
    • Thanks 1
  2. 3 hours ago, jrhodes said:

    I don't need A.I. to make me lazier... I have alcohol and the burden of life in general to do that for me ;-)

    lol, I see that point... For me... the point of a computer IS the make it easier. To find ways to use the computer to do some stuff automatically. This is just a new level of how to use the computer.
    AND... at the same time... I see how this could kill AND give time for more creativity.
    Also the hole A.I. question is now a real thing.

    The time of "I'll be back" is getting closer, or? lol

  3. 8 minutes ago, pixelpedant said:

    Now the question is, can it be convinced to write a TI BASIC game.  Understanding that TI BASIC and TI-BASIC are unrelated dialects, and so it must attend to this distinction. 

    This is a start... And I guess that the more we poke it, the more it will learn and make perfect over time. Even if there is TI BASIC and TI-BASIC, it is interesting that we are at the point where we can almost have a computer make a computer program on request!

  4. With spaceship...

     

    Spoiler
    10 REM spaceship game
    20 PRINT "Welcome to the spaceship game!"
    30 PRINT "You are the pilot of a spaceship."
    40 PRINT "You have to navigate through a asteroid field and reach the end of the game."
    50 PRINT "Use the arrow keys to move your spaceship left, right, up, or down."
    60 PRINT "Be careful, if you hit an asteroid, you lose."
    70 PRINT "Good luck!"
    80 GOTO 100
    
    100 REM initialize variables
    110 POSITIONX = 20
    120 POSITIONY = 20
    130 ASTEROIDX = INT(RND(1)*40) + 1
    140 ASTEROIDY = INT(RND(1)*40) + 1
    150 SCORE = 0
    
    200 REM draw spaceship and asteroid
    210 GRAPHICS 1
    220 SETCOLOR 2,1,1
    230 PLOT POSITIONX, POSITIONY
    240 SETCOLOR 3,1,1
    250 PLOT ASTEROIDX, ASTEROIDY
    260 SETCOLOR 0,0,0
    270 DRAWTO POSITIONX+1, POSITIONY
    280 DRAWTO POSITIONX, POSITIONY+1
    290 DRAWTO POSITIONX-1, POSITIONY
    300 DRAWTO POSITIONX, POSITIONY-1
    310 DRAWTO POSITIONX+1, POSITIONY
    
    400 REM get user input
    410 GETKEY k
    420 IF k = "up" THEN POSITIONY = POSITIONY-1
    430 IF k = "down" THEN POSITIONY = POSITIONY+1
    440 IF k = "left" THEN POSITIONX = POSITIONX-1
    450 IF k = "right" THEN POSITIONX = POSITIONX+1
    
    500 REM check for collision
    510 IF POSITIONX = ASTEROIDX AND POSITIONY = ASTEROIDY THEN GOTO 900
    
    600 REM update score
    610 SCORE = SCORE + 1
    620 PRINT "Score: "; SCORE
    630 GOTO 200
    
    900 REM game over
    910 PRINT "Game over! You hit an asteroid."
    920 PRINT "Your final score is: "; SCORE
    930 END

     

     

  5. I got Chat GPT to make me a Basic game!

    10 RANDOMIZE

    20 NUMBER = INT(RND(1)*10) + 1

    30 PRINT "I'm thinking of a number between 1 and 10."

    40 INPUT "What is your guess? ", GUESS

    50 IF GUESS = NUMBER THEN GOTO 90

    60 PRINT "Sorry, that's not the number I was thinking of."

    70 PRINT "Try again!"

    80 GOTO 40

    90 PRINT "Congratulations! You guessed the number!"

    100 END

    • Like 3
  6. This proves my point!
     


    Everyone that did NOT need it, is a "Master of programming!"

    The people that need this kinda help did not say a word. Only "Masters of programming!" said that THEY did not see the need for it! Clearly, the need pops up now and then AND will continue to do that. It is kinda a hint that there is a need for it and I think that EVEN "Masters of programming!" maybe can learn something or maybe not. But when the Master says no, "beginners" will shut up!

    But beginners or people that have forgotten, will benefit from some kinda "just for programming" - like "Tips & Tricks for Optimizing Straight TI Extended BASIC Programs

  7. On 1/14/2023 at 1:41 PM, SteveB said:

    Today seems to be TiCodEd advertising day ... sorry for that.

     

    For sprites the TiCodEd Char Editor has some nice features, like copy & pasting definitions up to 2x2 definitions directly from and to the editor in the "Hex Definition" field at the buttom. You can also load a picture in the background as a model for your sprite. If there is no one comming up with a trick for Magellan, you may give it a try.

     

    For backgrounds and maps, Megellan still rules and I have no intention to challange this.

     

    image.thumb.png.568f4eefefae708d78127671f256601e.png

     

     

    For sizes 1xN or 2x2N an additional section for animations appears:

     

    GQzP4n-gG4qNwX2YwT9QLRFVDGZzm2xQe6j5aUyq_QpeY6zed8Dd6V782uCdXUWql-P1xlZzrvA__ArReRTVC40msD76bxRc4GZn9I9qPLnJuv-5NqSrJvBhUHaKbn4aMqKTZkU7afKkW-K0rp19TxPg7-hgn_vNCeTdkByYp9NG1gEL_nVClL7P3L2u

     

    You can play the animation while editing to see the result immediately.

    ZcHfUgQYpi5kmTPZo21i2xfo3e3dD-1LEoZb-ZfkbyB2oNVMi6KExrGlyKhYfBG3d47pVx6lTHYpDpFiwDYa7bjPGdJ_2enLtyZfyV8zPrwq3KcIwdB3tMT3noYp3oRozPh2WbI45uPKxb_NRCgmsIXWPuGDUvFf9VOoSGl_TRBR76ZAfe2HRJ9RdJw0

     

    How do you get the animation to appear...

    Set it to User - Row > Column (as many as the anim is)

  8. 3 hours ago, Ksarul said:

    Yeah, the possibilities here are really bad. Do note that the actual terms of the new license haven't been released yet, so the end result may be a lot better than the leaked data may indicate. Of course, it could also be worse. For now, I am waiting to see what the real terms will be in the finalized OGL document.

    It is out!

     

  9. Life repeats itself! And I kinda know how long "in a man's age"!

    WotC/Hasbro are now doing the same as Texas Instrument did, back in the day (shoot them self in the foot). WotC/Hasbro is trying to get 100% control of D&D. The have/had a Open Gaming licence for 23 years and now... they want it ALL. You make something to D&D, they will own it.

    Sad to see that people do not learn! This is what happens when "bean counters" are in control and they kick out the enthusiasts!

  10. On 12/30/2022 at 7:13 PM, RXB said:

    Who ever said fast as possible? Did anyone suggest a Super Computer worth millions of dollars?

    Console only Basic is super slow and inefficient and everyone know this even you. 

    Any upgrade to it would be an improvement, even XB cart is faster overall, and RXB has faster assembly routines that are backwards compatible.

    So now even a cartridge in the cart slot is just a step to far for you?

    And you cannot run any other language on the TI without a 32K so that sure is not console alone.

    Well LOGO maybe...

    Is the Cassette a step to far too?

    Or does each program have to be typed in by hand?

    LOL - It is funny, you keep painting yourself into a corner with RXB! You have LEARNED to program efficiently a computer... But NOT learned to efficiently communicate with people! (Or understand?) LOL, but the world is as it is and all is good LOL ;)

    I was thinking the other day... "What Mr. RXB should do, is to do all the improvements on the NEW "EX Basic - vn 200" and IF he did that... optimizing the hell out of that "cart", then people would treat him like a GOD! Get all the possible speed out of the EX Basic that everyone IS using, THAT would change things. To bad he is so stuck on RXB! But... I guess it is just stupid trying to propose that idea to him. I will let it go! He has learned great programming skill, but forgot to learn to listen to what people want! What program would needed to be installed? (hehehehe)"

    So... I guess it will continue as in 2022!

    Happy new year to Mr RXB AND everyone else! May this AGAIN, be a great TI 99/4A year!

    And I hope it will continue to be as it has been, some "WOW that's great!", some "I don't agree!" and much more fun with respect, agreement and disagreement... BUT always with respect!

     

     


    PS! Thinking... Maybe even standard Basic could benefit from optimal programming under the hood. "Same" Basic, but with all the best routines to get out all the speed and forgotten options in BASIC 2023!

    TI 99 4A - Rotate PC-Text.gif

    • Confused 1
  11.  There are two lines that points to lines NOT in the listing...

    1040 and 1050 points to 1430... and I think it is the "explosion" of the submarine. It is looking for if any part of the Submarine is hit. (Char 144 or 145)
    Also a counter of hits.

    This is "fixed", but some new problems... Will let my brain rest now 😛

    Also got a new issue with line 1070, guess it has something to do with for-next loop. But... later...


     

    Spoiler
    100 REM <--OPERATION SEA WOLF-->
    110 REM <--BY MSOFT-->
    120 REM <--(C) 1983 MSOFT-->
    130 RESTORE
    140 CALL CLEAR
    150 CALL CHAR(128,"0082FEE0C0C0C000")
    160 PRINT TAB(6);"OPERATION SEA WOLF"::TAB(7);"BY MARK HANKINS"::TAB(9);"FOR C & VG"::::::::::
    170 FOR A=3 TO 32 STEP 2
    180 CALL HCHAR(1,A,128)
    190 CALL HCHAR(24,A,128)
    200 NEXT A
    210 CALL VCHAR(1,3,128,24)
    220 CALL VCHAR(1,31,128,24)
    230 FOR A=1 TO 6
    240 READ NOT,DUR
    250 CALL SOUND(DUR,NOT,2)
    260 NEXT A
    270 V$="PRESS ANY KEY TO BEGIN!"
    280 RO=20
    290 CO=5
    300 GOSUB 1170
    310 CALL KEY(0,K,S)
    320 CALL KEY(1,K,S1)
    330 IF (S=0)*(S1=0) THEN 310
    340 CALL CLEAR
    350 PRINT "WOULD YOU LIKE INSTRUCTIONS (Y/N)?"
    360 CALL KEY(0,K,S)
    370 IF K=89 THEN 1230
    380 IF K=78 THEN 390 ELSE 360
    390 PRINT "PLEASE ENTER YOUR SKILL LEVEL 0(EASY)-9(HARD)"
    400 CALL KEY(0,K,S)
    410 IF S=0 THEN 400
    420 IF (K<48)+(K>57) THEN 400
    430 NSHIP=(K-48)*6+16
    440 REM  DEFINE CHARACTERS
    441 CALL CHAR(128,"FFFFFFFFFFFFFFFF")
    450 CALL CHAR(136,"00030203FF7F3F1F")
    460 CALL CHAR(137,"00B19E9CFEFEFEFE")
    470 CALL CHAR(144,"000003031F3F1F00")
    480 CALL CHAR(145,"00309090FBFCFB00")
    490 CALL CHAR(146,"00007EFFFF7E0000")
    491 CALL CHAR(147,"91482559A22A5584")
    492 CALL CHAR(148,"0044092628080648")
    493 CALL CHAR(149,"0004210028025000")
    494 CALL CHAR(150,"0000100220080000")
    500 CALL CHAR(152,"00")
    510 REM SET UP SCREEN
    520 CALL CLEAR
    530 CALL SCREEN(5)
    540 CALL COLOR(12,16,1)
    541 CALL COLOR(13,15,1)
    550 CALL COLOR(14,15,6)
    560 CALL COLOR(15,12,1)
    570 CALL COLOR(16,1,6)
    580 CALL HCHAR(1,1,152,32*12)
    581 CALL HCHAR(2,15,128)
    582 CALL HCHAR(3,13,128,5)
    583 CALL HCHAR(4,11,128,8)
    584 CALL HCHAR(5,11,128,8)
    585 CALL HCHAR(6,13,128,5)
    590 CALL HCHAR(12,16,136)
    600 CALL HCHAR(12,17,137)
    610 V$="SCORE=:  0"
    620 RO=1
    630 CO=1
    640 GOSUB 1170
    650 REM SET UP GAME
    660 SC=0
    670 ROS=INT(8*RND)+13
    680 PO=13
    690 SH=0
    700 Z=0
    710 C=16
    720 REM SUB MOVEMENT
    730 FOR Q=31 TO 3 STEP-2
    740 CALL KEY(3,K,S)
    750 IF K=13 THEN 990
    760 RA=C+(K=83)-(K=68)
    770 IF (RA<3)+(RA>30) THEN 890
    780 IF RA<>C THEN 840
    790 CALL JOYST(1,DX,DY)
    800 RA=C+DX/4
    810 RA=INT(32*((RA-1)/32-INT((RA-1)/32)))+1
    820 CALL KEY(1,K,S)
    830 IF K=18 THEN 990
    840 CALL HCHAR(12,C,152,2)
    850 CALL HCHAR(12,RA,136)
    860 CALL HCHAR(12,RA+1,137)
    870 C=RA
    880 IF Z=1 THEN 1010
    890 CALL HCHAR(ROS,5,32,28)
    900 CALL HCHAR(ROS,Q,144)
    910 CALL HCHAR(ROS,Q+1,145)
    920 CALL SOUND(150,-1,0)
    930 NEXT Q
    940 SH=SH+1
    950 IF SH=NSHIP THEN 1330
    960 ROS=INT(8*RND)+13
    970 GOTO 730
    980 REM FIRE
    990 Y=C
    1000 IF Z=1 THEN 760
    1010 FOR A=PO TO PO+3
    1020 CALL GCHAR(A,Y,GET)
    1030 CALL HCHAR(A,Y,146)
    1040 IF GET=144 THEN 1430
    1050 IF GET=145 THEN 1430
    1060 CALL HCHAR(A,Y,32)
    1070 NEXT A
    1080 CALL SOUND(150,-3,0)
    1090 PO=PO+3
    1100 IF PO>=22 THEN 1140
    1110 Z=1
    1120 IF Q<3 THEN 940
    1130 GOTO 890
    1140 Z=0
    1150 PO=13
    1160 GOTO 890
    1170 FOR A=1 TO LEN(V$)
    1180 CH=ASC(SEG$(V$,A,1))
    1190 CALL HCHAR(RO,CO+A,CH)
    1200 NEXT A
    1210 RETURN
    1220 REM INSTRUCTIONS:
    1230 CALL CLEAR
    1240 PRINT "YOUR JOB IS TO STOP THE":"ENEMY SUBS FROM REACHING":"THE HARBOUR IN THE LEFT HAND":"CORNER."::
    1250 PRINT :::"NOTE::":" THE FIRE KEY IS THE ENTER":" KEY":"S & D MOVE THE SHIP":::
    1260 PRINT ::"IF USING THE JOYSTICKS USE":"JOYSTICK NO.:"
    1270 PRINT "ANY KEY TO BEGIN"::
    1280 CALL KEY(0,K,S)
    1290 CALL KEY(1,K,S1)
    1300 IF (S=0)*(S1=0) THEN 1280
    1310 CALL CLEAR
    1320 GOTO 390
    1330 CALL CLEAR
    1340 PRINT "YOU HIT":SC/100:"SHIPS":"OUT OF MAXIMUM OF":NSHIP:"YOU SCORED":SC:"POINTS"
    
    1430 REM BANG
    1431 REM NEED TO STOP THE SUBMARINE AFTER HIT!
    1432 REM ADD EXPLOTION, AS NOW IT DOS NOT WORK
    1433 REM GET A BETTER EXPLOTION SOUND
    1434 REM
    
    1440 FOR BANG= 147 to 150
    1445 CALL SOUND(1000,110,2,-3,3,440,4)
    1450 CALL HCHAR(A,Y,I)
    1460 CALL HCHAR(A,Y-1,I)
    1470 NEXT BANG
    1480 SC=SC+100
    1485 REM V$="SCORE=:  0" – ADD SCORE ON SCREEN???
    1490 GOTO 1060
    
    
    1500 DATA 110,10,120,10,130,10,140,10,150,10,160,10

     

     

  12. I found SEAWOLF from Virgin... To me it looks like this is something of the same thing. I see that this i programmed smarter. BUT... I am not all that good, to me it looks like a copy of what I started with. I found some of the same stuff. But I think that SEAWOLF might be a better version.

    What dos the experts say?

     

    Spoiler
    80 GOSUB 5000
    90 DIM TORP(3)
    100 RANDOMIZE
    105 CALL CLEAR
    106 SH=0
    107 DIVE=0
    110 CALL CHAR(112,"0")
    120 CALL SCREEN(2)
    125 CALL CHAR(88,"0")
    130 CALL CHAR(120,"0000000000003C3C")
    140 CALL CHAR(121,"0000003C3C")
    150 CALL CHAR(122,"3C3C")
    152 CALL CHAR(123,"0000000000001818")
    154 CALL CHAR(124,"0000001818")
    156 CALL CHAR(125,"1818")
    158 CALL CHAR(126,"0")
    160 CALL CHAR(128,"0")
    170 CALL CHAR(136,"183C183C183C183C")
    180 CALL CHAR(137,"0000AAFFFFAA")
    190 CALL CHAR(138,"183C99FFFF993C18")
    200 CALL CHAR(144,"000032498431CA04")
    210 CALL CHAR(152,"00000000FFFEFCF8")
    220 CALL CHAR(153,"00000000FFFFFFFF")
    230 CALL CHAR(154,"00041C3EFFFF7F7F")
    240 CALL CHAR(155,"00000080E0FF5EFC")
    250 CALL CHAR(156,"006363FFFFFF55FF")
    260 CALL CHAR(157,"000000010FFFF57F")
    270 CALL CHAR(158,"20303C3C3C3C3C3C")
    280 CALL CHAR(96,"00203CFF7F")
    290 CALL CHAR(104,"24995A3C995A3CFF")
    300 GOTO 600
    350 TORP(1)=20
    360 TORP(2)=0
    362 TORP(3)=0
    365 DIVE=0
    370 PR$="TOR"
    380 Z=3
    385 ZC=26
    390 GOSUB 440
    400 PR$="SUNK"
    410 Z=6
    420 GOSUB 440
    422 PR$="SCORE"
    424 Z=9
    426 GOSUB 440
    428 GOSUB 500
    430 GOTO 710
    440 FOR I=1 TO LEN(PR$)
    450 CALL HCHAR(Z,ZC+I,ASC(SEG$(PR$,I,1)))
    455 CALL SOUND(-100,-5,20)
    460 NEXT I
    470 RETURN
    500 Z=4
    505 FOR I=1 TO 3
    510 PR$=" "&STR$(TORP(I))
    520 Q=LEN(PR$)
    530 FOR J=1 TO Q
    540 CALL HCHAR(Z,(28-Q)+J,ASC(SEG$(PR$,J,1)))
    550 CALL SOUND(-100,-3,20)
    560 NEXT J
    570 Z=Z+3
    580 NEXT I
    590 RETURN
    600 FOR I=3 TO 8
    610 CALL COLOR(I,11,2)
    620 NEXT I
    621 CALL COLOR(8,6,6)
    622 CALL COLOR(9,5,4)
    625 CALL COLOR(10,7,11)
    630 CALL COLOR(11,4,4)
    640 CALL COLOR(12,6,5)
    650 CALL COLOR(13,2,2)
    660 CALL COLOR(14,2,4)
    670 CALL COLOR(15,13,5)
    675 CALL COLOR(16,2,6)
    676 CALL COLOR(1,2,2)
    680 CALL SCREEN(6)
    690 CALL HCHAR(1,1,128,768)
    700 GOTO 350
    710 FOR I=15 TO 23
    720 CALL HCHAR(I,8,112,9)
    730 NEXT I
    740 CALL HCHAR(19,8,137,9)
    750 CALL VCHAR(15,12,136,9)
    760 CALL HCHAR(19,12,138)
    770 GOTO 4000
    1000 REM    dive 
    1010 FOR I=13 TO 4 STEP-1
    1020 CALL HCHAR(I,4,128,17)
    1030 FOR DELAY=1 TO 100
    1040 NEXT DELAY
    1050 NEXT I
    1060 SH=0
    1070 DIVE=0
    1080 RETURN
    1100 REM    surface 
    1110 FOR I=4 TO 8
    1120 CALL HCHAR(I,4,88,17)
    1130 FOR DELAY=1 TO 100
    1140 NEXT DELAY
    1145 NEXT I
    1150 FOR I=9 TO 13
    1160 CALL HCHAR(I,4,144,17)
    1170 FOR DELAY=1 TO 100
    1180 NEXT DELAY
    1190 NEXT I
    1200 MOVE=1
    1210 DIVE=1
    1220 RETURN
    1300 REM    ship 
    1310 IF DIVE=1 THEN 1330
    1315 SH=0
    1320 RETURN
    1330 A=INT(RND*10)
    1340 IF A>7 THEN 1370
    1350 SH=152
    1360 GOTO 1380
    1370 SH=155
    1380 CALL HCHAR(8,4,SH)
    1390 FOR DELAY=1 TO 50
    1400 NEXT DELAY
    1410 CALL HCHAR(8,5,SH)
    1420 CALL HCHAR(8,4,SH+1)
    1430 FOR DELAY=1 TO 50
    1440 NEXT DELAY
    1450 CALL HCHAR(8,6,SH)
    1460 CALL HCHAR(8,5,SH+1)
    1470 CALL HCHAR(8,4,SH+2)
    1480 SC=6
    1520 A=INT(RND*2)+1
    1530 SC=SC+A
    1535 IF SC>20 THEN 1600
    1540 CALL HCHAR(8,SC,SH)
    1550 CALL HCHAR(8,SC-1,SH+1)
    1555 CALL HCHAR(8,SC-2,SH+2)
    1560 CALL HCHAR(8,(SC-2)-A,88,A)
    1570 RETURN
    1600 CALL HCHAR(8,20,SH+1)
    1610 CALL HCHAR(8,19,SH+2)
    1620 CALL HCHAR(8,12,88,7)
    1630 FOR DELAY=1 TO 50
    1640 NEXT DELAY
    1650 CALL HCHAR(8,20,SH+2)
    1660 CALL HCHAR(8,19,88)
    1670 FOR DELAY=1 TO 50
    1680 NEXT DELAY
    1690 CALL HCHAR(8,20,88)
    1700 SH=0
    1710 RETURN
    1800 REM    fire torpedo 
    1810 IF TORP(1)>0 THEN 1815
    1812 RETURN
    1815 TORP(1)=TORP(1)-1
    1820 CALL SOUND(1000,-5,20)
    1830 TOR=1
    1840 II=13
    1850 IF II<11 THEN 1884
    1851 IF II=13 THEN 1855
    1852 CALL HCHAR(II+1,12,126)
    1855 FOR J=1 TO 3
    1860 CALL HCHAR(II,12,119+J)
    1865 FOR DELAY=1 TO 50
    1870 NEXT DELAY
    1875 NEXT J
    1880 GOTO 1910
    1884 CALL HCHAR(II+1,12,126)
    1885 FOR J=1 TO 3
    1890 CALL HCHAR(II,12,122+J)
    1895 FOR DELAY=1 TO 50
    1900 NEXT DELAY
    1905 NEXT J
    1910 II=II-1
    1915 IF II=8 THEN 1940
    1920 RETURN
    1940 CALL GCHAR(8,12,XXX)
    1950 IF XXX<89 THEN 1970
    1960 GOSUB 2000
    1970 GOSUB 500
    1975 TOR=0
    1980 CALL VCHAR(9,12,144,5)
    1990 RETURN
    2000 REM     hit ship 
    2010 CALL SOUND(2000,-5,20,110,25)
    2020 CALL HCHAR(8,12,104)
    2025 GOSUB 2192
    2030 CALL COLOR(10,11,7)
    2040 CALL COLOR(10,7,11)
    2045 GOSUB 2192
    2050 CALL SCREEN(7)
    2060 CALL SCREEN(12)
    2070 CALL SCREEN(10)
    2080 CALL SCREEN(6)
    2090 CALL HCHAR(8,10,88,5)
    2100 CALL HCHAR(8,12,158)
    2110 FOR DELAY=1 TO 500
    2120 NEXT DELAY
    2130 CALL HCHAR(8,12,88)
    2140 TORP(2)=TORP(2)+1
    2150 SH=0
    2160 TORP(3)=TORP(3)+(XXX-151)*10
    2190 RETURN
    2192 FOR DELAY=1 TO 200
    2194 NEXT DELAY
    2196 RETURN
    2200 REM    radar 
    2210 EMRA=INT(RND*50)+1
    2220 RADAR=1
    2230 EMR=17
    2240 EMC=15
    2250 RS=112
    2260 EMR1=17
    2270 EMC1=15
    2280 RS1=112
    2290 CALL HCHAR(EMR,EMC,96)
    2300 CALL SOUND(1000,110,20)
    2310 RETURN
    2350 EMRA=EMRA-1
    2355 IF EMRA>0 THEN 2360
    2356 CALL HCHAR(EMR,EMC,RS)
    2357 RADAR=0
    2358 RETURN
    2360 M=INT(RND*2)
    2370 N=INT(RND*2)
    2380 Q=INT(RND*3)+1
    2390 ON Q GOTO 2410,2440,2470,2500
    2400 GOTO 2380
    2410 EMR=EMR+M
    2420 EMC=EMC+N
    2430 GOTO 2520
    2440 EMR=EMR+M
    2450 EMC=EMC-(N+1)
    2460 GOTO 2520
    2470 EMR=EMR-M
    2480 EMC=EMC+N
    2490 GOTO 2520
    2500 EMR=EMR-M
    2510 EMC=EMC-(N+1)
    2520 CALL GCHAR(EMR,EMC,RS)
    2525 IF RS=96 THEN 2550
    2530 IF RS=138 THEN 3000
    2540 IF RS<>128 THEN 2580
    2550 EMR=EMR1
    2560 EMC=EMC1
    2565 RS=RS1
    2570 RETURN
    2580 CALL HCHAR(EMR,EMC,96)
    2590 CALL HCHAR(EMR1,EMC1,RS1)
    2600 EMR1=EMR
    2610 EMC1=EMC
    2620 RS1=RS
    2630 RETURN
    2700 REM    move 
    2710 FOR I=1 TO 2
    2720 CALL KEY(0,K,S)
    2730 IF S=0 THEN 2750
    2740 GOSUB 2800
    2750 NEXT I
    2760 RETURN
    2800 IF RADAR=0 THEN 2760
    2805 IF K<>88 THEN 2830
    2810 EMR=EMR-1
    2820 GOTO 2910
    2830 IF K<>69 THEN 2860
    2840 EMR=EMR+1
    2850 GOTO 2910
    2860 IF K<>83 THEN 2890
    2870 EMC=EMC+1
    2880 GOTO 2910
    2890 IF K<>68 THEN 2920
    2900 EMC=EMC-1
    2910 GOSUB 2520
    2920 RETURN
    3000 REM   hit by enemy 
    3005 CALL HCHAR(EMR,EMC,96)
    3007 CALL HCHAR(EMR1,EMC1,RS1)
    3010 CALL SOUND(2000,-5,20,110,25)
    3015 IF DIVE=1 THEN 3210
    3020 CALL COLOR(13,12,12)
    3030 CALL COLOR(13,11,11)
    3040 CALL COLOR(13,9,9)
    3050 CALL COLOR(13,7,7)
    3055 CALL COLOR(8,11,2)
    3060 PR$="HARD LINES YOU VE BEEN HIT BY"
    3070 Z=2
    3080 ZC=2
    3090 GOSUB 440
    3100 PR$="A DEPTH CHARGE"
    3110 Z=3
    3120 GOSUB 440
    3130 PR$="PRESS Y TO PLAY AGAIN"
    3140 Z=14
    3150 GOSUB 440
    3160 CALL KEY(0,K,S)
    3170 IF S=0 THEN 3160
    3180 IF K<>89 THEN 3200
    3190 GOTO 100
    3200 END
    3210 DC=INT(RND*20)
    3212 GOTO 3449
    3215 DI=13
    3220 CALL KEY(0,K,S)
    3230 IF S=0 THEN 3260
    3240 IF K<>74 THEN 3260
    3250 GOTO 3300
    3260 DC=DC-1
    3270 IF DC>0 THEN 3280
    3275 DIVE=0
    3277 GOTO 3005
    3280 CALL SOUND(-100,110,20)
    3290 IF DIVE=1 THEN 3220
    3300 CALL HCHAR(DI,4,128,17)
    3310 FOR DELAY=1 TO 100
    3320 NEXT DELAY
    3330 DIVE=0
    3335 SH=0
    3340 DI=DI-1
    3350 IF DI=3 THEN 3400
    3360 GOTO 3260
    3400 FOR DELAY=1 TO 1000
    3410 NEXT DELAY
    3420 CALL HCHAR(EMR,EMC,138)
    3430 RADAR=0
    3445 GOTO 4000
    3449 FOR XX=1 TO 3
    3450 FOR YY=200 TO 900 STEP 100
    3460 CALL SOUND(-100,YY,5)
    3470 NEXT YY
    3475 NEXT XX
    3480 GOTO 3215
    4000 REM     main program 
    4003 CALL SOUND(-100,1000,15,2000,20)
    4005 CALL SOUND(-100,3000,10)
    4010 CALL KEY(0,K,S)
    4020 IF S=0 THEN 4090
    4030 IF K<>85 THEN 4060
    4040 IF DIVE=1 THEN 4090
    4050 GOSUB 1100
    4060 IF K<>74 THEN 4090
    4070 IF DIVE=0 THEN 4090
    4080 GOSUB 1000
    4090 IF SH>0 THEN 4140
    4100 QQ=INT(RND*50)
    4110 IF QQ>5 THEN 4130
    4120 GOSUB 1300
    4130 GOTO 4150
    4140 GOSUB 1520
    4150 IF DIVE=1 THEN 4160
    4155 TOR=0
    4156 GOTO 4200
    4160 IF TOR=1 THEN 4210
    4170 CALL KEY(0,K,S)
    4175 IF S=0 THEN 4200
    4180 IF K<>32 THEN 4200
    4190 GOSUB 1800
    4200 GOTO 4220
    4210 GOSUB 1850
    4220 IF RADAR=1 THEN 4270
    4230 QQ=INT(RND*100)
    4240 IF QQ>5 THEN 4275
    4250 GOSUB 2200
    4260 GOTO 4275
    4270 GOSUB 2350
    4275 IF DIVE=1 THEN 4290
    4280 GOSUB 2700
    4290 IF TOR=1 THEN 4000
    4300 IF TORP(1)<1 THEN 4315
    4310 GOTO 4000
    4315 CALL COLOR(8,11,2)
    4320 PR$="YOU VE NO MORE TORPEDOES"
    4330 Z=3
    4340 ZC=2
    4350 GOSUB 440
    4360 GOTO 3130
    5000 CALL CLEAR
    5005 PRINT TAB(8);"COPYRIGHT 1984"
    5006 PRINT "    VIRGIN GAMES LIMITED": : : :
    5010 PRINT TAB(8);"**************"
    5020 PRINT TAB(8);"*            *"
    5030 PRINT TAB(8);"*  SEA WOLF  *"
    5040 PRINT TAB(8);"*            *"
    5060 PRINT TAB(8);"*    by      *"
    5070 PRINT TAB(8);"*            *"
    5080 PRINT TAB(8);"*P J FINKILL *"
    5090 PRINT TAB(8);"*            *"
    5100 PRINT TAB(8);"**************": : : : : : : : :
    5110 PRINT "hit any key to continue."
    5120 CALL KEY(3,K,S)
    5130 IF S=0 THEN 5120
    5140 CALL CLEAR
    5150 PRINT "      INSTRUCTIONS"
    5160 PRINT "      ************": : :
    5170 PRINT "you are the commander of a  submarine and your task is  to sink as many of the enemy"
    5180 PRINT "ships as possible with your supply of twenty torpedoes.": :
    5190 PRINT "there are two different     types of ships to sink :-"
    5200 PRINT "    1.tankers "
    5210 PRINT "    2.supply ships": :
    5220 PRINT "of the two the supply ships score the most points."
    5230 PRINT "the number of points scored depends on where you hit theship.": :
    5232 PRINT:
    5234 PRINT "hit any key to continue."
    5236 CALL KEY(3,K,S)
    5237 IF S=0 THEN 5236
    5238 CALL CLEAR
    5240 PRINT "watch your radar as there   are submarine destroyers    searching for you."
    5250 PRINT "they have found you when    they are in the centre of   your radar.": :
    5255 PRINT "if you have the periscope upwhen the warship finds you  then you will hear an alarm "
    5256 PRINT "if you are quick to dive    then you may escape !": : : : :
    5260 PRINT "HIT ANY KEY TO CONTINUE."
    5270 CALL KEY(3,K,S)
    5280 IF S=0 THEN 5270
    5290 CALL CLEAR
    5300 PRINT "     directions"
    5310 PRINT "     ----------"
    5320 PRINT: : :
    5330 PRINT " U = up periscope."
    5340 PRINT " J = down periscope.": :
    5350 PRINT " SPACE BAR = fire torpedo.": :
    5360 PRINT " E = up"
    5370 PRINT " X = down"
    5380 PRINT " S = left"
    5390 PRINT " D = right": : : :
    5400 PRINT "hit any key to continue."
    5410 CALL KEY(3,K,S)
    5420 IF S=0 THEN 5410
    5430 RETURN

     

     

  13. 10 hours ago, TheBF said:

    Speed: 

    Look at what you added to the main loop.

    • Reading the data statements takes a lot of extra time.
    • Changing a character pattern takes a lot of extra time.

     

    This is why the original was done the way it was done. 

    BASIC has no forgiveness. :) 

     

    So a "rule of thumb" as we say in English is: Do all the setup code outside of the loop.  Keep the inside of the loop to a minimum for maximum speed.

     

    Why it stops:

    Also, after you have read the data once, you need to use RESTORE to start reading it again at the beginning.

    add line 1450 and it runs forever

     

    1450 RESTORE

     

    Better solution: 

    READ the DATA and do CALL CHAR() statements for all the characters as the setup code.  

    Inside the loop, just put characters on the screen with HCHAR. This is faster. 

     

    Have fun.

    OK... learned how to reset data...

    Made a loop outside to read and assign value to different CALL CHAR. So far so good. (Intention is to make as few lines as possible.)

    But I am stomped by how to add the placement of the CHAR on the screen as it is 4 different locations. 2 CHAR is in the same box at different location within that box.
    - Can I make it a mathematical logical thing - NO, it has a pattern, but hard to make it "add" up.
    - I could probeable read it all and make a DIM and then store every value in its own place and then a loop could call it up "logically". Here I need to read up.
    - I could add all the 16 lines to make it all work. But that is adding a lot of lines
    - Are there other options?

    Also I got an Idea for a game... Have some circles that is moving and then you have to move your "X" into the circle between all the moving "protection" of the middle. Make some circles that are moving in opposite way to the one beside itself.
    "Lucky Spacewalker in his TI fighter is trying to blow up the mega killer star that is getting ready to blow up his planet!" (I am so creative, I don't know where I get my ideas from hehehehe)

    • Like 1
  14. I am trying to make it go as fare as it can with the lines there is in this program and to also maybe understand what is missing.

    So I added data for the sound, so it dos not stop on that. I adjusted the text a little and I am now stuck at "Would you like instructions(Y/N)?" Everything looks OK, but it dos not respond to Y or N. Also around 300 and in the looking for a "key push" it jumps past asking for what lvl you want... I think. Also I tried trace and it helped me understand some more of the program, but not why it dos not respond to CALL KEY. Anyone?

     

    Spoiler
    100 REM <--OPERATION SEA WOLF-->
    110 REM <--BY MSOFT-->
    120 REM <--(C) 1983 MSOFT-->
    130 RESTORE
    140 CALL CLEAR
    150 CALL CHAR(128,"0082FEE0C0C0C000")
    160 PRINT TAB(6):"  OPERATION SEA WOLF"::TAB(7):"  BY MARK HANKINS"::TAB(9):"  FOR C & VG"::::::::::
    170 FOR A=3 TO 32 STEP 2
    180 CALL HCHAR(1,A,128)
    190 CALL HCHAR(24,A,128)
    200 NEXT A
    210 CALL VCHAR(1,3,128,24)
    220 CALL VCHAR(1,31,128,24)
    230 FOR A=1 TO 6
    240 READ NOT,DUR
    250 CALL SOUND(DUR,NOT,2)
    260 NEXT A
    270 V$="PRESS ANY KEY TO BEGIN!"
    280 RO=20
    290 CO=5
    300 GOSUB 1170
    310 CALL KEY(0,K,S)
    320 CALL KEY(1,K,S1)
    330 IF (S=0)*(S1=0) THEN 310
    340 CALL CLEAR
    350 PRINT "WOULD YOU LIKE INSTRUCTIONS (Y/N)?"
    360 CALL KEY(0,K,S)
    370 IF K=89 THEN 1230
    380 IF K=78 THEN 390 ELSE 400
    390 PRINT "PLEASE ENDER YOUR SKILL LEVEL - 0=EASY - 9=HARD"
    400 CALL KEY(0,K,S)
    410 IF S=0 THEN 400
    420 IF (K<48)+(K>57) THEN 400
    430 NSHIP=(K-48)*6+16
    440 REM  DEFINE CHARACTERS
    441 CALL CHAR(128,"FFFFFFFFFFFFFFFF"
    450 CALL CHAR(136,"00030203FF7F3F1F"
    460 CALL CHAR(137,"00B19E9CFEFEFEFE"
    470 CALL CHAR(144,"000003031F3F1F00"
    480 CALL CHAR(145,"00309090FBFCFB00"
    490 CALL CHAR(146,"00007EFFFF7E0000"
    500 CALL CHAR(152,"00"
    510 REM SET UP SCREEN
    520 CALL CLEAR
    530 CALL SCREEN(5)
    540 CALL COLOR(12,16,1)
    541 CALL COLOR(13,15,1)
    550 CALL COLOR(14,15,6)
    560 CALL COLOR(15,12,1)
    570 CALL COLOR(16,1,6)
    580 CALL HCHAR(1,1,152,32*12)
    581 CALL HCHAR(2,15,128)
    582 CALL HCHAR(3,13,128,5)
    583 CALL HCHAR(4,11,128,8)
    584 CALL HCHAR(5,11,128,8)
    585 CALL HCHAR(6,13,128,5)
    590 CALL HCHAR(12,16,136)
    600 CALL HCHAR(12,17,137)
    610 V$="SCORE=:  0"
    620 RO=1
    630 CO=1
    640 GOSUB 1170
    650 REM SET UP GAME
    660 SC=0
    670 ROS=INT(8*RND)+13
    680 PO=13
    690 SH=0
    700 Z=0
    710 C=16
    720 REM 
    730 FOR Q=31 TO 3 STEP -2
    740 CALL KEY()
    750 IF K=13 THEN 990
    760 RA=C+(K=83)-(K=68)
    770 IF (RA<3)+(RA>30) THEN 890
    780 IF RA<>C THEN 840
    790 CALL JOYST(1,DX,DY)
    800 RA=C+DX/4
    810 RA=INT(32*((RA-1)/32-INT((RA-1)/32)))+1
    820 CALL KEY(1,K,S)
    830 IF K=18 THEN 990
    840 CALL HCHAR(12,C,152,2)
    850 CALL HCHAR(12,RA,136)
    860 CALL HCHAR(12,RA+1,137)
    870 C=RA
    880 IF Z=1 THEN 1010
    890 CALL HCHAR(ROS,5,32,28)
    900 CALL HCHAR(ROS,Q,144)
    910 CALL HCHAR(ROS,Q+1,145)
    920 CALL SOUND(150,-1,0)
    930 NEXT Q
    940 SH=SH+1
    950 IF SH=NSHIP THEN 1330
    960 ROS=INT(8*RND)
    970 GOTO 730
    980 REM FIRE
    990 Y=C
    1000 IF Z=1 THEN 760
    1010 FOR A=PO TO PO+3
    1020 CALL GCHAR(A,Y,GET)
    1030 CALL HCHAR(A,Y,146)
    1040 IF GET=144 THEN 1430
    1050 IF GET=145 THEN 1430
    1060 CALL HCHAR(A,Y,32)
    1070 NEXT A
    1080 CALL SOUND(150,-3,0)
    1090 PO=PO+3
    1100 IF PO>=22 THEN 1140
    1110 Z=1
    1120 IF Q<3 THEN 940
    1130 GOTO 890
    1140 Z=0
    1150 PO=13
    1160 GOTO 890
    1170 FOR A=1 TO LEN(V$)
    1180 CH=ASC(SEG$(V$,A,1))
    1190 CALL HCHAR(RO,CO+A,CH)
    1200 NEXT A
    1210 RETURN
    1220 REM INSTRUCTIONS:
    1230 CALL CLEAR
    1240 PRINT "YOUR JOB IS TO STOP THE":"ENEMY SUBS FROM REACHING":"THE HARBOUR IN THE LEFT HAND":"CORNER."::
    1250 PRINT :::"NOTE::":" THE FIRE KEY IS THE ENTER":" KEY":"S & D MOVE THE SHIP":::
    1260 PRINT ::"IF USING THE JOYSTICKS USE":"JOYSTICK NO.:"
    1270 PRINT "ANY KEY TO BEGIN"::
    1280 CALL KEY(
    1290 CALL KEY(
    1300 IF (S=0)*(S1=0) THEN 1280
    1310 CALL CLEAR
    1320 GOTO 390
    1330 CALL CLEAR
    1340 PRINT "YOU HIT":SC/100:"SHIPS":"OUT OF MAXIMUM OF":NSHIP:"YOU SCORED":SC:"POINTS"
    
    1500 DATA 110,10,120,10,130,10,140,10,150,10,160,10

     

     

×
×
  • Create New...