Ice Cream Shop
Jogo estilo Tetris. Ao invés de empilhar blocos geométricos, neste jogo você empilha os sorvetes nas casquinhas, tendo o cuidado de não atingir a altura indicada pela linha pontilhada.
Teste o programa no WebMSX – The Online MSX Emulator
Nota interessante: o jogo tem apenas 20 linhas de código, mas possui uma qualidade gráfica e jogabilidade incrível.
Fonte: Livro Suupa Puro Kore.
Contribuição: Alex Mitsio Sato
Código fonte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
10 SCREEN1,2,RND(-TIME):WIDTH30:KEYOFF:DEFINTA,B,G,K,O:COLOR15,1,1:PLAY"V15 20 FORI=0TO2:READA$,A,B:VPOKE8192+A\8,B:FORJ=0TOLEN(A$)/2:VPOKEA*8+J,VAL("&H"+MID$(A$,J*2+1,2)):NEXTJ,I:READA$:FORI=0TO4:READA:VPOKE8214+I,A:FORJ=0TO15:VPOKE1408+J+I*64,VAL("&H"+MID$(A$,J*2+1,2)):NEXTJ,I:E$=CHR$(27)+"Y":VPOKE14336,248 30 FORI=136TO223:A=VPEEK(I):A=AORA\2:VPOKEI,A\2ORA:NEXT:FORI=384TO711:A=VPEEK(I):VPOKEI,AORA\2:NEXT:VPOKE14352,62 40 FORI=0TO22:PRINTSTRING$(30,224);:NEXT:FORI=1TO9:READA$:LOCATE14-3*(6<I),I:PRINTA$:NEXT:FORI=0TO3:PUTSPRITEI,(I*20+34,117),,0:NEXT:E(5,5)=11111:C$=CHR$(34) 50 FORI=0TO5:I$(I)=MID$("°±¸¹ÀÁÈÉÐѨ©",I*2+1,2):F(I)=10^I:E(3,I)=F(I)*3:C(I)=0:P(I)=0:FORJ=0TO5:D(I,J)=0:NEXTJ,I:FORI=4TO22:LOCATE3,I:PRINTSPC(10):NEXT:L=1:S=0 60 PRINTE$" %XWWWWY"E$"!%VNEXTV"E$C$"%V V"E$"#$ ZWWWW[ "E$"+0 HIGH-SCORE "E$"/0 SCORE "E$"30 LEVEL-"E$"50 O.M."SPC(7):GOSUB180:G=RND(1)*6:K=RND(1)*6 70 A=RND(1)*6:B=RND(1)*6:SWAPA,G:SWAPB,K:PRINTE$C$"&"I$(G)I$(K):X=7:Y=4:PRINTE$"4#ØÙØÙØÙØÙØÙ"E$"5#ÚÛÚÛÚÛÚÛÚÛ"E$"-0"USING" ######## ";H:PRINTE$"10"USING" ######## ";S:PRINTE$"38"USING"### ";L 80 LOCATEX,Y:PRINTI$(A)I$(B) 90 FORI=0TO100-L:IFSTICK(0)<>5THENNEXT 100 I=STICK(0):IFSTRIG(0)THENSWAPA,B 110 S=S-(I=5):IFY<14THENLOCATE3,Y:PRINTSPC(10):Y=Y+1:X=X+((I=7ANDX>4)-(I=3ANDX<8))*2:GOTO80 120 N(0)=A:N(1)=B:M(0)=(X-3)/2:M(1)=M(0)+1:FORI=0TO1:C(M(I))=C(M(I))+1:P(M(I))=P(M(I))+F(N(I)):D(M(I),C(M(I)))=F(N(I)):NEXT:FORI=0TO1:FORJ=14TO20-C(M(I)):LOCATEX+2*I,J-1:PRINT" ":LOCATEX+2*I,J:PRINTI$(N(I)):NEXT:PLAY"L64O5ECFD":NEXT 130 FORI=0TO1:IFN(I)=5THENC(M(I))=C(M(I))+(C(M(I))>1)-1:FORJ=0TO1:P(M(I))=P(M(I))-D(M(I),C(M(I))+1+J):D(M(I),C(M(I))+1+J)=0:LOCATEX+I*2,19-C(M(I))-J::PRINT" ":NEXT 140 NEXT:IFC(M(0))=6ORC(M(1))=6THEN170 150 R=0:T=0:FORI=0TO1:FORJ=0TO6:IFN(I)<5ANDE(C(M(I)),J)=P(M(I))THENR=R+C(M(I))-4*(J=6):P(M(I))=0:T=(J=6):FORO=15TO21:D(M(I),O-15)=0:LOCATEX+2*I,O:PRINT" ":U=O+50:PLAY"L64N=U;":NEXT:L=L-(L<250):C(M(I))=0:J=6 160 NEXTJ,I:S=S+R*R*(L-1)*10:H=H-(S-H)*(S>H):IFTTHENQ=0:GOSUB180:GOTO70ELSE70 170 PRINTE$"(%GAME"E$"*'OVER":PLAY"O4L16BGFGFEDFEDC":FORI=0TO1:I=-STRIG(0):NEXT:GOTO50 180 E(4,6)=0:FORI=0TO3:O=RND(1)*5:IFO=QTHENI=I-1:NEXTELSEQ=O:E(4,6)=E(4,6)+F(O):U(I)=O:NEXT:FORI=0TO4:IFP(C(I))=E(4,6)THEN180ELSENEXT:FORI=0TO3:LOCATE22+I,21:PRINTI$(U(I)):NEXT:RETURN 190 DATAFFFFFF003F3F1F1FFEFEFE00FCFCF8F80F0F070703030101F0F0E0E0C0C08080,216,176,30C0030C30C0030C,224,5,01010101020505050000000080404040,168,224,03070F1F3F3F7F7FC0E0F0F8FCFCFEFE,240,128,112,160,32 200 DATA" R XWYXWY"," V V TS "," Q ZW[ZW[",XWYXWYXWYXWYXRY,V TR[TS TWSVVV,ZW[QZ[ZW[Q QQ Q,XWYR RXWYXWY,ZWYTWSV VTW[,"ZW[Q QZW[Q " |