InfernalKeith Posted November 18, 2015 Share Posted November 18, 2015 (edited) This is the final 1.0 release of Dicecrash, my new game for the TI 99/4A in Extended BASIC. It's a dice scoring game combining elements of Yahtzee, Tetris and Arkanoid. In Dicecrash, you arrange falling dice into five columns and try to create winning combinations, similar to poker hands. You must choose your column and launch each dice in a timely fashion, or else a blank dice crashes down in its place, blocking your chance to create a combo. When the play field is full, the score is tallied, and if you meet the stated goal, you move on to the next level, a higher goal, and less time to place your dice. As you advance, more and more power ups will appear. Some of these will enhance your score, help you clear away mistakes on the play field, or change the field in a negative way. Also, from level 3 onward, some dice will be pre-placed randomly before you start, just to add to the challenge. Thanks for checking it out! Keith 100 CALL CLEAR :: HIGH=0 :: RANDOMIZE :: OPTION BASE 1 110 DIM F(10,5),SNAME$(7),AMOUNT(7),PU(10),CT(3),TEMP(3) 111 RESTORE 10010 :: FOR X=96 TO 111 :: READ X$ :: CALL CHAR(X,X$) :: NEXT X :: CALL CHAR(94,"18181818FF7E3C18",45,"000000FFFF000000") 112 RESTORE 10000 :: FOR X=1 TO 7 :: READ SNAME$(X) :: NEXT X 113 MULT=1 :: SCORE=0 :: LEVEL=1 :: GOAL=500 :: CT(1)=8 :: CT(2)=9 :: CT(3)=13 :: CALL COLOR(9,2,16,10,7,1) 114 GOSUB 20000 115 TOT=0 :: TLIM=MAX(5,16-LEVEL) :: FOR X=1 TO 10 :: FOR Y=1 TO 5 :: F(X,Y)=-1 :: NEXT Y :: NEXT X 120 DISPLAY AT(3,1):"---------" :: CALL SCOREDIS(SCORE,MULT) 122 DISPLAY AT(24,1):"DICECRASH LVL GOAL " 124 DISPLAY AT(24,14):USING "##":LEVEL; :: DISPLAY AT(24,23):USING "######":GOAL; 125 GOSUB 15000 127 IF LEVEL>2 THEN GOSUB 17000 130 PS=1 140 X=1 142 IF TOT+1=PU(X)THEN PU(X)=0 ELSE X=X+1 :: IF X<10 THEN 142 ELSE X=INT(RND*6)+1 :: GOTO 150 144 X=INT(RND*+8 :: CALL SOUND(100,1568,3) :: CALL SOUND(150,1760,3) 150 ! DISPLAY AT(1,1):CHR$(X+96); 160 T=0 165 DISPLAY AT(2,1):" " :: DISPLAY AT(2,PS+(PS-1)):CHR$(X+96); 170 CALL KEY(0,K,S) :: IF S=0 THEN T=T+1 :: IF T>TLIM THEN IF X>6 THEN 205 ELSE X=0 :: GOTO 205 180 IF K=CT(1)THEN PS=PS-1 :: IF PS=0 THEN PS=5 190 IF K=CT(2)THEN PS=PS+1 :: IF PS=6 THEN PS=1 200 IF K<>CT(3)THEN 165 205 IF F(1,PS)=-1 THEN 210 206 CALL SOUND(200,110,0,-4,0) :: IF X>0 AND X<7 THEN 165 207 PS=PS+1 :: IF PS>5 THEN PS=1 209 GOTO 205 210 DISPLAY AT(2,1):" " :: R=1 215 IF F(R,PS)=-1 THEN 220 220 IF F(R,PS)=-1 THEN DISPLAY AT((R+1)*2,PS+(PS-1)):CHR$(X+96); :: CALL FALLSOUND(R,X) :: DISPLAY AT((R+1)*2,PS+(PS-1)):" "; :: R=R+1 :: IF R<11 THEN 220 230 R=R-1 :: F(R,PS)=X :: DISPLAY AT((R+1)*2,PS+(PS-1)):CHR$(X+96); :: TOT=TOT+1 240 IF X>7 THEN GOSUB 25000 242 IF TOT<50 THEN GOTO 140 245 DISPLAY AT(2,1):"TALLYING..."; 250 ! SORTING AND SCORING 260 FOR X=1 TO 10 270 FOR Y=1 TO 5 280 FOR Z=1 TO 4 290 IF F(X,Z)>F(X,Z+1)THEN TMP=F(X,Z) :: F(X,Z)=F(X,Z+1) :: F(X,Z+1)=TMP 300 NEXT Z :: NEXT Y :: NEXT X 305 DISPLAY AT(2,1):" "; 310 FOR X=1 TO 10 312 PZ=0 315 IF F(X,1)=F(X,2)AND F(X,2)=F(X,3)AND F(X,3)=F(X,4)AND F(X,4)=F(X,5)AND F(X,1)>0 THEN PZ=1 :: GOTO 400 320 IF F(X,1)=F(X,2)AND F(X,2)=F(X,3)AND F(X,3)=F(X,4)AND F(X,1)>0 THEN PZ=2 :: GOTO 400 330 IF F(X,2)=F(X,3)AND F(X,3)=F(X,4)AND F(X,4)=F(X,5)AND F(X,2)>0 THEN PZ=2 :: GOTO 400 340 X$="" :: FOR Y=1 TO 5 :: X$=X$&STR$(F(X,Y)) :: NEXT Y :: IF X$="12345" OR X$="23456" THEN PZ=4 :: GOTO 400 350 IF F(X,2)=F(X,3)AND F(X,3)=F(X,4)AND F(X,2)>0 THEN PZ=6 :: GOTO 400 360 IF F(X,1)=F(X,2)AND F(X,2)=F(X,3)AND F(X,1)>0 THEN IF F(X,4)=F(X,5)THEN PZ=3 :: GOTO 400 ELSE PZ=6 :: GOTO 400 370 IF F(X,3)=F(X,4)AND F(X,4)=F(X,5)AND F(X,3)>0 THEN IF F(X,1)=F(X,2)THEN PZ=3 :: GOTO 400 ELSE PZ=6 :: GOTO 400 380 IF F(X,1)=F(X,2)AND F(X,1)>0 THEN IF F(X,3)=F(X,4)OR F(X,4)=F(X,5)THEN PZ=5 :: GOTO 400 390 IF F(X,2)=F(X,3)AND F(X,2)>0 THEN IF F(X,4)=F(X,5)THEN PZ=5 400 IF PZ=0 THEN PZ=7 410 IF PZ=1 THEN TSCORE=(F(X,1)*100)*MULT 420 IF PZ=2 THEN TSCORE=(F(X,2)*50)*MULT 430 IF PZ=3 THEN TSCORE=100*MULT ELSE IF PZ=4 THEN TSCORE=60*MULT ELSE IF PZ=5 THEN TSCORE=40*MULT ELSE IF PZ=6 THEN TSCORE=20*MULT 440 DISPLAY AT((X+1)*2,12):SNAME$(PZ);" ";TSCORE 450 SCORE=SCORE+TSCORE :: TSCORE=0 460 NEXT X 470 CALL SCOREDIS(SCORE,MULT) 480 IF SCORE<GOAL THEN 530 490 DISPLAY AT(24,1):"CONGRATULATIONS! PRESS SPACE" 492 CALL SOUND(375,440,2) :: CALL SOUND(375,523,2) :: CALL SOUND(450,659,2) :: CALL SOUND(525,523,2) :: CALL SOUND(750,784,2) 493 FOR X=2 TO 30 STEP 2 :: CALL SOUND(99,784,X) :: NEXT X 500 CALL KEY(0,K,S) :: IF S=0 THEN 500 510 LEVEL=LEVEL+1 :: GOAL=GOAL+500+((LEVEL-1)*250) :: MULT=1 520 CALL CLEAR :: GOTO 115 530 DISPLAY AT(24,1):" GAME OVER... PRESS ANY KEY." 540 CALL KEY(0,K,S) :: IF S=0 THEN 540 550 IF SCORE>HIGH THEN HIGH=SCORE 560 GOTO 113 2520 GOTO 29999 10000 DATA "5 OF A KIND","4 OF A KIND","FULL HOUSE","STRAIGHT","2 PAIRS","3 OF A KIND","NONE" 10010 DATA "0000000000000000","0000001818000000","0060600000060600","1818001818001818" 10020 DATA "0066660000666600","C3C300181800C3C3","C3C300C3C300C3C3" 10030 DATA "0000000000000000","183C7EFFFF7E3C18","18183C3CC3DBDBC3","C3C324181824C3C3","FFFFC3C3C3C3C3C3" 10040 DATA "00664400003C2442","181818FFFF181818","80403E3F3F3E4080","00100810183C3C18" 15000 ! SET POWERUP FLAGS 15010 FOR X=1 TO 10 :: PU(X)=0 :: NEXT X 15020 NTRVL=50/(LEVEL+1) :: BS=50 :: FOO=MIN(10,LEVEL) 15030 FOR X=FOO TO 1 STEP-1 15040 BS=BS-NTRVL :: PU(X)=INT(BS) 15050 NEXT X 15060 RETURN 17000 ! OBSTACLES LEVEL 3+ 17010 X=INT(RND*5)+1 :: TOT,Z=MIN(10,LEVEL) 17020 FOR Y=10 TO(11-Z)STEP-1 :: W=INT(RND*7) :: CALL HCHAR((Y+1)*2,X+(X+1),W+96) :: CALL SOUND(75,-7,0) :: F(Y,X)=W :: NEXT Y 17030 RETURN 20000 CALL CLEAR :: CALL SCREEN(12) 20002 PRINT " aaaa aaaaa aaa aaaaa":" a a a a a":" a a a a aaa":" a a a a a":" aaaa aaaaa aaa aaaaa" 20004 PRINT:" aaa aaaa a aaaa a a":"a a a a a a a a":" aaaa aaaaa aaa aaaaa":"a a a a a a a a" 20005 PRINT " aaa a a a a aaaa a a" :: PRINT: : : : : : : : : : : 20006 CALL HCHAR(10,2,97) 20007 DISPLAY AT(14,4):"(C) 2015 KEITH BERGMAN" 20008 IF SFL=1 THEN 20110 20009 FOR X=1 TO 4 20010 CALL SOUND(125,220, 20020 CALL SOUND(125,262, 20030 CALL SOUND(125,330,6) 20040 CALL SOUND(125,262, 20050 CALL SOUND(125,392, 20060 CALL SOUND(125,262, 20070 CALL SOUND(125,330,6) 20080 CALL SOUND(125,392, 20090 NEXT X 20100 FOR X=0 TO 30 :: CALL SOUND(50,220,X,440,X) :: NEXT X 20110 DISPLAY AT(17,1):" 1. PLAY DICECRASH":" 2. INSTRUCTIONS":" 3. ADJUST CONTROLS":" 4. CREDITS/LICENSE":" 5. QUIT GAME" 20120 DISPLAY AT(23,1):" HIGH SCORE:";HIGH 20130 CALL KEY(0,K,S) :: IF S=0 THEN 20130 20140 IF K<49 OR K>53 THEN CALL SOUND(75,-3,0) :: GOTO 20130 20150 SFL=1 :: ON K-48 GOTO 20160,20270,20520,20180,20170 20160 CALL CLEAR :: RETURN 20170 CALL CLEAR :: PRINT "VISIT ORPHANTECH.COM" :: STOP 20180 CALL BORDER 20190 DISPLAY AT(3,1):"a DICECRASH WAS CREATED BY"; :: DISPLAY AT(4,3):"KEITH BERGMAN, NOV 2015"; 20200 DISPLAY AT(6,1):"a FREE TO DISTRIBUTE ONLINE"; :: DISPLAY AT(7,3):"AND FOR PERSONAL USE"; 20210 DISPLAY AT(9,1):"a SALE IN PHYSICAL FORMAT"; :: DISPLAY AT(10,3):"BY ANYONE BUT THE AUTHOR"; 20220 DISPLAY AT(11,3):"IS EXPRESSLY FORBIDDEN"; :: DISPLAY AT(13,1):"a THANKS TO EVERYONE ON THE"; 20230 DISPLAY AT(14,3):"ATARIAGE.COM TI FORUMS"; :: DISPLAY AT(16,1):"a VISIT ORPHANTECH.COM"; 20240 DISPLAY AT(17,3):"FOR UPDATES & OTHER GAMES"; 20245 DISPLAY AT(19,1):"a RELEASE 1.0 30 NOV 2015"; 20250 CALL KEY(0,K,S) :: IF S=0 THEN 20250 20260 GOTO 20000 20270 CALL BORDER 20280 DISPLAY AT(3,1):"a DICE ARE CRASHING TO THE"; :: DISPLAY AT(4,3):"GROUND! ARRANGE THEM AS"; :: DISPLAY AT(5,3):"THEY FALL FOR MAXIMUM"; 20290 DISPLAY AT(6,3):"POINTS TO REACH YOUR GOAL"; :: DISPLAY AT(8,1):"a TAKE TOO LONG TO PLACE"; :: DISPLAY AT(9,3):"YOUR DICE AND A BLANK WILL" 20300 DISPLAY AT(10,3):"FALL INTO ITS PLACE!"; :: DISPLAY AT(12,1):"a SCORE IS TALLIED WHEN"; :: DISPLAY AT(13,3):"THE PLAY FIELD IS FULL" 20310 DISPLAY AT(15,1):"a WATCH FOR POWER UPS..."; :: DISPLAY AT(16,3):"SOME HELP YOU, SOME DON'T"; 20320 CALL KEY(0,K,S) :: IF S=0 THEN 20320 20330 CALL BORDER 20340 DISPLAY AT(3,1):"a LEFT/RIGHT ARROWS TO MOVE"; :: DISPLAY AT(4,3):"PRESS ENTER TO DROP DICE."; 20350 DISPLAY AT(6,1):"a OR PRESS 3 AT MAIN MENU TO"; :: DISPLAY AT(7,3):"ADJUST GAME CONTROLS"; :: DISPLAY AT(10,1):"3 OF A KIND FULL HOUSE"; 20360 DISPLAY AT(11,1):"b b b c d e e e f f"; :: DISPLAY AT(12,1):"20 POINTS 100 POINTS"; 20370 DISPLAY AT(14,1):"2 PAIR 4 OF A KIND"; :: DISPLAY AT(15,1):"d d a a e f f f f b"; 20380 DISPLAY AT(16,1):"40 POINTS 50X DIE VALUE" :: DISPLAY AT(18,1):"STRAIGHT 5 OF A KIND"; 20390 DISPLAY AT(19,1):"a b c d e d d d d d"; :: DISPLAY AT(20,1):"60 POINTS 100X DIE VALUE"; 20400 CALL KEY(0,K,S) :: IF S=0 THEN 20400 20410 CALL BORDER 20420 DISPLAY AT(2,10):"POWER UPS:"; :: DISPLAY AT(4,1):"h CLEAR ROW, EARN ITS PTS"; 20430 DISPLAY AT(6,1):"i CHANGE ALL DICE IN COLUMN"; :: DISPLAY AT(7,3):"TO DICE AT THE TOP"; 20440 DISPLAY AT(9,1):"j SCORE MULTIPLIER"; 20450 DISPLAY AT(11,1):"k CLEAR A COLUMN AND"; :: DISPLAY AT(12,3):"EARN ALL ITS POINTS"; 20460 DISPLAY AT(14,1):"l SCRAMBLES TOP DICE ROW"; 20470 DISPLAY AT(16,1):"m JACKPOT - ROLL FOR BONUS"; :: DISPLAY AT(18,1):"n BLANKS TOP 5 DICE"; 20480 DISPLAY AT(20,1):"o BLOWS UP 3 COLUMNS-NO PTS"; 20490 CALL KEY(0,K,S) :: IF S=0 THEN 20490 20500 CALL BORDER :: DISPLAY AT(12,9):"GOOD LUCK!!!"; 20510 CALL KEY(0,K,S) :: IF S=0 THEN 20510 ELSE 20000 20520 CALL BORDER :: DISPLAY AT(3,7):"ADJUST CONTROLS:"; :: CT(1)=8 :: CT(2)=9 :: CT(3)=13 :: FOR X=1 TO 3 :: TEMP(X)=0 :: NEXT X 20530 DISPLAY AT(6,7):"LEFT:_"; :: DISPLAY AT(8,6):"RIGHT:_"; :: DISPLAY AT(10,7):"DROP:_"; 20540 FOR X=6 TO 10 STEP 2 20550 DISPLAY AT(X,12)BEEP:"?"; 20560 CALL KEY(0,K,S) :: IF S=0 THEN 20560 ELSE TEMP((X-(X/2)-2))=CT((X-(X/2)-2)) :: CT((X-(X/2)-2))=K :: DISPLAY AT(X,12):" "; 20565 NEXT X :: IF CT(1)=CT(2)OR CT(2)=CT(3)OR CT(1)=CT(3)THEN CALL SOUND(75,-7,0) :: GOTO 20520 20570 DISPLAY AT(14,7):"1 SAVE AND EXIT"; :: DISPLAY AT(15,7):"2 RESTORE DEFAULTS"; :: DISPLAY AT(16,7)BEEP:"3 CANCEL AND EXIT"; 20580 CALL KEY(0,K,S) :: IF S=0 THEN 20580 20590 ON K-48 GOTO 20610,20620,20600 20600 FOR X=1 TO 3 :: CT(X)=TEMP(X) :: NEXT X 20610 GOTO 20000 20620 CT(1)=8 :: CT(2)=9 :: CT(3)=13 :: GOTO 20000 25000 ON X-7 GOTO 25010,25090,25120,25240,25290,25430,25500,25570 25010 ! CLEAR ROW + POINTS 25020 TOT=TOT-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) :: IF R=10 THEN CALL SOUND(75,-5,0) :: F(R,PS)=-1 :: GOTO 29999 25030 F(R,PS)=-1 :: R=R+1 :: FOR Z=1 TO 5 :: CALL HCHAR((R+1)*2,(Z*2)+1,104) :: CALL SOUND(100,-7,0) :: CALL HCHAR((R+1)*2,(Z*2)+1,32) 25040 IF F(R,Z)>-1 THEN SCORE=SCORE+F(R,Z) :: TOT=TOT-1 25050 F(R,Z)=-1 :: TR=R :: IF TR=1 THEN 25080 25060 IF F(TR-1,Z)=-1 THEN 25080 25070 F(TR,Z)=F(TR-1,Z) :: CALL HCHAR((TR+1)*2,(Z*2)+1,F(TR,Z)+96) :: CALL HCHAR(TR*2,(Z*2)+1,32) :: CALL SOUND(25,-3,0) :: TR=TR-1 25075 F(TR,Z)=-1 :: IF TR>1 THEN GOTO 25060 25080 NEXT Z :: CALL SCOREDIS(SCORE,MULT) :: GOTO 29999 25090 TOT=TOT-1 :: F(R,PS)=-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) :: IF R=10 THEN CALL SOUND(75,-5,0) :: GOTO 29999 25100 R=R+1 :: FOR Z=R TO 10 :: F(Z,PS)=F(R,PS) :: CALL HCHAR((Z+1)*2,(PS*2)+1,105) :: CALL SOUND(100,-7,0) :: CALL HCHAR((Z+1)*2,(PS*2)+1,F(Z,PS)+96) :: NEXT Z 25110 GOTO 29999 25120 ! MULTIPLIER 25130 TOT=TOT-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) :: F(R,PS)=-1 25140 CALL SOUND(125,880, 25150 CALL SOUND(125,1047, 25160 CALL SOUND(125,1319,6) 25170 CALL SOUND(125,1047, 25180 CALL SOUND(125,1568, 25190 CALL SOUND(125,1047, 25200 CALL SOUND(125,1319,6) 25210 CALL SOUND(125,1568, :: FOR Z=9 TO 30 :: CALL SOUND(-100,1568,Z) :: NEXT Z 25220 MULT=MULT+1 :: IF MULT>6 THEN MULT=6 25230 CALL SCOREDIS(SCORE,MULT) :: GOTO 29999 25240 ! CLEAR COLUMN + PTS 25250 TOT=TOT-1 :: F(R,PS)=-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) :: IF R=10 THEN CALL SOUND(75,-5,0) :: GOTO 29999 25260 R=R+1 :: FOR Z=R TO 10 :: TOT=TOT-1 :: SCORE=SCORE+F(Z,PS) :: F(Z,PS)=-1 :: CALL HCHAR((Z+1)*2,(PS*2)+1,107) :: CALL SOUND(100,-7,0) 25270 CALL HCHAR((Z+1)*2,(PS*2)+1,32) :: NEXT Z 25280 CALL SCOREDIS(SCORE,MULT) :: GOTO 29999 25290 ! SCRAMBLE TOP 5 DIE 25300 TOT=TOT-1 :: F(R,PS)=-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) 25310 CALL SOUND(125,324,0) 25320 CALL SOUND(125,267,0) 25330 CALL SOUND(125,229,0) 25340 CALL SOUND(125,387,0) 25350 CALL SOUND(125,277,0,256,0) 25360 CALL SOUND(125,378,0,399,0) 25370 CALL SOUND(125,259,0,270,0) 25380 CALL SOUND(100,330,0,344,0) :: FOR Z=1 TO 30 :: CALL SOUND(-50,330,Z,344,Z) :: NEXT Z 25390 FOR Z=1 TO 5 :: Y=1 25400 IF F(Y,Z)=-1 THEN Y=Y+1 :: IF Y=11 THEN 25420 ELSE 25400 25410 F(Y,Z)=INT(RND*6)+1 :: CALL HCHAR((Y+1)*2,(Z*2)+1,F(Y,Z)+96) :: CALL SOUND(75,-7,0) 25420 NEXT Z :: GOTO 29999 25430 ! BONUS POINTS 25440 Y$="" :: TOT=TOT-1 :: F(R,PS)=-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) 25445 FOR Z=1 TO 3 :: IF Z=1 THEN Y=INT(RND*3)+1 ELSE Y=INT(RND*6)+1 25450 CALL HCHAR(6,17+Z,Y+48) :: CALL HCHAR(5,17+((Z*2)-1),Y+96) :: CALL SOUND(75,-7,0) :: NEXT Z 25460 DISPLAY AT(6,20):"BONUS PT"; :: FOR Z=1 TO 3 :: CALL GCHAR(6,17+Z,Y) :: Y$=Y$&STR$(Y-48) :: NEXT Z :: Y=VAL(Y$) :: SCORE=SCORE+Y 25470 CALL SCOREDIS(SCORE,MULT) 25480 CALL SOUND(500,440,0) :: CALL SOUND(500,523,0) :: CALL SOUND(750,659,0) :: CALL SOUND(1000,554,0) 25485 FOR Y=1 TO 500 :: NEXT Y 25490 FOR Y=5 TO 6 :: FOR Z=17 TO 30 :: CALL HCHAR(Y,Z,32) :: CALL SOUND(25,-7,9) :: NEXT Z :: NEXT Y :: GOTO 29999 25500 ! FIVE BLANK DICE 25510 TOT=TOT-1 :: F(R,PS)=-1 :: CALL HCHAR((R+1)*2,(PS*2)+1,32) 25520 FOR Z=1 TO 5 :: IF F(1,Z)<>-1 THEN 29999 25530 Y=1 25540 IF F(Y,Z)=-1 THEN Y=Y+1 :: IF Y=11 THEN 25560 ELSE 25540 25550 F(Y,Z)=0 :: CALL HCHAR((Y+1)*2,(Z*2)+1,96) :: FOR ZZ=185 TO 110 STEP-5 :: CALL SOUND(-50,ZZ,0) :: NEXT ZZ 25560 NEXT Z :: GOTO 29999 25570 ! BLOW UP COLUMNS 25580 COUNTY=3 :: COUNTX=R+1 :: POSX=R+1 :: POSY=PS-1 25590 IF POSY=0 THEN POSY=5 ELSE IF POSY=6 THEN POSY=1 25600 IF POSX>10 THEN POSX=10 ELSE IF POSX=0 THEN 25630 25610 CALL SOUND(200,-6,0) :: CALL HCHAR((POSX+1)*2,POSY+(POSY+1),111) :: CALL HCHAR((POSX+1)*2,POSY+(POSY+1),32) 25620 IF F(POSX,POSY)<>-1 THEN F(POSX,POSY)=-1 :: TOT=TOT-1 25630 COUNTX=COUNTX-1 :: POSX=POSX-1 :: IF COUNTX=0 THEN COUNTX=R+1 :: COUNTY=COUNTY-1 :: POSY=POSY+1 :: POSX=R+1 25640 IF COUNTY>0 THEN 25590 25650 RETURN 29999 RETURN 30000 SUB FALLSOUND(R,X) 30010 IF X=0 THEN CALL SOUND(-300,110,0,-8,0)ELSE CALL SOUND(-300,110*(11-R),0) 30020 SUBEND 30030 SUB SCOREDIS(X,Y) 30040 X$="SCORE"&RPT$(" ",6-LEN(STR$(X)))&STR$(X) 30050 DISPLAY AT(1,16)$; 30055 DISPLAY AT(23,27):"X";CHR$(Y+96); 30060 SUBEND 30070 SUB BORDER 30080 CALL CLEAR :: CALL HCHAR(1,1,96,32) :: CALL HCHAR(24,1,96,32) :: CALL VCHAR(1,1,96,24) :: CALL VCHAR(1,32,96,24) 30090 DISPLAY AT(22,1):"a b c dPRESS ANY KEY.f e d c"; 30100 SUBEND DICECRASH.zip Edited December 1, 2015 by InfernalKeith 6 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted November 18, 2015 Share Posted November 18, 2015 Hell yea!!! Thanks Keith, cant wait to play!! Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 18, 2015 Author Share Posted November 18, 2015 (edited) * deleted * Edited December 1, 2015 by InfernalKeith 2 Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted November 18, 2015 Share Posted November 18, 2015 So far I haven't passed lvl 1. But its fun 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted November 18, 2015 Share Posted November 18, 2015 Nice concept One issue: When the dice drop without pressing Enter, their face is blank. I don't think this is supposed to happen. 1 Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 19, 2015 Author Share Posted November 19, 2015 That's part of the game. If you take too long to drop the dice yourself, a blank dice drops and makes it that much harder to achieve a score in that row. The time you have to drop the dice yourself decreases as the level increases. That's in the instructions, but I don't know how clearly I explained it. I've been elbow-deep in the game for a week or two so I need some space from it before I revise them and make any fixes. 2 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted November 19, 2015 Share Posted November 19, 2015 OK got it Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 21, 2015 Author Share Posted November 21, 2015 Well, my high score so far is 6514. I took a few days off from it, then played some games and made notes on some minor adjustments. It doesn't seem to have generated much interest, but if anyone has played and has any suggestions, my plan is to make the final revisions Sunday and then call it done and move on to another project. Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted November 21, 2015 Share Posted November 21, 2015 I like the game haven't had much time to play tho high score was under 400 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted November 21, 2015 Share Posted November 21, 2015 I like the game, but haven't gotten a lot of play yet too--I've been building and testing cartridges this week, so I've played a lot, but not anything that didn't end up in one of the cartridges. . . 1 Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted November 21, 2015 Share Posted November 21, 2015 476 this round. I will get 500 tonight! Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 21, 2015 Author Share Posted November 21, 2015 A strategy tip: try to build straights or full houses. If you have a row with 2-3 dice that would make a straight, like a 3 4 5, and the next dice won't complete a straight, go up to the next row with it, and start eyeballing that row for what it could potentially be. It doesn't always work, but you can usually get a good pile of straights or full houses in the bottom rows, even when things get more quick and you have fewer options at the top of the board. 1 Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 21, 2015 Author Share Posted November 21, 2015 And thank you guys for checking it out. I realize now my comment sounded a little whiny. I know everyone's busy and I appreciate anyone taking the time to check my game out. 1 Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted November 21, 2015 Share Posted November 21, 2015 (edited) Hehe beat the gamemakers score 9564 Hopefully I can try this out on real iron tomorrow Edited November 21, 2015 by Iwantgames:) Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 21, 2015 Author Share Posted November 21, 2015 Impressive!! I have a new challenge. That's the last time I pass out strategy tips. 1 Quote Link to comment Share on other sites More sharing options...
Willsy Posted November 21, 2015 Share Posted November 21, 2015 This is one of the best XB games I've played in a long time. My only suggestion would be to lose the flashing arrow and simply replace it with the actual dice that you're about to launch! Brilliant game. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted November 21, 2015 Share Posted November 21, 2015 (edited) My only suggestion would be to lose the flashing arrow and simply replace it with the actual dice that you're about to launch! Good idea. Edited November 23, 2015 by sometimes99er Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted November 21, 2015 Share Posted November 21, 2015 Pedant here : 1 die—2 or more dice ...lee Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 21, 2015 Author Share Posted November 21, 2015 Lee, you're right, and I stand ashamed. I actually left it as "dice" because I wasn't sure how well known "die" was as the singular, and didn't know if that would cause confusion among those outside the English-speaking countries. I should have gone with the correct usage, though. I'll make sure the in-game instructions are correct. 2 Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted November 21, 2015 Share Posted November 21, 2015 11,553 Played on Real Hardware 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted November 22, 2015 Share Posted November 22, 2015 Niiiiice..... Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 22, 2015 Author Share Posted November 22, 2015 I'm gonna miss my deadline of finishing the game revisions to try and beat iwantgames' score on my own damn game. 1 Quote Link to comment Share on other sites More sharing options...
Iwantgames:) Posted November 22, 2015 Share Posted November 22, 2015 Quote Link to comment Share on other sites More sharing options...
Davvel Posted November 23, 2015 Share Posted November 23, 2015 From what I can see this is a great game, although at first it looks like a Tetris rehash it is far from that and has a clear game strategy of its own which may be addictive. A big well done. I will not be surprised if we see someone porting this to a mobile app. Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted November 23, 2015 Author Share Posted November 23, 2015 Thanks Davvel! That's actually on my to-do list for 2016. (Finding someone to do it, not me doing it, unless they've released Extended BASIC for iOS.) 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.