10 ' *******************************
20 ' *                             *
30 ' *      GENIUS 2004 - v2       *
40 ' *                             *
50 ' * Feito por: Marcelo Silveira *
60 ' *                             *
70 ' *  http://marmsx.msxall.com   *
80 ' *                             *
90 ' *******************************
100 OPEN"grp:"AS#1
105 DEFUSR=&H156
110 MX=PEEK(&H2D)
120 COLOR15,0,0:KEYOFF:SCREEN0,,0:WIDTH40
130 IFMX=0THENPRINT"Jogo desenvolvido para MSX 2 ou superior.":END
200 '
201 ' Carrega telas
202 '
210 SCREEN5
220 PSET(10,10),0:PRINT#1,"Carregando GENTECS.S05 ..."
230 SETPAGE0,2:BLOAD"GENTECS.SO5",S
240 SETPAGE0,0:PSET(10,20),0:PRINT#1,"Carregando GAME.S05 ..."
250 SETPAGE0,1:BLOAD"GAME.SO5",S
400 '
410 ' Dados iniciais
420 '
460 J=0:D=0:U=0:M=0
470 GR$=SPACE$(31):MR$=GR$:UR$=GR$ ' Seq, max, ultima
480 COPY(93,98)-(117,106),1TO(50,0),3
490 COPY(127,99)-(160,107),1TO(50,10),3
500 COPY(123,125)-(144,133),1TO(50,20),3
510 ' **** MENU GENIUS ****
520 R=0:GOSUB 3000
530 A$=INKEY$
540 IFA$="j"ORA$="J"THEN GOSUB 620
550 IFA$="d"ORA$="D"THEN GOSUB 660
560 IFA$="m"ORA$="M"THEN GOSUB 700
570 IFA$="l"ORA$="L"THEN GOSUB 740
580 IFA$="s"ORA$="S"THEN GOSUB 2500:GOSUB 800
590 IFA$="u"ORA$="U"THEN GOSUB 780
594 IFA$="i"ORA$="I"THEN GOSUB 4000
595 IFA$="r"ORA$="R"THEN GOSUB 5000
600 GOTO530
610 ' **** JOGO ****
620 SETPAGE 0,1:LINE(93,98)-(123,106),11,BF
630 J=(J+1)MOD3:COPY(50,0)-(74,8),3TO(93+J*3,98),1:COPY(93,98)-(123,106),1TO(93,98),0
640 RETURN
650 ' **** DIFICULDADE ****
660 SETPAGE 0,1:LINE(127,99)-(169,107),11,BF
670 D=(D+1)MOD4:COPY(50,10)-(83,18),3TO(127+D*3,99),1:COPY(127,99)-(169,107),1TO(127,99),0
680 RETURN
700 ' **** MAIOR SEQUENCIA ****
710 GR$=MR$:R=M:CT=100:GOSUB2030
720 RETURN
730 ' **** DESLIGA ****
740 SETPAGE 0,1:LINE(119,125)-(144,133),11,BF
750 COPY(50,20)-(71,28),3TO(119,125),1:COPY(119,125)-(144,133),1TO(119,125),0
760 FORTT=1TO200:NEXTTT:SCREEN0:PRINT"MarMSX 2021":NEW
770 ' **** ULTIMA SEQUENCIA ****
780 GR$=UR$:R=U:CT=100:GOSUB2030
790 RETURN
800 ' **************
810 ' **** JOGO ****
820 ' **************
821 IFD=0THENQR=8
822 IFD=1THENQR=14
823 IFD=2THENQR=20
824 IFD=3THENQR=31
825 GR$=SPACE$(31)
830 IFJ=0THEN860
840 IFJ=1THEN1010
850 IFJ=2THEN1140
860 ' **** JOGO 1 ****
870 FORX=1TOQR
880 MID$(GR$,X,1)=RIGHT$(STR$(INT(RND(-TIME)*4)+1),1)
885 FORTT=1TOINT(RND(-TIME)*20):NEXTTT
890 NEXTX
900 R=0
910 FORLE=1TOQR
920 R=R+1
930 IFR<5THENCT=200
935 IFR>4ANDR<9THENCT=150
936 IFR>8ANDR<13THENCT=100
937 IFR>13THENCT=50
940 GOSUB2030
950 FORLI=1TOR
960 GOSUB1800
965 U=R:UR$=GR$
970 IFJR<>VAL(MID$(GR$,LI,1))ORT=1THENGOSUB1900:GOTO520
980 NEXTLI:POKE0,USR(0)
981 FORTT=1TO200
982 A$=INKEY$
983 IFA$=CHR$(30)ORA$=CHR$(31)ORA$=CHR$(28)ORA$=CHR$(29)THENGOSUB1825:T=1:GOTO970
984 NEXT TT:IF R>=M THEN M=R:MR$=GR$
986 NEXT LE
990 FORX=1TO6:CT=0:GOSUB1981:NEXTX
1000 GOTO 520
1010 ' **** JOGO 2 ****
1020 GR$=RIGHT$(STR$(INT(RND(-TIME)*4)+1),1)
1030 GOSUB2030
1040 R=0
1045 FOR LE=1 TO QR
1050 R=R+1
1075 FORLI=1TOR
1077 PRINT USR(0)
1080 GOSUB1800
1085 U=R:UR$=GR$
1090 IF JR<>VAL(MID$(GR$,LI,1)) OR T=1 THENGOSUB1900:GOTO520
1095 NEXT LI : IFR>=MTHENM=R:MR$=GR$
1100 PRINT USR(0):GOSUB 1800:IF T=1 THEN GOSUB 1900:GOTO520 ELSE GR$=GR$+RIGHT$(STR$(JR),1)
1110 NEXT LE
1120 FORX=1TO6:CT=0:GOSUB1981:NEXTX
1130 GOTO 520
1140 ' **** JOGO 3 ****
1150 FORX=1TOQR
1160 MID$(GR$,X,1)=RIGHT$(STR$(INT(RND(-TIME)*4)+1),1)
1170 FORTT=1TOINT(RND(-TIME)*20):NEXTTT
1180 NEXTX
1190 R=0
1200 FORLE=1TOQR
1210 R=R+1
1220 IFR<5THENCT=200
1230 IFR>4ANDR<9THENCT=150
1240 IFR>8ANDR<13THENCT=100
1250 IFR>13THENCT=50
1260 GOSUB2030
1270 FORLI=1TOR
1275 CT=0
1280 JR$=MID$(GR$,LI,1)
1290 U=R:UR$=GR$
1300 POKE0,USR(0)
1301 IFJR$<>"3"THEN1310
1302 TIME=0
1303 IFINKEY$=CHR$(29)THENGOSUB2310:GOTO1351
1304 IF(TIME/60)<5THEN1303
1305 GOSUB1900:GOTO520
1310 FORTT=1TO100
1320 IFINKEY$=CHR$(29)THENGOSUB1900:GOTO520
1330 NEXTTT
1340 CT=100:IFJR$="1"THENGOSUB2130
1341 IFJR$="2"THENGOSUB2220
1342 IFJR$="4"THENGOSUB2390
1351 FORTT=1TO100
1352 IFINKEY$=CHR$(29)THENGOSUB1900:GOTO520
1353 NEXT TT,LI
1354 IFR>=MTHENM=R:MR$=GR$
1355 NEXT LE
1360 FORX=1TO6:CT=0:GOSUB1981:NEXTX
1380 GOTO 520
1800 ' **** JOGADOR ****
1810 CT=0:T=0:TIME=0
1820 A$=INKEY$
1825 IFA$=CHR$(30)THENGOSUB2130:JR=1:RETURN
1830 IFA$=CHR$(28)THENGOSUB2220:JR=2:RETURN
1835 IFA$=CHR$(29)THENGOSUB2310:JR=3:RETURN
1840 IFA$=CHR$(31)THENGOSUB2390:JR=4:RETURN
1850 IF(TIME/60)>=5THENT=1:RETURN
1860 GOTO1820
1900 '
1910 ' **** RAZZ ****
1920 '
1930 PLAY"v15o3l1D"
1940 COLOR=(3,7,7,3)
1950 FORTT=1TO600:NEXTTT
1960 COLOR=(3,6,6,1)
1980 RETURN
1981 '
1982 ' **** VITORIA ****
1983 '
1984 PLAY"v15o4l64C"
1985 COLOR=(14,4,7,4)
1987 COLOR=(14,1,4,1)
1989 RETURN
1990 '
2000 ' ****************
2010 ' **** LENTES ****
2020 ' ****************
2030 FORX=1TOR
2040 Y=VAL(MID$(GR$,X,1))
2050 IFY=1THENGOSUB2130
2060 IFY=2THENGOSUB2220
2070 IFY=3THENGOSUB2310
2080 IFY=4THENGOSUB2390
2090 NEXT
2095 RETURN
2100 '
2110 ' **** VERDE ****
2120 '
2130 PLAY"v15o4l4C"
2140 COLOR=(14,4,7,4)
2150 FORTT=1TO100:NEXTTT
2160 COLOR=(14,1,4,1)
2170 FORTT=1TOCT:NEXTTT
2180 RETURN
2190 '
2200 ' **** VERMELHO ****
2210 '
2220 PLAY"v15o4l4A"
2230 COLOR=(2,7,6,6)
2240 FORTT=1TO100:NEXTTT
2250 COLOR=(2,7,3,3)
2260 FORTT=1TOCT:NEXTTT
2270 RETURN
2280 '
2290 ' **** AMARELO ****
2300 '
2310 PLAY"v15o3l4D"
2320 COLOR=(3,7,7,3)
2330 FORTT=1TO100:NEXTTT
2340 COLOR=(3,6,6,1)
2350 FORTT=1TOCT:NEXTTT
2360 RETURN
2365 '
2370 ' **** AZUL ****
2380 '
2390 PLAY"v15o4l4E"
2400 COLOR=(13,5,7,7)
2410 FORTT=1TO100:NEXTTT
2420 COLOR=(13,2,6,7)
2430 FORTT=1TOCT:NEXTTT
2440 RETURN
2500 '
2501 ' Prepara a tela do jogo
2502 '
2510 COPY(0,0)-(255,211),1 TO (0,0),0
2520 RETURN
3000 '
3001 ' Copia tela principal
3002 '
3040 COLOR=(3,6,6,1)
3050 COLOR=(2,7,3,3)
3060 COLOR=(14,1,4,1)
3070 COLOR=(13,2,6,7)
3090 COPY(0,0)-(255,211),1 TO (0,0),0
3100 FOR A=0 TO 7 STEP.2
3110 COLOR=(0,A,A,A)
3120 NEXTA
3130 FORA=7TO0STEP-.2
3140 COLOR=(0,A,A,A)
3150 NEXTA
3160 SETPAGE 0,0
3170 LINE(0,188)-(43,211),1,BF:LINE(0,188)-(43,211),15,B
3180 PRESET(3,190):PRINT#1,"Ajuda"
3190 PRESET(3,200):PRINT#1,"I - R"
3200 LINE(225,181)-(254,210),1,BF
3210 LINE(231,183)-(238,190),7,BF:LINE(240,183)-(247,190),7,BF
3220 LINE(227,192)-(234,199),10,BF:LINE(236,192)-(243,199),6,BF:LINE(245,192)-(252,199),10,BF
3230 LINE(236,201)-(243,208),6,BF:COLOR1
3240 PRESET(232,184),7,TPSET:PRINT#1,"J":PRESET(242,184),7,TPSET:PRINT#1,"D"
3250 PRESET(228,193),10,TPSET:PRINT#1,"U":PRESET(237,193),6,TPSET:PRINT#1,"S"
3260 PRESET(246,193),10,TPSET:PRINT#1,"M":PRESET(237,202),7,TPSET:PRINT#1,"L"
3270 COLOR15:RETURN
4000 '
4001 ' Ajuda com teclas
4002 '
4010 COLOR=NEW
4020 COPY(0,0)-(255,211),2 TO (0,0),0
4030 A$=INPUT$(1)
4040 GOSUB 3000
4050 RETURN
5000 '
5001 ' Instrucoes
5002 '
5010 COLOR 1,15,15:SCREEN 7
5020 COLOR5:PSET(10,10),0:PRINT#1,"Instrucoes do jogo:"
5030 LINE(10,20)-(162,20),6
5040 COLOR1:PSET(10,30),0,TPSET:PRINT#1,"O objetivo deste jogo e' repetir a sequencia luminosa que o"
5050 PSET(10,40),0,TPSET:PRINT#1,"Genius gera automaticamente."
5060 PSET(10,50),0,TPSET:PRINT#1,"Exitem 3 niveis de dificulade e 4 jogos diferentes."
5070 PSET(10,60),0,TPSET:PRINT#1,""
5090 PSET(10,70),0,TPSET:PRINT#1,"Jogos:"
5100 PSET(10,80),0,TPSET:PRINT#1,"1- Repita a sequencia"
5110 PSET(10,90),0,TPSET:PRINT#1,"2- Crie a sequencia"
5120 PSET(10,100),0,TPSET:PRINT#1,"3- Escolha sua cor"
5130 PSET(10,120),0,TPSET:PRINT#1,"Dificuldades:"
5140 PSET(10,130),0,TPSET:PRINT#1,"1- 08 Repeticoes"
5150 PSET(10,140),0,TPSET:PRINT#1,"2- 14 Repeticoes"
5160 PSET(10,150),0,TPSET:PRINT#1,"3- 20 Repeticoes"
5170 PSET(10,160),0,TPSET:PRINT#1,"4- 31 Repeticoes"
5200 A$=INPUT$(1):CLS
5210 PSET(10,10),0,TPSET:PRINT#1,"Modo de Jogo 1"
5220 LINE(10,20)-(122,20),6
5230 PSET(10,30),0,TPSET:PRINT#1,"Repita a sequencia do Genius."
5240 PSET(10,40),0,TPSET:PRINT#1,"Nao fique mais de 5 segundos sem responder ou perdera o jogo."
5250 PSET(10,50),0,TPSET:PRINT#1,"Apos o 5o., 9o. e 13o. sinal, o Genius ira ficar mais rapido."
5260 PSET(10,60),0,TPSET:PRINT#1,""
5270 PSET(10,70),0,TPSET:PRINT#1,"Modo de Jogo 2"
5280 LINE(10,80)-(116,80),6
5290 PSET(10,90),0,TPSET:PRINT#1,"Crie sua propria sequencia."
5300 PSET(10,100),0,TPSET:PRINT#1,"O Genius da' o primeiro sinal. Voce repete e adiciona outro."
5310 PSET(10,110),0,TPSET:PRINT#1,"Repita o 1o. e o 2o., adicionando mais um sinal."
5320 PSET(10,120),0,TPSET:PRINT#1,"Continue ate alcancar o numero de repeticoes da dificuldade."
5330 PSET(10,130),0,TPSET:PRINT#1,""
5340 PSET(10,140),0,TPSET:PRINT#1,"Modo de Jogo 3"
5350 LINE(10,150)-(116,150),6
5360 PSET(10,160),0,TPSET:PRINT#1,"Aqui voce sera uma unica cor e o jogo e' o mesmo do Modo 1."
5370 PSET(10,170),0,TPSET:PRINT#1,"Voce sera a cor AMARELA."
5380 A$=INPUT$(1):COLOR15,0,0:SCREEN 5
5390 GOSUB 3000:RETURN
