Free your creativity - IOMBCC

Página 14/29
7 | 8 | 9 | 10 | 11 | 12 | 13 | | 15 | 16 | 17 | 18 | 19

Por dvik

Prophet (2200)

Imagen del dvik

04-04-2005, 11:05

Wow, A lot of new nice entries since last time I checked Smile I especially like the brainfuck interpreter but the other ones are really impressive as well.

I made some optimizations to the Rally game (mainly interesting for NYYRIKKI I think) I managed to shrink the program with another 100 characters so now there is plenty of space for a nice Chase HQ type ending. Here's the update:

1 DEFINT A-Z:V=14:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 KEYOFF:SCREEN1,3,0:LOCATE9,1:PRINT"PLEASE WAIT!":FORI=256TO991:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO/2)/(2-(IAND4)/4):NEXT:FORW=0TO1:FORI=1TO212STEP3:Q=ASC(MID$(S$(W),I,1))-65:Y=VAL("&H"+MID$(S$(W),I+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y
4 NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:FORI=0TO11:FORH=0TO31:VPOKE6528+H+I*32,(I<8ORH72)-(X<0):U=STICK(0):GOSUB5:S=S-(S<18ANDSTRIG(0))*2-1:S=S*((X-15-E/3)\15<>0ORD<73)*(M=0ANDS>0):GOSUB5:T=T+S-1:X=X+5*(M+(U=7)-(U=3))-S*B\4:LOCATE1,1:SOUND9,V:SOUND1,83:SOUND0,255-S*V:F=B:N=N+9-S:GOSUB5:IFC0:D=D*D/96:GOSUB5:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D/225,-Y*(98+D)-31),6,16-D/24:NEXT:BEEP:A=TIME\60:A$=SPACE$(V):FORJ=0TO999:LOCATE6,4
8 PRINTMID$(A$+"Game Over   Time ="+STR$(A)+"s"+A$,J\6MOD42+1,16):NEXT:SCREEN0' IOMBCC 2005 by dvik and NYYRIKKI

Por snout

Ascended (15187)

Imagen del snout

04-04-2005, 12:34

w00t! Smile

Por Arjan

Paladin (782)

Imagen del Arjan

04-04-2005, 19:08

I just did some optimizations to the Bomberman Battle game, now everything is squeezed into 4 BASIC lines. The bug mentioned by Vampier has been fixed (I already did before, but sometimes I accidently press F12 in blueMSX Tongue), plus I also disabled the keyclick.

1 'Bomberman Battle IOMBCC
2 'todo: map, grahics
3 ' 32=space,33=explosion,34=brick,35=player,36=bomb,37=wall,36+32
4 DEFINTA-Z:ONERRORGOTO7:SCREEN1,,0:WIDTH18:KEYOFF:LOCATE,5:L$=STRING$(18,"%"):C
(0)=6410:C(1)=6482:S$=CHR$(37)+CHR$(34)+SPACE$(15)+CHR$(37):S$=S$+S$:PRINTL$;S$;
S$;S$;S$;L$:FORP=0TO3:H=0:M=H:S=M:P=X:D=H:A=STICK(P):GOSUB5:VPOKEC(P),35:NEXT
5 N=C(P)-(A=3)+(A=7)+((A=1)-(A=5))*32:IFVPEEK(N)<34ANDC(P)<>NTHENVPOKEC(P),32:C(
P)=N:GOSUB8ELSEGOSUB8
7 IFHTHENV=B(P)+S:S=S*2:R=VPEEK(V):IFR<>37ANDM=0THENVPOKEV,G:RESUMENEXTELSEM=1:I
FR=34THENVPOKEV,32:RESUMENEXTELSERESUMENEXTELSEW=E(P):D=1:IFWTHENW=W-1:E(P)=W:IF
W=11ORW=0THENG=33+(W=0):H=1:X:S=-1:X:X:M=0:S=1:X:X:M=0:S=-32:X:X:M=0:S=32:X:X
8 IFDTHENX=1-P:IFVPEEK(C(P))=33THENY(X)=Y(X)+1:LOCATEX*10,2:PRINTY(X):RETURNELSE
RETURNELSEIFSTRIG(P)AND(T(P)+E(P))=0THENT(P)=25:B(P)=C(P):RETURNELSEIFT(P)>0THEN
VPOKEB(P),36+32*(T(P)AND1):T(P)=T(P)-1:E(P)=-12*(T(P)=0):RETURNELSERETURN

There's still enough room to implement a nice map (or maybe multiple maps) and some graphics.

Por NYYRIKKI

Enlighted (6033)

Imagen del NYYRIKKI

04-04-2005, 20:02

This is BASIC, man. Of course it's dead slow! Smile

If you don't have all the time in the world, here is raped version, that works on X-BASIC as well...

0  ' MANDEL.BAS -- by AuroraMSX -- MSX2 and up -- for MSX.org's IOMBCC 2005
1 DEFINTA-G:DEFSTRH:DEFSNGI-Z:DIM A(8),AX(8),BX(8),AY(8),BY(8):COLOR15,0,0:SCREEN7:FORA=1TO15:READB,C,D:COLOR=(A,B,C,D):NEXTA:AW=512:AH=212:KX=-1.5:KY=-.8:LX=1.25:LY=.8:FORF2=0TO1STEP0:AX(0)=0:AY(0)=0:BX(0)=AW:BY(0)=AH:F=0:G=0:CLS:GOSUB4'A
2 A=AW/4:B=AH/4:FORF=0TO1STEP0:LINE(A,B)-(A+AW/2-1,B+AH/2-1),15,B,XOR:G=STRIG(0):IFG<0THENLX=LX-KX:LY=LY-KY:KX=KX+(A*LX)/AW:KY=KY+(B*LY)/AH:LX=KX+LX/2:LY=KY+LY/2:NEXTF2:DATA7,7,7,7,7,6,7,7,5,7,7,4,7,7,3,7,7,2,7,7,1,7,7,0,7,6,0,7,5,0,7,4:'u
3 G=STICK(0):LINE(A,B)-(A+AW/2-1,B+AH/2-1),15,B,XOR:IFG=0THENNEXTFELSEA=A-(G=7)*(A>0)*(AW/4)+(G=3)*(A<AW/2)*(AW/4):B=B-(G=1)*(B>0)*(AH/4)+(G=5)*(B

Por dvik

Prophet (2200)

Imagen del dvik

05-04-2005, 08:46

Ok, Now I have something that is working pretty well. I was able to optimize
the Rally game a bit more and make it run smother and I made it a bit harder
to play. I also added a nice ending.

I think this one could be the final version unless NYYRIKKI or someone else
finds something more cool to add or there are some bugs I haven't seen yet.

1 DEFINTA-Z:V=014:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):H=J\16:FORW=0TO2:VPOKE8208+W,P(H+W):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO/2)/(2-(IAND4)\4):NEXT:TIME=--0:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORO=1TO12:FORH=0TO31:VPOKE6496+H+O*32,(O<9ORH0:D=D*D/96:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D/225,-Y*(98+D)-31),6,16-D/24:I:U=STICK(0):PRINTUSING"SPEED:####kmh     RANK:###";S*10;(N-65)/128-82:NEXT:A$=SPACE$(V):A=TIME\60:PUTSPRITE1,,0:FORN=0TO99
8 S=16:D=88-3*N:Y=D>0:U=Y*(N\6-V):SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((24-D*D/96)*B+F*10)+(X-36)*D/126,-Y*(98+D)-31),1,16+Y*D/24:LOCATE6,4:PRINTMID$(A$+"Game Over   Time ="+STR$(TIME\60)+"s"+A$,N\2MOD42+1,16):IOMBCC 2005:NEXT:SCREENY

Por NYYRIKKI

Enlighted (6033)

Imagen del NYYRIKKI

05-04-2005, 18:13

That end demo was looking so great, that I even extended the lenght a bit! The on error goto idea was also brilliant! How ever there was a tiny bug in the time thing:

1 DEFINTA-Z:V=14:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):H=J\16:FORW=0TO2:VPOKE8208+W,P(H+W):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO/2)/(2-(IAND4)\4):NEXT:TIME=--0:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORO=1TO12:FORH=0TO31:VPOKE6496+H+O*32,(O<9ORH0:D=D*D/96:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D/225,-Y*(98+D)-31),6,16-D/24:I:U=STICK(0):PRINTUSING"SPEED:###kmh    RANK:###";S*10;(N-65)/128-82:NEXT:A$=SPACE$(V):A=TIME\60:PUTSPRITE1,,0:FORN=0TO244
8 S=16:D=88-3*N:Y=D>0:U=Y*(N\6-V):SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((24-D*D/96)*B+F*10)+(X-36)*D/126,-Y*(98+D)-31),1,16+Y*D/24:LOCATE6,4:PRINTMID$(A$+"Game Over   Time ="+STR$(A)+"s"+A$,N\2MOD42+1,15):IOMBCC 2005:NEXT:SCREENY

As Manuel already pointed out the time is still going wrong even after the fix in 50Hz machines. To fix that, we should make a=time\(60-(peek(43)\128)*10) to fit in there... I'll try to experiment with the sprite data, if I'll get enough time from somewhere, but I think, that it is starting to get quite a ready. Smile

Por snout

Ascended (15187)

Imagen del snout

05-04-2005, 18:23

Holy crap, this is crazy. turboR owners: just look at that blazing speed on R800 ^_^

BASIC slow? PAH! Smile

Por dvik

Prophet (2200)

Imagen del dvik

05-04-2005, 20:39

I did some speed improvments to speed it up a little. It may need some fine tuning though (I don't really think it was needed on TR machines though Wink ).

I'll also try to find space to get the 50/60Hz switch in.

1 DEFINTA-Z:V=14:S$(0)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):H=J\16:FORW=0TO2:VPOKE8208+W,P(H+W):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:TIME=--0:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORO=1TO12:FORH=0TO31:VPOKE6496+H+O*32,(O<9ORH0:D=D*D\96:PUTSPRITE1,(115-(D<34)*((24-D)*B+F*10)+(E-64)*D\225,-Y*(98+D)-31),6,15-D\24:I:U=STICK(0):PRINTUSING"SPEED:###kmh    RANK:###";S*10;(N-65)\128-82:NEXT:A$=SPACE$(V):A=TIME\60:PUTSPRITE1,,0:FORN=0TO244
8 S=16:D=88-3*N:Y=D>0:U=Y*(N\6-V):SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((24-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(A$+"Game Over   Time ="+STR$(A)+"s"+A$,N\2MOD42+1,15):IOMBCC 2005:NEXT:SCREENY

Por dvik

Prophet (2200)

Imagen del dvik

06-04-2005, 05:12

I found some more characters and added the time on 50Hz machines.
I also made the time with one decimal to make it a bit more interesting.
Then I added an extra line in the horizon to make it look more distant.

1 DEFINTA-Y:V=14:S$(O1)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):K=J\16:FORW=0TO2:VPOKE8208+W,P(W+K):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:SOUND3,V:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORR=1TO12:FORH=0TO31:VPOKE6496+H+R*32,(R<9ORH0:D=D*D\96:U=STICK(0):.:PRINTUSING"SPEED:###kmh    RANK:###";S*10;N\128-82:NEXT:Z$=SPACE$(V):Z=(TIME\(6-PEEK(43)\128))/10
8 FORN=0TO244:D=88-3*N:S=16:U=Y*(N\6-V):Y=D>0:SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((21-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(Z$+"Race Over   Time ="+STR$(Z)+"s"+Z$,N\2MOD42+1,15):NEXTI:NEXT:SCREENY

Por dvik

Prophet (2200)

Imagen del dvik

06-04-2005, 06:21

I didn't check but . expands to 0! which made line 7 too long. So I fixed that and
also a sound bug at startup. Here is an update:

1 DEFINTA-Y:V=14:S$(O1)="A18A0CA0FB07C03C01H00A80AE0AF0AFCIFFH00A80AE0AF0AF8AFCBFEAFFP00F3FF7FTFFAF0AF8AFCAFELFFE00A80AC0AE0BF0AF8AFCBFEBFFP00B01B03B07B0FB1FB3FB7FBFFB80BC0BE0BF0BF8BFCBFEBFFP00B01B03B07B0FB1FB3FB7FbFFB80BC0BE0BF0BF8BFCBFE"
2 COLOR15,5,1:X=V:S$(1)="BFFX00A01A07A0FA1FA3FB7FAFFC00A01A07A0FA3FIFFA18A30AF0BE0CC0C80J00A01A03A07B0FA1FA3FB7FBFFA0FA1FA3FA7F\FFFFCFFEDFFG00A1FA20A40A7FBCFA7FB70G00AC0A20A10AF0B98AF0B70J00A0FA10A1FA2FA1FA19K00B80A40B80L00A06A0FA09_00A03"
3 J=S-J*(J<96-S):K=J\16:FORW=0TO2:VPOKE8208+W,P(W+K):NEXT:IFTTHENRESUMENEXTELSEKEYOFF:SCREEN1,3,0:LOCATE8,1:PRINT"PLEASE WAIT!":FORI=256TO1023:VPOKE7952+I,85:O=VPEEK(I):VPOKEI,(OORO\2)\(2-(IAND4)\4):NEXT:SOUND3,V:FORW=0TO1:FORO=1TO212STEP3
4 Q=ASC(MID$(S$(W),O,1))-65:Y=VAL("&H"+MID$(S$(W),O+1,2)):N=14336:FORA=ATOA+Q:VPOKEA+N,Y:NEXT:NEXT:PUTSPRITE8+W,(80+64*W,159),V,6+W:NEXT:ONERRORGOTO3:FORR=1TO12:FORH=0TO31:VPOKE6496+H+R*32,(R<9ORH0:D=D*D\96:U=STICK(0):*:PRINTUSING"SPEED:###kmh    RANK:###";S*10;N\128-82:NEXT:Z$=SPACE$(V):Z=(TIME\(6-PEEK(43)\128))/10
8 FORN=0TO244:D=88-3*N:S=16:U=Y*(N\6-V):Y=D>0:SOUND8,U:SOUND9,U:PUTSPRITE0,(116-(D<58)*((21-D*D\96)*B+F*10)+(X-36)*D\126,-Y*(98+D)-31),1,15+Y*D\24:LOCATE6,4:PRINTMID$(Z$+"Race Over   Time ="+STR$(Z)+"s"+Z$,N\2MOD42+1,15):NEXTI:NEXT:SCREENY
Página 14/29
7 | 8 | 9 | 10 | 11 | 12 | 13 | | 15 | 16 | 17 | 18 | 19