Jump to content

InfernalKeith

Members
  • Content Count

    805
  • Joined

  • Last visited

Posts posted by InfernalKeith


  1. Only partway through the beginning of the main turn loop, and I'm realizing I may have bitten off way more than 30 lines here. I'll let you know for sure tomorrow, but I may have to pull this game right back out of contention. However, I still think I can finish it in a week or so. The idea is simple and solid, it just needs a lot more room for legal move checking, etc... especially if I want to put any kind of AI on board at all.

     

    Onward!


  2. Since I doubt all you runners-up are going to divulge your secrets, I thought I'd stir the pot with this thread. If ya have a pair you should surely (or surly) respond here!

     

    And don't worry... I'll post pictures of my new CF device in mid March ! HAHAHahahahahaha

     

    Not if I post pictures of myself chucking it into Boston Harbor first! XB is gonna stand for Xasperated Brit when I'm done!

     

    Hey, this is fun. :)


  3. Dammit, Owen! I was supposed to be working tonight. :)

     

    enemylines.jpg

     

     

    Enemy Lines is a board game. Each digit you see on the game board above is a pawn. The goal is to get as many of your pawns as possible across the board and onto your color bar. When a pawn reaches the color bar, its number is added to your score.

     

    Each turn, one random square on the board will be bombed. Any pawn on the bombed square will be eliminated, and that square will remain impassable for the rest of the game.

     

    If your pawn encounters an enemy pawn, the two will battle until one is killed, battling in a manner similar to the dice-rolling battle sequence in the board game Risk. Thus, your 9 could become a 1 or a 2 well before it makes it to the color bar.

     

    There will also be a few power-ups to boost your pawns' point values, or decrease your enemy's, but I haven't exactly decided how to implement those yet (esp. given the line limitation).

     

    When all of one player's pawns are off the board, the player with the most points wins.

     

    My goal is to include at least a simple AI so that the game can be played by one or two players.

     

    So far, the pawns are generated and placed properly, and most of the game variables and screen drawing is done. I have to try to condense the turn loop and battle sequence into as few lines as possible.

     

    Hopefully this one should only take me a week or so, and then I can get roped into yet another TI-related distraction. :)

    • Like 2

  4. Do it!!! :). You've got plenty of time and another InfernalKeith game would be a welcome entry!

    Dude, you have no idea how not true that is. :) Every time I check this forum or Facebook, I can hear the sound of nickels and dimes rolling away, never to return. That's the problem with self-employment. You're never off the clock.

     

    Eh... sleep is for wimps. I'll knock it out. :)


  5. Thinking I might enter this after all, depending on how my work week goes. I have a vague idea right now, and it's a game I want to write on the 99/4A and then convert to other platforms (Vic, Timex/Sinclair, etc). Many of them have really low built-in RAM, so a short game is essential. Gonna ponder it a little and see how I'm feeling about it this weekend... probably gonna keep this one under wraps till it's done, though. :)


  6. I do have an extra complete Editor/Assembler, but I haven't tested the disks out yet. I also have Extended BASIC and at least one joystick adapter available. I haven't listed the E/A in my Ebay store yet, but was planning to this weekend. If you'd like, I'll test it tonight, and assuming it works, I can make you a deal on the whole shebang. Shoot me a private message through here, or email me at [email protected], if you're interested.

     

    Keith


  7. Thanks, you guys. I've been fretting about this all afternoon.

     

    Filip, what did you do to make that happen?! :)

     

    Think I'm gonna start working on the level editor tonight, if I can get this pile of work done. I don't have time, really, but I'm all geeked up about getting the final version of the game done now.


  8. OK guys, I need some confirmations here. The picture that retroclouds posted in the contest thread shows level 1 of Herding Cats ALL jacked up. It's supposed to look like this:

     

    herdingcatslevel1.jpg

     

    And it does for me, both on my 99/4A and in Classic99.

     

    Those of you who've tried the game out, did Level One look like this to you, or like the pic in the other thread? If the game is that jacked up, I have a major bug I didn't know about... but I don't know how that would have happened.

     

    Thanks,

    Keith


  9. Yea... That's an easy fix--- paste the listing into notepad, go through and put each line on it's own line by hitting return repeatedly on each line. Re-copy, then paste into Classic99 and do the happy success dance

     

     

    I didn't even have to do that, in WordPad. Just pasting it in, and then copying it back out, worked for me.


  10. Thank you, Filip!

     

    I have to ask, and I may dread the answer, but did the Level 1 screen look like that when you started it? If so, there's a bug I knew nothing about - I hope it looked that way after you'd already done some modifications?

     

    EDIT: Actually, the whole screen looks 'off' a bit. Not sure what's going on there?

     

     

     

     

     

     

     

     

    Today is the day; the winners of the RGPC competition are to be announced!

     

    This week we did an evaluation of the finished entries "Honeycomb Rapture" and "Herding Cats".

    We -that's mainly me and my wife- had plenty of fun playing both games. We know both games still

    contain some bugs, but we have ignored that in our evaluation. We only evaluated game functionality.

     

    It was a very close race, let me tell you.

    Herding Cats is more of a strategy game whereas Honeycomb Rapture goes arcade style all the way.

    Comparing these games is difficult; both are clearly winners in their own league!

     

    In terms of game ideas and instruction manual Herding Cats goes first.

    I like the variety in tools. Imagine the idea of having a "CAT-a-pult". Brilliant!

    The same goes for the different levels, a lot of variety there and certainly enough to drive you wild. Love it!

     

    Honeycomb Rapture on the other hand offers some great arcade bee action.

    It is a very responsive game. Considering we are talking about an Extended Basic game that surely is something

    not te be taken for granted. Adding a breeze of assembly language was indeed a clever idea.

    Both the graphics and the catchy tune during gameplay are highlights. The UFO stage is also very cool!

     

    Now to the contest results....

     

    "arcade" category

    Owen wins The Pitfall! cartridge for doing Honeycomb Rapture.

     

    hr.png

     

    "strategy" category

    Keith wins The "Mechatronic Extended Basic II Plus cartridge" for doing Herding Cats.

     

    herding_cats.png

     

    Congratulations to both of you! Mission accomplished folks!

    Even though we didn't have a high humber of finished contest entries, the competition had a lot of attention.

    So for sure, not a bad start.

     

    I also want to thank Karsten for his work on Destroyer.

    Still hoping to see a playable version in the near future, cause that game will definitely kick *butts* big time :P


  11. Just copy it and "Paste" into Classic99. Pasting does what MERGE or OLD used to do. Dropdown menu, "EDIT-->PASTE". Whatever is on the clip is now in your program. :). Booyakasha

     

     

    Thanks to Retroclouds and opry99er for answer but i do not understand where i wrong... when i paste it does not wrap and it block to the first line... :-( ..Yet it should be simple :-( ...

     

    help to understand please...

     

     

    Try this: paste it into Wordpad or Notepad first. Then copy it from there, and PASTE into Classic99. That has worked for me before. It seems to add a line break to each line.


  12. OK, due to aforementioned work duties, this is NOT happening in time for the March issue of RTM. :( I did my article on Santa Paravia (see other thread) and turned it in, and I'll have to make a go of this next weekend. In the middle of a big work push right now, so everything else is having to wait (including the revisions to Herding Cats that I need to do).

     

    Hopefully in the next couple weeks, it'll all fall into place and I'll be a coding and modifying machine. :)


  13. Most versions I'm aware of had graphics. The Apple II version used Lo-Res, the TRS-80 Model I had it's primitive graphics, the Panasonic JR-200 used it's character graphics, etc...

    All I saw on the Atari version was text.

    I think the only version with fancy graphics was for the C64.

    <edit>

    I'm guessing they ran out of memory on the TI.

     

    Yeah, this one eats up all 16K and actually wouldn't run after loading if a disk drive was attached, because the drive eats up a few precious bytes. This would be another prime candidate for a modern-day update, if everyone's plates weren't full of other projects.

     

    The TI versions of a lot of third-party houses seemed to have been afterthoughts, or first-time 'hey, let's try this out' projects. I reviewed the Avalon Hill game "Galaxy" on my website, and noted that the TI version was very limited and primitive compared to the versions described for other machines in the docs. The worst offender I've ever seen of this was Cosmi's "Aztec Challenge" -- a simple, but graphically interesting jump-and-duck game on the C64, with a really cool soundtrack. The TI version looks like a bad type-in program sent in to a magazine by a 5th grader.


  14. Anyone else as interested in really old code as me... here's a 1980 game called "Santa Paravia and Fiumaccio." It was originally released in TI BASIC by the Instant Software company, based on a 1978 magazine type-in program. The concept is a variation on the classic "Hammurabi" game, in which you grow crops, allocate land, feed peasants, and attempt to maintain rule over your kingdom.

     

    SP&F introduces several other ideas, like building marketplaces, mills and palaces, collecting taxes, and training an army to protect your land. The object is to rise from a "sir" to a "baron" and through several other ranks to "king."

     

    I'm writing up an article about this game for Retrogaming Times Monthly. It's the oldest piece of original software I own, dated 1980, its documentation only mentioning the 99/4 (the 4A wasn't released yet).

     

    It'll work fine in Extended BASIC in Classic99, and will run faster and not give you MEMORY FULL errors. There are no graphics whatsoever - it's all text.

     

    Talk about old school! :)

     

    Keith

     

     

     

     

     

     

    100 REM  SANTA PARAVIA AND FIUMACCIO VERSION 7.2 
    110 REM    COPYRIGHT (C) 1980,INSTANT SOFTWARE,INC. (P)   
    120 CALL CLEAR
    135 OPTION BASE 0
    140 DIM AA(6),BB(6),CC(6),D(6),GG(6),HH(6),II(6),JJ(6),K(6),LL(6),M(6),N$(6),N(6),O(6),P(6),Q(6),RR(6),SS(6)
    145 DIM T$(6),T(6),U(6),V(6)
    150 RANDOMIZE
    160 YY=1400
    165 NW=0
    170 DATA "SIR","BARON","COUNT","MARQUIS","DUKE","GRAND DUKE","PRINCE","*H.R.H. KING"
    180 DATA "LADY","BARONESS","COUNTESS","MARQUISE","DUCHESS","GRAND DUCHESS","PRINCESS","*H.R.H. QUEEN"
    190 DATA "SANTA PARAVIA","FIUMACCIO","TORRICELLA","MOLINETTO","FONTANILE","ROMAGNA"
    210 PRINT: : :"SANTA PARAVIA AND FIUMACCIO": : : : : : : : : : :
    260 RESTORE 190
    270 PRINT "HOW MANY PEOPLE WANT TO PLAY SANTA PARAVIA ? ";
    280 GOSUB 5630
    290 F=KV
    300 IF F<1 THEN 315
    310 IF F<=6 THEN 320
    315 CALL CLEAR
    317 GOTO 270
    320 FOR A=1 TO F
    325 CALL CLEAR
    330 READ T$(A)
    350 PRINT:"WHO IS THE RULER OF ";T$(A);
    360 INPUT N$(A)
    370 N$(A)=N$(A)&" OF "&T$(A)
    380 PRINT: :"IS ";N$(A):
    385 INPUT "A MAN OR A WOMAN ? ":K$
    390 V(A)=0
    410 IF(SEG$(K$,1,1)<>"W")*(SEG$(K$,1,1)<>"M")THEN 380
    415 IF SEG$(K$,1,1)="M" THEN 420
    417 V(A)=8
    420 GG(A)=25
    430 HH(A)=10
    440 II(A)=5
    450 JJ(A)=2
    460 K(A)=1000
    470 LL(A)=10000
    480 RR(A)=5000
    490 T(A)=1
    500 U(A)=1
    510 N(A)=4
    520 P(A)=25
    530 Q(A)=5
    540 M(A)=25
    550 SS(A)=2000
    560 NEXT A
    570 FOR A=1 TO F
    580 RESTORE
    590 [email protected]=V(A)+T(A)
    600 FOR C2=1 TO [email protected]
    610 READ T$(A)
    620 NEXT C2
    630 NEXT A
    650 U(0)=9
    660 GOSUB 1300
    670 E=E+1
    672 IF NW=F THEN 18690
    675 IF E>F THEN 695
    677 IF T(E)<8 THEN 680
    679 GOTO 670
    680 IF T(E)<>-1 THEN 690
    685 E=E+1
    690 IF E<=F THEN 730
    695 E=0
    700 YY=YY+1
    710 GOSUB 1300
    720 GOTO 670
    730 GOSUB 1430
    740 GOSUB 2040
    750 GOSUB 2950
    760 GOSUB 2420
    780 GOSUB 4020
    790 GOSUB 4550
    800 GOTO 670
    810 CALL CLEAR
    815 CALL SCREEN(14)
    820 PRINT TAB(9);"COMPARE NOBLES": : :
    830 FOR A=1 TO F
    834 PRINT:T$(A);" ";N$(A)
    836 PRINT "HAS";N(A);"NOBLES":
    850 NEXT A
    854 PRINT: :
    855 GOSUB 1110
    856 CALL SCREEN(7)
    860 PRINT TAB(;"COMPARE SOLDIERS": : :
    870 FOR A=1 TO F
    875 PRINT:T$(A);" ";N$(A)
    880 PRINT "HAS";P(A);"SOLDIERS":
    890 NEXT A
    891 PRINT: :
    895 GOSUB 1110
    896 CALL SCREEN(16)
    900 PRINT TAB(9);"COMPARE CLERGY": : :
    910 FOR A=1 TO F
    920 PRINT:T$(A);" ";N$(A)
    925 PRINT "HAS";Q(A);"CLERGYMEN":
    930 NEXT A
    931 PRINT: :
    935 GOSUB 1110
    936 CALL SCREEN(11)
    940 PRINT TAB(7);"COMPARE MERCHANTS": : :
    950 FOR A=1 TO F
    960 PRINT T$(A);" ";N$(A)
    965 PRINT "HAS";M(A);"MERCHANTS": :
    970 NEXT A
    971 PRINT: :
    975 GOSUB 1110
    976 CALL SCREEN(5)
    980 PRINT TAB(9);"COMPARE SERFS": : :
    990 FOR A=1 TO F
    1000 PRINT:T$(A);" ";N$(A)
    1005 PRINT "HAS";SS(A);"SERFS":
    1010 NEXT A
    1011 PRINT: :
    1015 GOSUB 1110
    1016 CALL SCREEN(4)
    1020 PRINT TAB(6);"COMPARE LAND OWNED": : :
    1030 FOR A=1 TO F
    1040 PRINT:T$(A);" ";N$(A)
    1045 PRINT "HAS";LL(A);"HECTARES OF LAND":
    1050 NEXT A
    1051 PRINT: :
    1055 GOSUB 1110
    1056 CALL SCREEN(12)
    1060 PRINT TAB(7);"COMPARE TREASURIES": : :
    1070 FOR A=1 TO F
    1080 PRINT:T$(A);" ";N$(A)
    1085 PRINT "HAS";K(A);"GOLD FLORINS":
    1090 NEXT A
    1091 PRINT: :
    1110 INPUT " (PRESS ENTER)":A$
    1115 CALL CLEAR
    1116 CALL SCREEN(4)
    1120 RETURN
    1130 I=INT(I)
    1140 RETURN
    1150 C2=INT(C2)
    1160 RETURN
    1170 S=INT(S)
    1180 RETURN
    1190 K(E)=INT(K(E))
    1200 RETURN
    1210 Z=INT((3+A*RND)*SS(E)/100)
    1220 PRINT: : :Z;"SERFS BORN THIS YEAR"
    1230 SS(E)=SS(E)+Z
    1240 RETURN
    1250 Z=INT((3+RND*A*SS(E))/100)
    1260 [email protected]=Z
    1270 PRINT Z;"SERFS DIED THIS YEAR"
    1280 SS(E)=SS(E)-Z
    1290 RETURN
    1300 W=INT((RND*5+RND*6)/2)
    1305 IF W<1 THEN 1300
    1310 ON W GOTO 1320,1340,1360,1380,1400
    1320 W$="DROUGHT - FAMINE THREATENS"
    1330 GOTO 1410
    1340 W$="BAD WEATHER - POOR HARVEST"
    1350 GOTO 1410
    1360 W$="NORMAL WEATHER AND HARVEST"
    1370 GOTO 1410
    1380 W$="GOOD WEATHER - FINE HARVEST"
    1390 GOTO 1410
    1400 W$="EXCELLENT WEATHER & HARVEST"
    1410 R=INT(RND*50)
    1420 RETURN
    1430 RR(E)=RR(E)-RR(E)*R/100
    1440 X=LL(E)
    1450 Y=(SS(E)-D(E)*100)*5
    1460 IF Y>=0 THEN 1470
    1465 Y=0
    1470 IF Y>=X THEN 1480
    1475 X=Y
    1480 Y=RR(E)*2
    1490 IF Y>=X THEN 1500
    1495 X=Y
    1500 RR(E)=RR(E)-X/2
    1510 Y=W-.5
    1520 [email protected]=X*Y
    1530 RR(E)=INT(RR(E)[email protected]+5000)
    1540 [email protected]=N(E)*100+CC(E)*40+M(E)*30+P(E)*10+SS(E)*5
    1545 [email protected]=INT([email protected])
    1550 L=(3*W+RND*6+12)/10
    1560 IF W<>1 THEN 1570
    1565 L=L-1
    1570 IF [email protected]>=1 THEN 1580
    1575 Y=2
    1580 GOTO 1610
    1590 [email protected]/[email protected]
    1600 IF Y<=2 THEN 1610
    1605 Y=2
    1610 IF Y>=8 THEN 1620
    1615 Y=8
    1620 L=L*Y
    1630 L=INT(L*10/3)
    1640 L=L/10
    1650 Z=6-W
    1660 G=INT((Z*3+3+RND*5)/5*Y*20)/10
    1670 RETURN
    1690 PRINT:"RATS ATE ";R;"%";"OF YOUR RESERVES"
    1700 PRINT W$:TAB(11);"(";[email protected];" STERES)":
    1720 IF K(E)>=32766 THEN 1730
    1725 GOSUB 1190
    1726 RR(E)=INT(RR(E))
    1730 PRINT "GRAIN RESERVE =";RR(E);"STERES"
    1740 PRINT "GRAIN  DEMAND =";[email protected];"STERES"
    1750 PRINT "PRICE OF GRAIN=";G;"/1000ST"
    1760 PRINT "PRICE OF LAND =";L;"/HECTARE"
    1770 PRINT "(THE TREASURY CONTAINS ";K(E);" FLORINS.)"
    1780 RETURN
    1790 J=INT((JJ(E)*300-500)*T(E))
    1800 ON JJ(E)GOTO 1810,1830,1850,1870
    1810 J$="VERY FAIR"
    1820 GOTO 1880
    1830 J$="MODERATE"
    1840 GOTO 1880
    1850 J$="HARSH"
    1860 GOTO 1880
    1870 J$="OUTRAGEOUS"
    1880 Y=150-GG(E)-HH(E)-II(E)
    1890 IF Y>=1 THEN 1900
    1895 Y=1
    1900 [email protected]=(N(E)*180+Q(E)+75+M(E)*20)*(Y/100)+U(E)*100
    1910 [email protected]=(N(E)*50+M(E)*75+U(E)*15)*(Y/100)*(5-JJ(E))/2
    1920 [email protected]=N(E)*250+U(E)*25+(10*JJ(E)*N(E))*(Y/100)
    1930 [email protected]=INT([email protected]*GG(E)/100)
    1940 IF [email protected]>=32760 THEN 1950
    1945 GOSUB 1150
    1950 [email protected]=INT([email protected]*HH(E)/100)
    1960 IF [email protected]>=32760 THEN 1970
    1965 GOSUB 1170
    1970 [email protected]=INT([email protected]*II(E)/100)
    1980 IF [email protected]>=32760 THEN 1990
    1985 GOSUB 1130
    1990 PRINT "STATE REVENUES ARE";[email protected][email protected][email protected];"GOLD FLORINS"
    1995 PRINT:"TAX";TAB(14);"RATE";TAB(25);"AM'T"
    2000 PRINT:"CUSTOMS DUTY";TAB(13);GG(E);"%";TAB(24);INT([email protected])
    2005 PRINT "SALES TAX";TAB(13);HH(E);"%";TAB(24);INT([email protected])
    2010 PRINT "INCOME TAX";TAB(13);II(E);"%";TAB(24);INT([email protected])
    2015 PRINT "JUSTICE";TAB(14);J$;TAB(24);J:
    2030 RETURN
    2040 CALL CLEAR
    2060 PRINT TAB(10);YY;"A.D.":T$(E);" ";N$(E)
    2070 GOSUB 1690
    2080 PRINT:"0. CONTINUE GAME"
    2090 PRINT "1. BUY GRAIN":"2. SELL GRAIN":"3. BUY LAND":"4. SELL LAND"
    2100 PRINT "YOUR CHOICE ? ";
    2110 GOSUB 5630
    2120 [email protected]=KV
    2130 IF [email protected]>4 THEN 2090
    2140 IF [email protected]>=1 THEN 2160
    2150 RETURN
    2156 CALL CLEAR
    2157 GOSUB 1680
    2160 ON [email protected] GOTO 2165,2235,2305,2345
    2165 PRINT "HOW MUCH GRAIN DO YOU WANT"
    2170 INPUT "TO BUY ? ":[email protected]
    2180 K(E)=K(E)-([email protected]*G/1000)
    2190 RR(E)=RR(E)[email protected]
    2200 CALL CLEAR
    2210 PRINT:T$(E);" ";N$(E)
    2220 GOSUB 1720
    2230 GOTO 2080
    2235 PRINT "HOW MUCH GRAIN DO YOU WANT"
    2240 INPUT "TO SELL ? ":[email protected]
    2250 IF [email protected]<=RR(E)THEN 2280
    2260 PRINT "YOU DON'T HAVE IT":
    2270 GOTO 2240
    2280 K(E)=K(E)+([email protected]*G/1000)
    2290 RR(E)=RR(E)[email protected]
    2300 GOTO 2200
    2305 PRINT "HOW MANY HECTARES DO YOU"
    2310 INPUT "WANT TO BUY ? ":[email protected]
    2320 LL(E)=LL(E)[email protected]
    2330 K(E)=K(E)-([email protected]*L)
    2340 GOTO 2200
    2345 PRINT "HOW MANY HECTARES DO YOU"
    2350 INPUT "WANT TO SELL ? ":[email protected]
    2360 IF [email protected]<=(LL(E)-5000)THEN 2390
    2370 PRINT " YOU CAN'T SELL THAT MUCH !"
    2380 GOTO 2345
    2390 LL(E)=LL(E)[email protected]
    2400 K(E)=K(E)+([email protected]*L)
    2410 GOTO 2200
    2420 CALL CLEAR
    2440 PRINT TAB(10);YY;"A.D.":T$(E);" ";N$(E): :
    2460 GOSUB 1790
    2470 PRINT:"0.NO CHANGE IN TAXES"
    2480 PRINT "1.CUSTOMS DUTY":"2.SALES TAX":"3.WEALTH TAX":"4.JUSTICE"
    2490 PRINT:"YOUR CHOICE ? ";
    2500 GOSUB 5630
    2510 I=KV
    2520 IF I<=4 THEN 2550
    2540 GOTO 2500
    2550 IF I<1 THEN 2870
    2560 ON I GOTO 2570,2640,2710,2780
    2570 INPUT "NEW CUSTOMS DUTY (0-100)":I
    2580 IF I<=100 THEN 2600
    2590 I=100
    2600 IF I>=0 THEN 2620
    2610 I=0
    2620 GG(E)=I
    2630 GOTO 2420
    2640 INPUT "NEW SALES TAX(0 TO 50)":I
    2650 IF(I>=0)+(I<=50)THEN 2690
    2660 I=5
    2690 HH(E)=I
    2700 GOTO 2420
    2710 INPUT "NEW WEALTH TAX (0 TO 25)":I
    2720 IF(I<=25)+(I>=0)THEN 2760
    2730 I=0
    2760 II(E)=I
    2770 GOTO 2420
    2780 PRINT:"JUSTICE:":"1.VERY FAIR 2.MODERATE":"3.HARSH     4.OUTRAGEOUS"
    2790 GOSUB 5630
    2800 I=KV
    2810 IF(I<=4)+(I>=1)THEN 2850
    2820 I=1
    2850 JJ(E)=I
    2860 GOTO 2420
    2870 K(E)=INT(K(E)[email protected][email protected][email protected]+J)
    2880 IF K(E)>=0 THEN 2900
    2890 K(E)=INT(K(E)*1.5)
    2900 IF K(E)<(-1000*T(E))THEN 5020
    2910 IF(GG(E)+HH(E)+II(E))>=20 THEN 2920
    2920 IF JJ(E)<>0 THEN 2940
    2930 U(E)=U(E)+.2
    2940 RETURN
    2950 PRINT "RELEASE HOW MUCH GRAIN"
    2965 INPUT "TO THE PEOPLE?":[email protected]
    2970 IF [email protected]>=RR(E)/5 THEN 3000
    2980 PRINT "YOU MUST RELEASE AT LEAST 20% OF YOUR RESERVES."
    2990 GOTO 2950
    3000 IF [email protected]<=(RR(E)-(RR(E)/5))THEN 3030
    3010 PRINT "YOU MUST KEEP AT LEAST 20% OF YOUR RESERVES."
    3020 GOTO 2950
    3030 RR(E)=RR(E)[email protected]
    3040 CALL CLEAR
    3050 PRINT TAB(10);YY:T$(E);" ";N$(E)
    3070 [email protected]/[email protected]
    3080 IF Z<=0 THEN 3100
    3090 Z=Z/2
    3100 IF Z<=.25 THEN 3120
    3110 Z=Z/10+.25
    3120 [email protected]=50-GG(E)-HH(E)-II(E)
    3130 IF [email protected]>=0 THEN 3150
    3140 [email protected][email protected]*JJ(E)
    3150 [email protected][email protected]/10
    3160 IF [email protected]<=0 THEN 3180
    3170 [email protected][email protected]+3-JJ(E)
    3180 Z=Z+([email protected]/10)
    3190 IF Z<=.5 THEN 3210
    3200 Z=.5
    3210 IF [email protected]<([email protected])THEN 3600
    3220 A=3
    3230 GOSUB 1210
    3240 A=2
    3250 GOSUB 1250
    3260 IF GG(E)+HH(E)>=35 THEN 3280
    3270 M(E)=INT(M(E)+4*RND)
    3280 IF II(E)>=RND*20 THEN 3310
    3290 Q(E)=INT(Q(E)+RND*3-1)
    3300 N(E)=INT(N(E)+2*RND-1)
    3310 IF [email protected]<([email protected][email protected]*.3)THEN 3490
    3320 [email protected]=SS(E)/1000
    3330 Z=([email protected]@)/[email protected]*10
    3340 Z=Z*[email protected]*15+RND*40
    3350 IF Z<=32000 THEN 3370
    3360 Z=32000
    3370 [email protected]=Z
    3380 Z=INT(Z/2+24*RND)
    3390 PRINT Z;"SERFS MOVE TO THE CITY"
    3400 SS(E)=SS(E)+Z
    3410 U(E)=U(E)+.5
    3420 [email protected]=Z/5
    3430 Z=INT(RND*[email protected])
    3440 IF Z<=50 THEN 3460
    3450 Z=50
    3460 M(E)=M(E)+Z
    3470 N(E)=N(E)+1
    3480 Q(E)=Q(E)+2
    3490 IF JJ(E)<3 THEN 3590
    3500 [email protected]=SS(E)/100*(JJ(E)-2)*(JJ(E)-2)
    3510 IF [email protected]>=4 THEN 3530
    3520 [email protected]=4
    3530 IF U(E)<=2 THEN 3550
    3540 U(E)=U(E)-JJ(E)/10
    3550 [email protected]=INT([email protected]/2)
    3560 [email protected]=INT([email protected]*[email protected])
    3570 SS(E)=SS(E)[email protected]
    3580 PRINT [email protected];"SERFS FLEE HARSH JUSTICE"
    3590 GOTO 3720
    3600 X=([email protected]@)/[email protected]*100-9
    3610 [email protected]=X
    3620 IF X>=0 THEN 3650
    3630 [email protected]=0
    3640 X=0
    3650 A=2
    3660 GOSUB 1210
    3670 [email protected]+5
    3680 GOSUB 1250
    3690 IF [email protected]<=1000 THEN 3710
    3700 U(E)=U(E)/2
    3710 GOTO 3490
    3720 Z=AA(E)*75
    3730 K(E)=K(E)+Z
    3740 IF Z<=0 THEN 3760
    3750 PRINT:"YOUR MARKET EARNED ";Z;" FLORINS RENT."
    3760 IF SS(E)>=32766 THEN 3800
    3770 [email protected]=SS(E)
    3780 GOSUB 1170
    3790 SS(E)[email protected]
    3800 Z=INT(D(E)*(55+RND*250))
    3810 IF Z<=0 THEN 3840
    3820 K(E)=K(E)+Z
    3830 PRINT:"YOUR WOOLEN MILL EARNED ";Z;" FLORINS."
    3840 Z=P(E)*3
    3850 PRINT:"YOU PAID YOUR SOLDIERS";Z;"FLORINS": : : :
    3860 K(E)=K(E)-Z
    3870 IF(LL(E)/1000)>P(E)THEN 5170
    3880 IF(LL(E)/500)<P(E)THEN 3960
    3890 IF X<=65 THEN 3920
    3900 X=65
    3910 M(E)=INT(M(E))
    3920 FOR A=1 TO F
    3930 IF A=E THEN 3950
    3940 IF P(A)>(P(E)*2.4)THEN 5170
    3950 NEXT A
    3960 INPUT "(PRESS ENTER)":A$
    3970 RETURN
    4020 CALL CLEAR
    4040 PRINT TAB(10);YY;"A.D.":T$(E);" ";N$(E)
    4050 PRINT: :"***** STATE  PURCHASES *****"
    4055 PRINT "0.NO PURCHASES  0.00 FLORINS"
    4060 PRINT "1.MARKETPLACE   1000 FLORINS"
    4070 PRINT "2.WOOLEN MILL   2000 FLORINS"
    4080 PRINT "3.PALACE        3000 FLORINS"
    4090 PRINT "4.CATHEDRAL     5000 FLORINS"
    4100 PRINT "5.EQUIP 20 SERFS":"  AS SOLDIERS   500 FLORINS"
    4110 PRINT "6.COMPARE STANDINGS":
    4120 PRINT:"YOU HAVE";INT(K(E));"GOLD FLORINS":
    4130 IF K(E)<-30000 THEN 5020
    4150 PRINT:"YOUR CHOICE ? ";
    4160 GOSUB 5630
    4170 I=KV
    4175 IF I>=7 THEN 4160
    4176 IF I=0 THEN 1120
    4270 ON I GOSUB 4360,4320,4410,4460,4510,810
    4310 GOTO 4020
    4320 D(E)=D(E)+1
    4330 K(E)=K(E)-2000
    4340 U(E)=U(E)+.25
    4350 RETURN
    4360 AA(E)=AA(E)+1
    4370 M(E)=M(E)+5
    4380 K(E)=K(E)-1000
    4390 U(E)=U(E)+.1
    4400 RETURN
    4410 BB(E)=BB(E)+1
    4420 N(E)=INT(N(E)+RND*2)
    4430 K(E)=K(E)-3000
    4440 U(E)=U(E)+.5
    4450 RETURN
    4460 CC(E)=CC(E)+1
    4470 Q(E)=INT(Q(E)+RND*6)
    4480 K(E)=K(E)-5000
    4490 U(E)=U(E)+1
    4500 RETURN
    4510 P(E)=P(E)+20
    4520 SS(E)=SS(E)-20
    4530 K(E)=K(E)-500
    4540 RETURN
    4550 Z=0
    4551 TT=0
    4560 A=AA(E)
    4570 GOSUB 4910
    4580 A=BB(E)
    4590 GOSUB 4910
    4600 A=CC(E)
    4610 GOSUB 4910
    4620 A=D(E)
    4630 GOSUB 4910
    4640 A=K(E)/5000
    4650 GOSUB 4910
    4660 A=LL(E)/6000
    4670 GOSUB 4910
    4680 A=M(E)/50
    4690 GOSUB 4910
    4700 A=N(E)/5
    4710 GOSUB 4910
    4720 A=P(E)/50
    4730 GOSUB 4910
    4740 A=Q(E)/10
    4750 GOSUB 4910
    4760 A=SS(E)/2000
    4770 GOSUB 4910
    4780 A=U(E)/5
    4790 GOSUB 4910
    4800 A=INT(Z/8-JJ(E)+1)
    4805 IF A<=8 THEN 4810
    4806 A=8
    4810 IF(YY+2)<>O(E)THEN 4830
    4820 T(E)=T(E)+1
    4830 IF T(E)>=A THEN 4900
    4840 T(E)=A
    4850 RESTORE
    4860 FOR B=1 TO(T(E)+V(E))
    4870 READ T$(E)
    4880 NEXT B
    4890 IF T(E)>=8 THEN 4980
    4900 RETURN
    4910 TT=TT+A
    4920 IF A<=10 THEN 4940
    4930 A=10
    4940 A=INT(A)
    4950 Z=Z+A
    4960 RETURN
    4970 REM  KING OR QUEEN 
    4980 CALL CLEAR
    4985 PRINT: : : : :"LONG LIVE ";T$(E);" ";N$(E);"!!!!!": : : : : : : : : :
    4990 FOR WAIT=1 TO 200
    4995 NEXT WAIT
    5000 GOSUB 810
    5010 GOSUB 5510
    5012 INPUT "PRESS ENTER TO CONTINUE":Z$
    5015 GOTO 4960
    5020 CALL CLEAR
    5030 PRINT:T$(E);" ";N$(E);" IS BANKRUPT."
    5040 PRINT:"CREDITORS HAVE SEIZED MUCH OF YOUR ASSETS":
    5060 INPUT "(PRESS ENTER)":A$
    5070 AA(E)=0
    5080 BB(E)=0
    5090 CC(E)=0
    5100 D(E)=0
    5110 LL(E)=6000
    5120 U(E)=1
    5130 K(E)=100
    5140 M(E)=INT(M(E)/2)
    5150 RR(E)=5000
    5160 RETURN
    5170 Z=0
    5180 FOR A=1 TO F
    5190 IF A=E THEN 5240
    5200 IF P(A)<P(E)THEN 5240
    5210 IF P(A)<(1.2*(LL(A)/1000))THEN 5240
    5220 IF P(A)<=P(Z)THEN 5240
    5230 Z=A
    5240 NEXT A
    5250 IF Z<>0 THEN 5300
    5260 T$(0)="BARON"
    5270 N$(0)="PEPPONE OF MONTERANA"
    5280 [email protected]=INT(9000*RND+1000)
    5290 GOTO 5310
    5300 [email protected]=INT(P(Z)*1000-LL(Z)/3)
    5310 IF [email protected]<=(LL(E)-5000)THEN 5330
    5320 [email protected]=INT((LL(E)-5000)/2)
    5330 PRINT T$(Z);" ";N$(Z);"INVADES AND SEIZES";[email protected];"HECTARES OF LAND"
    5340 LL(Z)=LL(Z)[email protected]
    5350 Z=INT(RND*41)
    5360 IF Z<=(P(E)-15)THEN 5380
    5370 Z=P(E)-15
    5380 PRINT T$(E);" ";N$(E);" LOSES";Z;" SOLDIERS IN BATTLE"
    5390 P(E)=P(E)-Z
    5400 INPUT "(PRESS ENTER)":A$
    5410 RETURN
    5490 GOSUB 3980
    5500 GOSUB 810
    5510 TT=TT+F
    5520 TY=YY-1400
    5530 TZ=TT*10/TY
    5540 CALL CLEAR
    5550 PRINT: :"TOURNAMENT WINNER IS ";N$(E)
    5560 PRINT "SCORE IS ";TZ:" YEAR IS";YY
    5570 V$=STR$(U(E))&" "&SEG$(N$(E),1,6)&" 72"&STR$(TY-7)&STR$(TT)&STR$(T(E))
    5590 PRINT:"TOURNAMENT VERIFICATION CODE"
    5600 PRINT V$
    5610 PRINT "(MUST BE REPORTED TO CERTIFY TOURNAMENT)"
    5615 NW=NW+1
    5620 RETURN
    5630 CALL KEY(0,KV,KS)
    5635 IF KS=0 THEN 5630
    5640 K$=CHR$(KV)
    5645 IF(KV<48)+(KV>57)THEN 5630
    5650 KV=VAL(K$)
    5667 PRINT KV
    5668 FOR WAIT=1 TO 50
    5669 NEXT WAIT
    5670 RETURN
    18690 END
    
    


  15. I should have mentioned, the reason it loads variables from a tape file is because it takes up every square inch of real estate in RAM. You can't RUN it from BASIC with a disk system connected. I haven't tried to load it with disk connected yet.

     

    If I can get it working in XB in Classic99, I'll leave further modifications to others. What do you have against square O's? ;)


  16. As reviewed in this month's Retrogaming Times Monthly, I'm planning to try to salvage the UK cassette game Atlantis, and bring it from cassette over into the modern, emulator-friendly world. I'm going to document the process for next month's RTM, if only so everyone can see my make-every-mistake-in-the-book-twice problem solving methods. :)

     

    Right now, the loose plan is this:

     

    1. Load the code from tape twice, saving half to a new tape each time.

    2. Load those two segments with the disk drives on, then save each to disk.

    3. Combine the two in Classic99 via paste.

    4. Figure out what variables the program is reading from its separate data file, then write a small program to read those variables from the tape and save them to disk.

    5. Rewrite the program code to read the variables from disk instead -- or, instead, just add that data to the program code itself.

    6. Run the code through the "BXB" program, which should allow it to run in XB with its BASIC character sets intact.

    7. Save the whole mess to disk, run it in emulator.

    8. Enjoy the adulation and gratitude of millions.

     

     

    IF I can get the program to load from tape with disk drives attached, I can skip 1-3 and just save the code to disk.

     

    Any suggestions or advice on this undertaking are welcome. I am buried in work right now, but I'm going to try to carve out a few hours to do this project over the weekend.

     

    Keith

     

    atlantis2.jpg


  17. I'm actually gonna bail on this project already... :/ Just had a very cool deal come up for work that's gonna result in a nice chunk of cash, but is gonna require a LOT of work over the next several weeks. If you guys want to move forward with it in my absence, and use any/all/none of the ideas I laid out, please, go for it. I look forward to seeing what develops, and wish I'd have time to be involved... but I'll be lucky if I have time to lurk till this thing is over with.


  18. I think the "farm" should be a "map" of sorts... It'll look just like a farm, but the user can select a plot of land or a herd of animals and then the screen would "zoom" in to a particular plot of land and you would have "corn" or whatever take up the entire screen for real work... That would be the best way to make this playable/enjoyable in my opinion. That way the general farm screen wouldn't be the main area of work, it would just show what's going on an allow the user to specify what he/she wants to do. If the user clicks on the "zombie-infested" plot of land, we go into battle! :). What ya say?

     

    The 'zoom in' is kinda what I had in mind for the zombie attack portion, but it'd actually be loading a new program in which tackled the arcade portion of the game. The same principle could apply to the farming portion of the game too. I hadn't really thought of it that way. What would the player do when they clicked on a square of pasture or cropland?

     

    Another idea that just cropped up: if you click on an overrun square and battle zombies there, it's just your people, zombies, and whatever background stuff (tree stumps, old cars, etc) we wanted to add in. But on the occasions where the zombies attack your already-cleared land, there could be animal sprites roaming around getting in the way, and it could count against you somehow if the zombies manage to kill your livestock, even if you ultimately win the battle for that square.


  19. I like the idea of separating out crops and herds. My worry was, if each square can be in too many "states" (farmland, water, overrun by zombies, etc) we'd rapidly run out of graphic characters in different color sets to use. A lot will probably depend on making several states be in the same color, but distinguishable to the user's eye -- unplowed land vs. plowed, for example.

     

    One possible solution: require the barns and silos to take up 2x2 squares, and make them sprites. Make it a requirement that they're placed on cleared land, and perhaps set some kind of limit on how many of each (to get around the four sprites-per-line jazz). We want them to take up a proper amount of real estate, to force the player to plan properly, but their only function in actual game mechanics will be to increase the variable that allows for maximum stored amount of crops/cattle.

     

    I gotta go get some real-life work done, but I'll do some puzzling out on paper of formulas and mechanics today, and come back to this later tonight.


  20. OK, I brainstormed this on the drive home from dropping off kids this morning. Here's one proposal for a way to do it, see what you guys think. (And again, I need my head examined, I don't have time for yet another project right now). :)

     

    I see the farm portion of the game and an action bit as two separate programs. The farm screen is, say, 16x32, with eight lines at the bottom for stats, alerts, etc. The "map" of the farm consists of squares in various states, such as:

     

    uncultivated land

    plowed ("reclaimed") land

    planted land

    grazing land (need x amount per livestock)

    water (there'll be a river on one side of the map; digging a canal from it will increase the max amount of crops, and max amount of sustainable population)

    house (need housing units per x number of people)

    barn (allows storage of x amount of grain and animals)

     

    A square can also be "overrun" which means it's infested by zombies, and nothing can be done with it.

     

    Each turn you get x number of "moves" depending on your population, morale, etc. You have to allocate food, decide where to plant, to send people out to dig canals, plow land, build more shelters, etc. You can also select an "overrun" square, adjacent to your cleared turf, and pick how many people to take along on a 'zombie clearing.' At that point the game saves its variables and loads the zombie attack portion, which should be a simple, fast, assembly-based arcade sequence. Once that's over and casualties are counted, it transfers control back to the farm program.

     

    In addition, the zombies will periodically attack new squares of turf, so even if the player doesn't aggressively go after the zombies, they'll be forced into "battle mode" to defend their existing farmland, buildings, etc.

     

    "Winning" could be a certain population threshhold, or the clearing of the entire map of zombies.

     

    There's more detail to work out, about how overrun the map would be at the start, the formulae for how fast food grows, etc, but this gives you the general idea.

     

    Let me know if doing it this way appeals to anyone. If not, I'm totally ok with it (and will likely make a game like this in 30 years when my schedule opens up). :) If you DID want to go with this idea, I'd be happy to tackle the XB farm portion of things, and would love for someone else to handle a fast-paced assembly arcade portion, nicer graphics, etc.


  21. Okay, because I can't stop thinking about this idea... it's really similar to a game I wanted to do! I was gonna call it "Fort Zombie," but I Googled that title and it's an actual game coming out for PC.

     

    I'm thinking of a turn-based farm-type game, which would be a more graphical version of the classic Hammurabi -- you have to allocate land for planting, seeds to grow stuff, assign labor to harvest, assign grain for feed, account for rats and spoilage, etc.

     

    Then, in the midst of all this, there could be sprite-based arcade action sequences where you go out with your prime zombie response team to blast the undead as they infiltrate sectors of your map.

     

    You could build walls and moats, till and rotate land, etc. Ooh, and have to allow space for your population to live as well, and morale could go up or down depending on how densely they're forced to live and how much they have to work.

     

    Argh! Stop it! Too many ideas, no time!! [email protected][email protected]@!#ergeRG3hmbrg f


  22. What if we all took one element of the game and worked on it over the next 48 hours?! I could code up the music and get a working "zombie" SPRITE walking across the screen. :)

     

     

    I'm still under TI quarantine till Sunday. :)

×
×
  • Create New...