Jump to content

InfernalKeith

Members
  • Content Count

    805
  • Joined

  • Last visited

Posts posted by InfernalKeith


  1. LClwKIa.jpg

     

    Okay, here's the prize package for this month -- a grab bag of old school goodies from my own collection. You get "Entertainment Games in TI BASIC and Extended BASIC," one of the old SAMS book/cassette package combos, "Terrific Games For the TI 99/4A," a cool book of games which make great programming exercises, and an original Not Polyoptics cassette game, "Sengoku Jidai." (I MAY or may not have the original manual for this in my files somewhere. If I do, I'll throw it in.)

     

    I know not all of you are as enamored of the original old-school artifacts from our beloved TI's origins, but these are some cool things that I've found useful over the years and I hope they find a good home. Good luck and high scores!

     

    Keith

    • Like 2

  2. I picked it because I've hardly played it. When I got Rasmus's 3-in-1 cart I was so into Titanium, it was the only one I gave serious gameplay time to. Going back to revisit the cart the other day, I realized Scramble was pretty kickass, but I'm super new at it. I plan to rectify that this month.

     

    Still deciding on the prize -- I think I have something unique for this month.


  3. Just wanted to add my voice to the chorus of amazement at how great these games are. I think sometimes I get spoiled when I see Youtube videos, or even when I play new games on emulation, but to see a cartridge go into my stock 1983-era TI system and that kind of amazing results come out... it gives me chills. I look forward to spending a lot of time with these games!

    • Like 4

  4. For some reason, after "BATTLE COMMENCES" in line 360 it rearranges the colons. Just change them to : : :: (one, then space, then one, then space, then two together) and it should be fine. It looks right on the screen above, but pastes back in weird.


  5. You and Buck should try the two-player version. It's playable now. Rocco and I have been having a lot of fun with it, he's actually asked to play it multiple times and has interrupted Overwatch to play. I probably wouldn't have gotten so many ideas for the AI without his help.


  6. News bulletin: AI is hard to program! :)

     

    I'm going to make SOME kind of working AI today if it kills me. It will probably be bad but I will have a working one-player version of the game today. Once I get that going I'll do more nuanced work to it. I've got the concepts I want down, it's just daunting turning them into code and I'm trying hard to work through that "this is tough, I quit" spot.

     

    The balance between attack (moving pawns toward the goal, looking ahead to avoid walking into blind alleys, to find paths of least resistance, etc), defense (blocking the enemy's home row) and aggressive defense (pinpointing enemies moving closer to your side and going after them) is a lot to juggle. It's hard to remember I thought this was originally gonna be an entrant in a 30-line program contest...

    • Like 1

  7. I just realized I don't have WinRAR on my laptop and I have to leave for work, so I'm gonna cut and paste the code here and invite you to do the same.

     

    Here's the beta version, minus the AI. It's a working two-player version of the game.

     

    There is a minor scoring bug that we discovered last night that I've only seen pop up once, I will try to root it out this weekend.

     

    I'm interested in your thoughts on the interface. I like it and my son (who's not used to keyboard-based anything) found it relatively intuitive and easy to use, but I would love some feedback on it.

     

    You use the classic ESDX keys to move. You can also move diagonally with W R Z C. If you move a pawn two square, you move, hit enter, then move again. If you move once then press M to cancel, you can use the other move on a different pawn.

     

    If you move a pawn onto an enemy pawn, there is a battle until only one survives. If you move a pawn onto another of your pawns, they will merge. If their combined total is over 9, any extra points are lost.

     

    If you move a pawn across the board and onto the free zone of your color at the opposite side, you score points for that pawn. If you move backward onto your enemy's free zone behind you, that pawn is sacrificed and your opponent gets that many points.

     

    If you move onto a black blown up square with a pawn valued at 6 or higher, you sacrifice that pawn but "fill in" that space, so it can be traversed again. This move is important later in the game, because as more and more squares get blown up each round, getting from one end of the board to the other becomes much of the challenge.

     

    If you self-destruct, your enemy gets the number of points that pawn is worth. However, if you end the game with more points - even if you lose all your pawns first -- you still win. So it could be to your advantage to blow up your remaining pawns if the point difference doesn't put your opponent over.

     

    I'll write better docs this weekend as well. I'm just excited to be this far along, and still have a decent amount of memory to start on the AI. I hope to offer several different computer player strategies to choose from.

     

    Have fun and thanks for checking it out!

    90 ! LAST MOD 7-8-2016
    91 GOSUB 9000
    92 CALL CLEAR :: RESTORE 9999
    93 FOR I=48 TO 57 :: CALL CHARPAT(I,P$) :: READ L :: CALL CHAR(I,SEG$(P$,1,L*2-2)&SEG$(P$,L*2+1,10)) :: NEXT I
    95 FOR X=48 TO 57 :: CALL CHARPAT(X,X$) :: CALL CHAR(X+56,X$) :: NEXT X :: CALL CHAR(128,"0101010101010101",136,"0101010101010101")
    100 CALL SCREEN(12) :: CALL CHAR(37,"FF818181818181FF",97,"01010101010101FF",35,"FFFFFFFFFFFFFFFF") :: CALL COLOR(10,5,2,11,5,2,3,7,2,4,7,2)
    103 CALL COLOR(13,7,1,14,5,1)
    105 CALL CLEAR :: RANDOMIZE :: CALL CHAR(58,"FFFFFFFFFFFFFFFF",114,"FFFFFFFFFFFFFFFF",36,"0101010101010101") :: DIM SCORE(2),BOARD(2)
    110 FOR X=1 TO 10 :: PRINT "aaaaaaaaa" :: NEXT X :: PRINT: : : : : : : : : : : :
    115 CALL VCHAR(2,2,97,10) :: CALL HCHAR(12,2,58,10) :: CALL HCHAR(1,2,114,10) :: CALL VCHAR(2,1,36,10)
    117 CALL HCHAR(1,1,136) :: CALL HCHAR(12,1,128)
    120 TURN=1 :: SCORE(1),SCORE(2)=0 :: BOARD(1),BOARD(2)=75 :: GOSUB 10000! SET AND PLACE PAWN AMOUNTS
    130 REM
    140 DISPLAY AT(2,11):"PLAYER 1  PLAYER j" :: DISPLAY AT(3,11):"--------  --------" :: DISPLAY AT(4,11):"SCORE     SCORE" :: DISPLAY AT(5,11):"BOARD     BOARD"
    150 CALL SCOREDISP(SCORE(1),SCORE(2),BOARD(1),BOARD(2))
    160 DISPLAY AT(23,1):"____________________________":"ENEMY LINES TWO PLAYER BETA!"
    169 ! MAIN GAME LOOP
    170 CALL DELSPRITE(ALL) :: DISPLAY AT(15,1):"":"":"" :: Y=INT(RND*10)+2 :: Z=INT(RND*10)+2 :: CALL GCHAR(Y,Z,X) :: IF X=35 THEN 170
    180 IF X>48 AND X<58 THEN BOARD(1)=BOARD(1)-(X-48)ELSE IF X>104 THEN BOARD(2)=BOARD(2)-(X-104)
    190 CALL BOMB :: CALL HCHAR(Y,Z,35) :: CALL PAUSE :: CALL SCOREDISP(SCORE(1),SCORE(2),BOARD(1),BOARD(2))
    195 IF BOARD(1)>0 AND BOARD(2)>0 THEN 200
    197 IF BOARD(1)=0 THEN TURN=1 ELSE TURN=2
    198 GOTO 1030
    200 CALL DELSPRITE(ALL) :: DISPLAY AT(15,1):"YOUR TURN, PLAYER ";CHR$(49+(57*(TURN-1))) :: DISPLAY AT(16,1):"ENTER TO ROLL, R TO RESIGN": : : :
    210 CALL KEY(0,K,S) :: IF S=0 THEN 210 ELSE IF K<>13 AND K<>82 THEN 210
    215 IF K=82 THEN 1000
    220 DICE=INT(RND*3) :: DISPLAY AT(16,1):"YOU ROLLED A ";CHR$(DICE+48+(56*(TURN-1)))
    230 IF DICE=0 THEN CALL PAUSE :: GOTO 700
    240 PLACEX=2+(9*(TURN-1)) :: PLACEY=2
    245 DISPLAY AT(17,1)BEEP:"SELECT PAWN";
    250 CALL SELECT(PLACEX,PLACEY,TURN,Z)
    260 DISPLAY AT(16,1):"MOVES LEFT ";CHR$(48+((TURN-1)*56)+DICE) :: CALL DEST(PLACEX,PLACEY,Z,DESTX,DESTY,ZZ)
    263 IF ZZ=999 THEN CALL SOUND(50,110,0) :: DISPLAY AT(15,1):"" :: DISPLAY AT(18,1):"": : :: CALL DELSPRITE(#2) :: GOTO 240
    264 IF ZZ=998 THEN CALL GCHAR(PLACEX,PLACEY,Z) :: Z=Z-48-(56*(TURN-1)) :: CALL BOMB :: CALL HCHAR(PLACEX,PLACEY,58) :: GOTO 320
    265 DISPLAY AT(18,1):"":"":"" :: IF ZZ<>97 THEN 290
    267 CALL DELSPRITE(#2)
    270 CALL HCHAR(DESTX,DESTY,Z) :: CALL HCHAR(PLACEX,PLACEY,97) :: CALL SOUND(100,523,5) :: CALL SOUND(125,1047,5)
    280 PLACEX=DESTX :: PLACEY=DESTY :: CALL SPRITE(#1,37,4,((PLACEX-1)*+1,((PLACEY-1)*+1) :: DICE=DICE-1 :: IF DICE=0 THEN 700 ELSE GOTO 260
    290 IF ZZ=35 THEN 500
    300 IF ZZ<>114 AND ZZ<>58 THEN 340
    305 DISPLAY AT(15,1):"":"":"" :: Z=Z-48-(56*(TURN-1))
    310 IF(ZZ=114 AND TURN=2)OR(ZZ=58 AND TURN=1)THEN 330
    320 DISPLAY AT(15,1):"PAWN HAS BEEN SACRIFICED": : : : : :: CALL SOUND(200,147,0) :: CALL SOUND(300,110,0) :: CALL HCHAR(PLACEX,PLACEY,97)
    325 BOARD(TURN)=BOARD(TURN)-Z :: IF TURN=1 THEN SCORE(2)=SCORE(2)+Z ELSE SCORE(1)=SCORE(1)+Z
    327 CALL SCOREDISP(SCORE(1),SCORE(2),BOARD(1),BOARD(2)) :: DICE=0 :: GOTO 700
    330 DISPLAY AT(15,1):"PAWN HAS REACHED HOME" :: CALL SOUND(200,1175,0) :: CALL SOUND(300,1661,0) :: CALL HCHAR(PLACEX,PLACEY,97)
    335 BOARD(TURN)=BOARD(TURN)-Z :: IF TURN=1 THEN SCORE(1)=SCORE(1)+Z ELSE SCORE(2)=SCORE(2)+Z
    337 GOTO 327
    340 IF(ZZ>47 AND ZZ<58)AND(Z>103 AND Z<114)OR(ZZ>103 AND ZZ<114)AND(Z>47 AND Z<58)THEN 360
    350 GOTO 740
    360 CALL SCREEN(7) :: DISPLAY AT(15,1):"BATTLE COMMENCES": : :: IF DICE=2 THEN DISPLAY AT(16,1):"ATTACKER ADVANTAGE!"
    370 CALL SOUND(100,622,0) :: CALL SOUND(100,740,0) :: CALL SOUND(400,1245,0) :: CALL SOUND(100,740,0) :: CALL SOUND(100,622,0) :: CALL SCREEN(12)
    380 TIP=50-(INT(RND*10)+1) :: IF DICE=2 THEN TIP=TIP+15
    390 BDICE=INT(RND*100)+1
    400 CALL SCREEN(7) :: CALL BOMB :: CALL SCREEN(12)
    410 IF BDICE<TIP THEN ZZ=ZZ-1 ELSE Z=Z-1
    420 !
    430 IF BDICE<TIP AND ZZ<103 THEN BOARD(1)=BOARD(1)-1
    435 IF BDICE<TIP AND ZZ>58 THEN BOARD(2)=BOARD(2)-1
    436 IF BDICE>TIP AND Z<103 THEN BOARD(1)=BOARD(1)-1
    437 IF BDICE>TIP AND Z>58 THEN BOARD(2)=BOARD(2)-1
    440 CALL SCOREDISP(SCORE(1),SCORE(2),BOARD(1),BOARD(2))
    450 IF Z=48 OR ZZ=48 OR Z=104 OR ZZ=104 THEN 470
    460 CALL HCHAR(PLACEX,PLACEY,Z) :: CALL HCHAR(DESTX,DESTY,ZZ) :: GOTO 390
    470 IF Z=48 OR Z=104 THEN DISPLAY AT(16,1):"ATTACKER IS DEFEATED" :: CALL HCHAR(PLACEX,PLACEY,97) :: GOTO 480
    475 DISPLAY AT(16,1):"DEFENDER IS DEFEATED" :: CALL HCHAR(DESTX,DESTY,97)
    480 DISPLAY AT(15,1):"THE BATTLE HAS ENDED"
    490 CALL DELSPRITE(#1,#2) :: CALL PAUSE :: GOTO 700
    500 ! PAWN TO FILL EMPTY SPAPCE
    510 IF Z-48-(56*(TURN-1))<6 THEN CALL SOUND(100,110,0) :: GOTO 260
    520 DISPLAY AT(15,1):"PAWN HAS BEEN SACRIFICED":"AND THE VOID HAS BEEN FILLED": : : : :
    525 CALL SOUND(200,247,0) :: CALL SOUND(200,294,0) :: FOR X=277 TO 1760 STEP 40 :: CALL SOUND(-100,X,0) :: NEXT X
    530 CALL HCHAR(PLACEX,PLACEY,97) :: CALL HCHAR(DESTX,DESTY,97) :: BOARD(TURN)=BOARD(TURN)-(Z-48-(56*(TURN-1)))
    540 CALL BOMB
    550 CALL SCOREDISP(SCORE(1),SCORE(2),BOARD(1),BOARD(2)) :: GOTO 700
    700 IF BOARD(1)<1 OR BOARD(2)<1 THEN 720
    710 IF TURN=2 THEN TURN=1 :: GOTO 170 ELSE TURN=2 :: GOTO 200
    720 IF SCORE(1)>SCORE(2)THEN TEMP$="RED" ELSE IF SCORE(1)<SCORE(2)THEN TEMP$="BLUE" ELSE IF SCORE(1)=SCORE(2)THEN TEMP$="NOBODY"
    730 GOTO 1040
    740 XX=(Z-48-(56*(TURN-1)))+(ZZ-48-(56*(TURN-1)))
    750 IF XX>9 THEN BOARD(TURN)=BOARD(TURN)-(XX-9)
    760 XX=MIN(9,XX)
    770 DISPLAY AT(15,1):"PAWNS HAVE MERGED INTO ONE": : : :
    780 FOR Y=0 TO 20 STEP 5 :: FOR YY=1680 TO 2680 STEP 200 :: CALL SOUND(-20,YY,Y) :: NEXT YY
    785 FOR YY=2680 TO 1680 STEP-200 :: CALL SOUND(-20,YY,Y) :: NEXT YY :: NEXT Y
    790 CALL HCHAR(PLACEX,PLACEY,97) :: CALL HCHAR(DESTX,DESTY,XX+48+(56*(TURN-1)))
    800 CALL SCOREDISP(SCORE(1),SCORE(2),BOARD(1),BOARD(2)) :: CALL DELSPRITE(ALL) :: GOTO 700
    1000 DISPLAY AT(15,1):"Y CONFIRMS RESIGN":"ANY OTHER KEY CANCELS"
    1010 CALL KEY(0,K,S) :: IF S=0 THEN 1010
    1020 IF K<>89 THEN 200
    1030 IF TURN=1 THEN TEMP$="BLUE" ELSE TEMP$="RED"
    1040 DISPLAY AT(15,1):TEMP$;" WINS THE GAME":"Q QUITS, ANY OTHER KEY      TO PLAY AGAIN"
    1050 FOR X=1 TO 3 :: CALL SOUND(75,1319,0) :: CALL SOUND(75,1397,0) :: CALL SOUND(75,1760,0) :: NEXT X :: CALL SOUND(300,1760,0,1920,0)
    1053 IF TURN=1 THEN TURN=5 ELSE TURN=7
    1055 FOR X=1 TO 3 :: CALL SCREEN(TURN) :: CALL BOMB :: CALL SCREEN(12) :: NEXT X
    1060 CALL KEY(0,K,S) :: IF S=0 THEN 1060
    1070 IF K=81 THEN CALL CLEAR :: STOP
    1080 GOTO 100
    9000 CALL CLEAR
    9010 PRINT "ENEMY LINES BY KEITH BERGMAN": :"(C) 2016 2 PLAYER BETA TEST!":"***** NOT FINAL VERSION*****"
    9020 PRINT: : : : : : : :"PRESS ANY KEY TO CONTINUE..."
    9030 CALL KEY(0,K,S) :: IF S=0 THEN 9030
    9040 RETURN
    9999 DATA 4,4,4,4,7,5,4,6,4,4
    10000 FOR W=1 TO 2 :: AMOUNT=75
    10010 Y=(INT(RND*3)+2+(7*(W-1))) :: Z=INT(RND*10)+2 :: X=INT(RND*9)+1 :: IF AMOUNT<X THEN X=AMOUNT
    10025 CALL GCHAR(Y,Z,V) :: IF V<>97 THEN 10010
    10030 AMOUNT=AMOUNT-X :: CALL HCHAR(Y,Z,X+48+(56*(W-1))) :: IF AMOUNT>0 THEN 10010
    10040 NEXT W :: RETURN
    10050 SUB SCOREDISP(SA,SB,BA,BB)
    10055 IF SA<10 THEN SA$="0"&STR$(SA)ELSE SA$=STR$(SA)
    10056 IF SB<10 THEN SB$="0"&STR$(SB)ELSE SB$=STR$(SB)
    10057 IF BA<10 THEN BA$="0"&STR$(BA)ELSE BA$=STR$(BA)
    10058 IF BB<10 THEN BB$="0"&STR$(BB)ELSE BB$=STR$(BB)
    10060 CALL HCHAR(4,19,ASC(SEG$(SA$,1,1))) :: CALL HCHAR(4,20,ASC(SEG$(SA$,2,1)))
    10070 CALL HCHAR(4,29,ASC(SEG$(SB$,1,1))+56) :: CALL HCHAR(4,30,ASC(SEG$(SB$,2,1))+56)
    10080 CALL HCHAR(5,19,ASC(SEG$(BA$,1,1))) :: CALL HCHAR(5,20,ASC(SEG$(BA$,2,1)))
    10090 CALL HCHAR(5,29,ASC(SEG$(BB$,1,1))+56) :: CALL HCHAR(5,30,ASC(SEG$(BB$,2,1))+56)
    10100 SUBEND
    10200 SUB PAUSE
    10300 FOR X=1 TO 500 :: NEXT X
    10310 SUBEND
    10320 SUB BOMB
    10330 CALL SOUND(400,-5,0) :: CALL SOUND(300,-6,0) :: CALL SOUND(300,-7,0)
    10340 SUBEND
    15000 SUB SELECT(PLACEX,PLACEY,TURN,Z)
    15010 CALL SPRITE(#1,37,11,((PLACEX-1)*+1,((PLACEY-1)*+1)
    15020 CALL KEY(0,K,S) :: IF S=0 THEN 15020
    15030 IF K=13 THEN 15180
    15040 IF K=87 THEN PLACEX=PLACEX-1 :: PLACEY=PLACEY-1 :: GOTO 15130
    15050 IF K=69 THEN PLACEX=PLACEX-1 :: GOTO 15130
    15060 IF K=82 THEN PLACEX=PLACEX-1 :: PLACEY=PLACEY+1 :: GOTO 15130
    15070 IF K=83 THEN PLACEY=PLACEY-1 :: GOTO 15130
    15080 IF K=68 THEN PLACEY=PLACEY+1 :: GOTO 15130
    15090 IF K=90 THEN PLACEX=PLACEX+1 :: PLACEY=PLACEY-1 :: GOTO 15130
    15100 IF K=88 THEN PLACEX=PLACEX+1 :: GOTO 15130
    15110 IF K=67 THEN PLACEX=PLACEX+1 :: PLACEY=PLACEY+1 :: GOTO 15130
    15120 CALL SOUND(100,110,0) :: GOTO 15020
    15130 IF PLACEX<2 THEN PLACEX=11
    15140 IF PLACEX>11 THEN PLACEX=2
    15150 IF PLACEY<2 THEN PLACEY=11
    15160 IF PLACEY>11 THEN PLACEY=2
    15170 GOTO 15010
    15180 CALL GCHAR(PLACEX,PLACEY,Z)
    15190 IF TURN=1 AND(Z<48 OR Z>57)THEN 15120
    15200 IF TURN=2 AND(Z<104 OR Z>113)THEN 15120
    15210 CALL COLOR(#1,4) :: FOR X=0 TO 30 :: CALL SOUND(-100,1250,X) :: NEXT X
    15220 DISPLAY AT(15,1):"":"":""
    15230 SUBEND
    17000 SUB DEST(PLACEX,PLACEY,Z,DESTX,DESTY,ZZ)
    17005 DESTX=PLACEX :: DESTY=PLACEY
    17010 MINX=MAX(PLACEX-1,1) :: MAXX=MIN(PLACEX+1,12) :: MINY=MAX(PLACEY-1,2) :: MAXY=MIN(PLACEY+1,11)
    17020 CALL SPRITE(#2,37,13,((DESTX-1)*+1,((DESTY-1)*+1)
    17025 DISPLAY AT(15,1):"SELECT DESTINATION SQUARE" :: DISPLAY AT(18,1):"M TO CANCEL":"P TO SELF DESTRUCT"
    17030 CALL KEY(0,K,S) :: IF S=0 THEN 17030
    17035 IF K=80 THEN ZZ=998 :: GOTO 17170
    17037 IF K=77 THEN ZZ=999 :: GOTO 17170
    17040 IF K=87 THEN IF DESTX-1<MINX OR DESTY-1<MINY THEN 17140 ELSE DESTX=DESTX-1 :: DESTY=DESTY-1 :: GOTO 17020
    17050 IF K=69 THEN IF DESTX-1<MINX THEN 17140 ELSE DESTX=DESTX-1 :: GOTO 17020
    17060 IF K=82 THEN IF DESTX-1<MINX OR DESTY+1>MAXY THEN 17140 ELSE DESTX=DESTX-1 :: DESTY=DESTY+1 :: GOTO 17020
    17070 IF K=83 THEN IF DESTY-1<MINY THEN 17140 ELSE DESTY=DESTY-1 :: GOTO 17020
    17080 IF K=68 THEN IF DESTY+1>MAXY THEN 17140 ELSE DESTY=DESTY+1 :: GOTO 17020
    17090 IF K=90 THEN IF DESTX+1>MAXX OR DESTY-1<MINY THEN 17140 ELSE DESTX=DESTX+1 :: DESTY=DESTY-1 :: GOTO 17020
    17100 IF K=88 THEN IF DESTX+1>MAXX THEN 17140 ELSE DESTX=DESTX+1 :: GOTO 17020
    17110 IF K=67 THEN IF DESTX+1>MAXX OR DESTY+1>MAXY THEN 17140 ELSE DESTX=DESTX+1 :: DESTY=DESTY+1 :: GOTO 17020
    17120 IF K=13 THEN IF DESTX<>PLACEX OR DESTY<>PLACEY THEN 17150
    17140 CALL SOUND(100,110,0) :: GOTO 17020
    17150 CALL SOUND(10,220,0)
    17160 CALL GCHAR(DESTX,DESTY,ZZ)
    17170 SUBEND
    
    • Like 2

  8. I used to have all the TImagination games on cassette. Ordered them from the author years after the fact, luckily he still had the same address as listed in his old 99'er ads. Walls and Bridges remains a fantastic BASIC game, I put up a thread on it a while back.

     

    If I recall, Psyborg's first two parts were really engrossing and then part 3 was a total letdown. Major points for ambition alone on a game that size though.


  9. This isn't a progress update, exactly, but I had to brag on it a little. My 14-year-old son and I tested out the game tonight. When I asked him to play "Dicecrash" (and when he's played most classic games) he showed a polite interest, but couldn't wait to get back to his PS4. We just played "Enemy Lines" for over an hour and he was really into it. He got really psyched up as the game went on and was coming up with suggestions for strategy that I will incorporate into the AI. His verdict is that the game is "pretty awesome." I'm feeling pretty accomplished right now. :)

    • Like 4

  10. It's been ages since I participated in one of these, but Barrage is my jam. Are there any rules about how to obtain the high score (iron vs emulation, keyboard vs joystick, etc)?

     

    I can pretty consistently post up around 500,000 and I've been known to go beyond that occasionally. And I need something to keep me from playing Agario constantly and never getting any better at that stupid game... :/


  11. 5Pku7ov.jpg

     

    The numbers look great!

     

    In this shot, we're almost to the end of the game. The game is tied. If blue can get that 4 pawn to the other side, blue will win it. It's not looking good for red unless he can block with good defense and eliminate that 4. There's a statistically good chance of both those pawns being blown up before any more points can be scored, leading to a tie game.

     

    Hoping to start on the AI for the computer player tomorrow.

    • Like 2

  12. I do too -- I have it change for battle sequences and other turn indicators, and was gonna change it at the end depending on who wins, but I may take that back out.

     

    What an awesome routine! Thank you for that, I am going to add it later today and see how it looks.

    • Like 1

  13. Spent the day adding some niceties to the interface (the ability to cancel a move, a self-destruct when a pawn is stuck, etc.) Nothing major. Battle odds may need tweaked a bit.

     

    I love that this entire thread from six long years ago starts with a "dammit, Owen!" :)

    • Like 1

  14. RW05Enj.jpg

     

    Hey, it's back!

     

    Long story short -- I finished my game "Dicecrash" last year, jumped right into my Risk-like game "Conquest of the Aftermath," and quickly realized I was in over my head. Also, work got busy around that time.

     

    A while later, I was revisiting old notes and half-finished game ideas, and realized I've left a LOT of undone projects to quietly die in the forum archives. So I decided I'd revisit some of those and get them done and out into the world, with an eye toward cleaning up my to-do list in 2016 and going back to the big project in 2017.

     

    Anyway, I've been fiddling with this game for a bit now, and I have a 2-player playable beta ready. It's turned out better than I expected, and the gameplay is pretty fun.

     

    It's kind of a real bloody, kamikaze version of Stratego right now. You can see the "rank" of each pawn on both sides, and you basically have to try to get as many of yours across the board as possible while destroying your enemy when they do the same. One random square gets bombed into oblivion each round, too, which can unfairly take out a pawn and/or block access to the finish line for other pawns.

     

    My next step is to play a few rounds with someone and get more of a feel for what else the game needs, and what a good, implement-able strategy for the AI would be.

     

    Each player starts with 75 "points" on the board, divided up among their pawns. You can see from the screen above how much of the playfield gets wiped out in the course of one match, and how few of those pawns end up limping across the finish line. I foresee a lot of matches decided by a point or two.

     

    More after the weekend!

     

    Keith

    • Like 6

  15. Flooraway is amazing, as is Walls and Bridges from TImagination (subject of its own thread a couple weeks ago).

     

    Khe Sanh is a game of maddening suspense which I also love.

     

    99'vaders (published by Not Polyoptics) was one of the few attempts at an arcade-style game in TI BASIC that I found workable and enjoyable.

     

    As for utilities... realistically, was anything in BASIC useful enough to overcome the language's issues?


  16. I think the problem is, these items come up for sale so infrequently, there's no accurate sample size. I sold an unboxed Q*Bert for something like $70 once, because two people that week happened to both want it and decided to go toe-to-toe. Other times, you can't give things away. The buying pool is so small and the data so infrequent, you might as well throw a dart at a dartboard.

     

    Even the "set it high and sit on it" approach doesn't give you an accurate number. If you put up an auction for a rare Moonbeam Software title I don't have, and I know it's ending in a week, there's more urgency. If you put it up with a Buy It Now price of $80, I am more inclined to play 'chicken' with a number of other unseen 99'ers who have their eye on it.

     

    You also run into everyone's differing opinion of what our hobby "should" be. Even discussing high-dollar rare carts sets some people off.

     

    You have to accept that there's a degree of randomness to the whole thing, and not pin your emotions on TI cartridge prices like they're the Dow Jones industrial average.

     

    All that said.... what Owen offered, plus five bucks!!! ;)

    • Like 1
×
×
  • Create New...