10 DIM V(12),PL$(2511),ALL$(2510),PALA(2510,9),PT(2510),NAME$(12),HP(12),POW(12),MGC(12),SKL(12),SPD(12),LUK(12),DFN(12),BDY(12),MOV(12),P(9)
20 LET N=0
30 INPUT PROMPT "書は12枚すべてありますか? (Y/N)":Q$
40 IF Q$="Y" THEN
50 LET N=12
60 LET CPST$="111111111111"
64 GOTO 370
70 END IF
80 PRINT "ヘズル、バルド、セティ、オード、ネール、ファラ、ヘイム、ダイン、ウル、ブラギ、ノヴァ、トードの順に ある/なし を入力してください。"
90 PRINT "ある=1/ない=0 入力例:111101111100"
100 PRINT "ヘバセオネファヘダウブノト"
110 INPUT CPST$
120 IF CPST$="R" THEN GOTO 20
130 IF LEN(CPST$)<>12 THEN
140 PRINT "入力が12枚分ではありません。"
150 INPUT PROMPT "PLEASE HIT ENTER KEY":Q$
160 IF Q$<>"" THEN GOTO 150
170 GOTO 90
180 END IF
190 RESTORE 230
200 FOR I=1 TO 12
210 READ NAME$(I)
220 NEXT I
230 DATA ヘズル,バルド,セティ,オード,ネール,ファラ,ヘイム,ダイン,ウル,ブラギ,ノヴァ,トード
240 FOR U=1 TO 12
250 IF MID$(CPST$,U,1)="1" THEN
260 LET EXST$=EXST$&" "&NAME$(U)
270 LET N=N+1
280 END IF
290 NEXT U
300 PRINT "手元の書は "&EXST$&" で全部です。"
310 INPUT PROMPT "PLEASE HIT ENTER KEY":Q$
320 IF Q$<>"" THEN GOTO 310
330 IF N<=6 THEN
340 PRINT "とりあえず全部持たせてみては?"
350 STOP
360 END IF
370 RESTORE 410
380 FOR S=1 TO N-6
390 READ FNS,LST
400 NEXT S
410 DATA 127,127,247,255,466,511,848,1023,1486,2047,2510,4095
420 LET K=1
430 FOR I=1 TO LST
440 LET X=I+1
450 LET C=0
460 FOR J=1 TO N
470 IF X-(LST+1)/(2^J)>0 THEN
480 LET PL$(K)=PL$(K)&"1"
490 LET X=X-(LST+1)/(2^J)
500 LET C=C+1
510 GOTO 540
520 END IF
530 LET PL$(K)=PL$(K)&"0"
540 NEXT J
550 IF C<=6 THEN LET K=K+1
560 LET PL$(K)=""
570 NEXT I
580 REM
590 LET CO=1
600 IF MID$(CPST$,1,1)="1" THEN
604 RESTORE 2000
610 GOSUB 1221
620 END IF
630 IF MID$(CPST$,2,1)="1" THEN
640 RESTORE 2010
650 GOSUB 1221
660 END IF
670 IF MID$(CPST$,3,1)="1" THEN
680 RESTORE 2020
690 GOSUB 1221
700 END IF
710 IF MID$(CPST$,4,1)="1" THEN
720 RESTORE 2030
730 GOSUB 1221
740 END IF
750 IF MID$(CPST$,5,1)="1" THEN
760 RESTORE 2040
770 GOSUB 1221
780 END IF
790 IF MID$(CPST$,6,1)="1" THEN
800 RESTORE 2050
810 GOSUB 1221
820 END IF
830 IF MID$(CPST$,7,1)="1" THEN
840 RESTORE 2060
850 GOSUB 1221
860 END IF
870 IF CT>=N THEN GOTO 10000
880 IF MID$(CPST$,8,1)="1" THEN
890 RESTORE 2070
900 GOSUB 1221
910 END IF
920 IF CT>=N THEN GOTO 10000
930 IF MID$(CPST$,9,1)="1" THEN
940 RESTORE 2080
950 GOSUB 1221
960 END IF
970 IF CT>=N THEN GOTO 10000
980 IF MID$(CPST$,10,1)="1" THEN
990 RESTORE 2090
1000 GOSUB 1221
1010 END IF
1020 IF CT>=N THEN GOTO 10000
1030 IF MID$(CPST$,11,1)="1" THEN
1040 RESTORE 2100
1050 GOSUB 1221
1060 END IF
1070 IF CT>=N THEN GOTO 10000
1080 IF MID$(CPST$,12,1)="1" THEN
1090 RESTORE 2110
1100 GOSUB 1221
1110 END IF
1120 GOTO 10000
1221 READ NAME$(CO),HP(CO),POW(CO),MGC(CO),SKL(CO),SPD(CO),LUK(CO),DFN(CO),BDY(CO),MOV(CO)
1230 LET CO=CO+1
1240 RETURN
2000 DATA べ,30,10,0,0,0,-10,0,0,0
2010 DATA バ,5,5,0,5,5,5,5,0,0
2020 DATA セ,-10,0,10,0,30,0,0,0,0
2030 DATA オ,0,0,0,30,0,0,0,0,0
2040 DATA ネ,10,10,0,-10,0,0,10,10,0
2050 DATA ファ,0,5,5,10,10,0,0,0,0
2060 DATA ヘ,0,0,30,0,0,10,-10,0,0
2070 DATA ダ,0,5,0,0,-10,0,30,0,5
2080 DATA ウ,0,0,0,10,10,10,0,0,0
2090 DATA ブ,0,-10,10,0,0,30,0,0,0
2100 DATA ノ,0,30,-10,0,10,-5,5,0,0
2110 DATA ト,5,5,5,10,0,5,0,0,0
10000 REM
10010 REM
10020 REM
10030 PRINT "HP・力・魔法・技・速さ・幸運・守備・体格・移動 のパラメーターの重要度をインプットしてください。"
10040 PRINT "順番:H力魔技速幸守体移"
10050 PRINT "入力例:110220110 2:重要視 1:普通 0:考慮外(もう充分 "
10060 PRINT "※体格・移動は 1:考慮 0:考慮外 でおながいしまつ。"
10070 INPUT V$
10080 IF V$="R" THEN GOTO 80
10090 IF LEN(V$)<>9 THEN
10100 PRINT "要素数9と合致していません。"
10110 GOTO 10040
10120 END IF
10130 IF (MID$(CPST$,5,1)="0" AND MID$(V$,8,1)="1") OR (MID$(CPST$,8,1)="0" AND MID$(V$,9,1)="1") THEN
10140 PRINT "ないそでは振れません。PLEASE HIT ENTER KEY"
10150 INPUT Q$
10160 IF Q$<>"" THEN GOTO 10140
10170 GOTO 10000
10180 END IF
10190 FOR I=1 TO 9
10200 LET P(I)=VAL(MID$(V$,I,1))
10210 NEXT I
10211 LET ND=0
10212 LET NN=0
10213 LET DD=0
10220 FOR I=1 TO FNS
10230 LET VALUE=0
10240 LET ALL$(I)=" "
10250 FOR J=1 TO N
10260 LET BOOK$=MID$(PL$(I),J,1)
10270 IF BOOK$="1" THEN
10280 LET VALUE=VALUE+HP(J)*P(1)+POW(J)*P(2)+MGC(J)*P(3)+SKL(J)*P(4)+SPD(J)*P(5)+LUK(J)*P(6)+DFN(J)*P(7)+BDY(J)*P(8)+MOV(J)*P(9)
10285 GOSUB 20000
10290 LET ALL$(I)=ALL$(I)&NAME$(J)
10300 END IF
10310 NEXT J
10320 LET PT(I)=VALUE
10330 IF RIGHT$(V$,2)="11" THEN
10340 IF POS(ALL$(I),"ネ")*POS(ALL$(I),"ダ")>0 THEN
10350 LET ND=ND+1
10351 LET ALL$(ND)=ALL$(I)
10352 LET PT(ND)=PT(I)
10353 FOR SS=1 TO 9
10354 LET PALA(ND,SS)=PALA(I,SS)
10355 NEXT SS
10360 GOTO 10700
10370 ELSE
10380 GOTO 10900
10390 END IF
10400 END IF
10410 IF RIGHT$(V$,2)="10" THEN
10420 IF POS(ALL$(I),"ネ")>0 THEN
10430 LET NN=NN+1
10440 LET ALL$(NN)=ALL$(I)
10441 LET PT(NN)=PT(I)
10443 FOR SS=1 TO 9
10444 LET PALA(NN,SS)=PALA(I,SS)
10445 NEXT SS
10446 GOTO 10700
10450 ELSE
10460 GOTO 10900
10470 END IF
10480 END IF
10490 IF RIGHT$(V$,2)="01" THEN
10500 IF POS(ALL$(I),"ダ")>0 THEN
10510 LET DD=DD+1
10511 LET ALL$(DD)=ALL$(I)
10512 LET PT(DD)=PT(I)
10513 FOR SS=1 TO 9
10514 LET PALA(DD,SS)=PALA(I,SS)
10515 NEXT SS
10520 GOTO 10700
10530 ELSE
10540 GOTO 10900
10550 END IF
10560 END IF
10604 LET F=3
10700 REM
10710 REM
10900 NEXT I
10910 IF RIGHT$(V$,2)="11" THEN LET FNS=ND
10920 IF RIGHT$(V$,2)="10" THEN LET FNS=NN
10930 IF RIGHT$(V$,2)="01" THEN LET FNS=DD
10999 PRINT
11000 REM IF PT(I)>=180 THEN PRINT PL$(I);" ";ALL$;PT(I);F;POS(ALL$,"ネ")
11010 LET C=0
11020 LET K=0
11030 FOR II=1 TO FNS-1
11040 IF PT(II)
11050 SWAP PT(II),PT(II+1)
11055 SWAP ALL$(II),ALL$(II+1)
11056 FOR SS=1 TO 9
11057 SWAP PALA(II,SS),PALA(II+1,SS)
11058 NEXT SS
11060 LET C=C+1
11070 END IF
11080 NEXT II
11090 IF C=0 THEN
11100 FOR II=1 TO 10
11110 PRINT II;": ";PT(II);"pt. 書:";ALL$(II)
11115 PRINT "HP:";PALA(II,1);"% 力:";PALA(II,2);"% 魔:";PALA(II,3);"% 技:";PALA(II,4);"% 速:";PALA(II,5);"% 幸:";PALA(II,6);"% 守:";PALA(II,7);"% 体:";PALA(II,8);"% 移:";PALA(II,9);"%"
11120 NEXT II
11130 REM
11140 STOP
11150 END IF
11160 LET C=0
11170 LET K=K+1
11180 GOTO 11030
15000 INPUT PROMPT "重要度インプットに戻りますか? (Returen= R/End = E)":Q$
15010 IF Q$="R" THEN GOTO 10000
15030 IF Q$="E" THEN STOP ELSE
15040 PRINT "最初に戻ります"
15050 GOTO 20
20000 LET PALA(I,1)=PALA(I,1)+HP(J)
20010 LET PALA(I,2)=PALA(I,2)+POW(J)
20020 LET PALA(I,3)=PALA(I,3)+MGC(J)
20030 LET PALA(I,4)=PALA(I,4)+SKL(J)
20040 LET PALA(I,5)=PALA(I,5)+SPD(J)
20050 LET PALA(I,6)=PALA(I,6)+LUK(J)
20060 LET PALA(I,7)=PALA(I,7)+DFN(J)
20070 LET PALA(I,8)=PALA(I,8)+BDY(J)
20080 LET PALA(I,9)=PALA(I,9)+MOV(J)
20090 RETURN
END
20 LET N=0
30 INPUT PROMPT "書は12枚すべてありますか? (Y/N)":Q$
40 IF Q$="Y" THEN
50 LET N=12
60 LET CPST$="111111111111"
64 GOTO 370
70 END IF
80 PRINT "ヘズル、バルド、セティ、オード、ネール、ファラ、ヘイム、ダイン、ウル、ブラギ、ノヴァ、トードの順に ある/なし を入力してください。"
90 PRINT "ある=1/ない=0 入力例:111101111100"
100 PRINT "ヘバセオネファヘダウブノト"
110 INPUT CPST$
120 IF CPST$="R" THEN GOTO 20
130 IF LEN(CPST$)<>12 THEN
140 PRINT "入力が12枚分ではありません。"
150 INPUT PROMPT "PLEASE HIT ENTER KEY":Q$
160 IF Q$<>"" THEN GOTO 150
170 GOTO 90
180 END IF
190 RESTORE 230
200 FOR I=1 TO 12
210 READ NAME$(I)
220 NEXT I
230 DATA ヘズル,バルド,セティ,オード,ネール,ファラ,ヘイム,ダイン,ウル,ブラギ,ノヴァ,トード
240 FOR U=1 TO 12
250 IF MID$(CPST$,U,1)="1" THEN
260 LET EXST$=EXST$&" "&NAME$(U)
270 LET N=N+1
280 END IF
290 NEXT U
300 PRINT "手元の書は "&EXST$&" で全部です。"
310 INPUT PROMPT "PLEASE HIT ENTER KEY":Q$
320 IF Q$<>"" THEN GOTO 310
330 IF N<=6 THEN
340 PRINT "とりあえず全部持たせてみては?"
350 STOP
360 END IF
370 RESTORE 410
380 FOR S=1 TO N-6
390 READ FNS,LST
400 NEXT S
410 DATA 127,127,247,255,466,511,848,1023,1486,2047,2510,4095
420 LET K=1
430 FOR I=1 TO LST
440 LET X=I+1
450 LET C=0
460 FOR J=1 TO N
470 IF X-(LST+1)/(2^J)>0 THEN
480 LET PL$(K)=PL$(K)&"1"
490 LET X=X-(LST+1)/(2^J)
500 LET C=C+1
510 GOTO 540
520 END IF
530 LET PL$(K)=PL$(K)&"0"
540 NEXT J
550 IF C<=6 THEN LET K=K+1
560 LET PL$(K)=""
570 NEXT I
580 REM
590 LET CO=1
600 IF MID$(CPST$,1,1)="1" THEN
604 RESTORE 2000
610 GOSUB 1221
620 END IF
630 IF MID$(CPST$,2,1)="1" THEN
640 RESTORE 2010
650 GOSUB 1221
660 END IF
670 IF MID$(CPST$,3,1)="1" THEN
680 RESTORE 2020
690 GOSUB 1221
700 END IF
710 IF MID$(CPST$,4,1)="1" THEN
720 RESTORE 2030
730 GOSUB 1221
740 END IF
750 IF MID$(CPST$,5,1)="1" THEN
760 RESTORE 2040
770 GOSUB 1221
780 END IF
790 IF MID$(CPST$,6,1)="1" THEN
800 RESTORE 2050
810 GOSUB 1221
820 END IF
830 IF MID$(CPST$,7,1)="1" THEN
840 RESTORE 2060
850 GOSUB 1221
860 END IF
870 IF CT>=N THEN GOTO 10000
880 IF MID$(CPST$,8,1)="1" THEN
890 RESTORE 2070
900 GOSUB 1221
910 END IF
920 IF CT>=N THEN GOTO 10000
930 IF MID$(CPST$,9,1)="1" THEN
940 RESTORE 2080
950 GOSUB 1221
960 END IF
970 IF CT>=N THEN GOTO 10000
980 IF MID$(CPST$,10,1)="1" THEN
990 RESTORE 2090
1000 GOSUB 1221
1010 END IF
1020 IF CT>=N THEN GOTO 10000
1030 IF MID$(CPST$,11,1)="1" THEN
1040 RESTORE 2100
1050 GOSUB 1221
1060 END IF
1070 IF CT>=N THEN GOTO 10000
1080 IF MID$(CPST$,12,1)="1" THEN
1090 RESTORE 2110
1100 GOSUB 1221
1110 END IF
1120 GOTO 10000
1221 READ NAME$(CO),HP(CO),POW(CO),MGC(CO),SKL(CO),SPD(CO),LUK(CO),DFN(CO),BDY(CO),MOV(CO)
1230 LET CO=CO+1
1240 RETURN
2000 DATA べ,30,10,0,0,0,-10,0,0,0
2010 DATA バ,5,5,0,5,5,5,5,0,0
2020 DATA セ,-10,0,10,0,30,0,0,0,0
2030 DATA オ,0,0,0,30,0,0,0,0,0
2040 DATA ネ,10,10,0,-10,0,0,10,10,0
2050 DATA ファ,0,5,5,10,10,0,0,0,0
2060 DATA ヘ,0,0,30,0,0,10,-10,0,0
2070 DATA ダ,0,5,0,0,-10,0,30,0,5
2080 DATA ウ,0,0,0,10,10,10,0,0,0
2090 DATA ブ,0,-10,10,0,0,30,0,0,0
2100 DATA ノ,0,30,-10,0,10,-5,5,0,0
2110 DATA ト,5,5,5,10,0,5,0,0,0
10000 REM
10010 REM
10020 REM
10030 PRINT "HP・力・魔法・技・速さ・幸運・守備・体格・移動 のパラメーターの重要度をインプットしてください。"
10040 PRINT "順番:H力魔技速幸守体移"
10050 PRINT "入力例:110220110 2:重要視 1:普通 0:考慮外(もう充分 "
10060 PRINT "※体格・移動は 1:考慮 0:考慮外 でおながいしまつ。"
10070 INPUT V$
10080 IF V$="R" THEN GOTO 80
10090 IF LEN(V$)<>9 THEN
10100 PRINT "要素数9と合致していません。"
10110 GOTO 10040
10120 END IF
10130 IF (MID$(CPST$,5,1)="0" AND MID$(V$,8,1)="1") OR (MID$(CPST$,8,1)="0" AND MID$(V$,9,1)="1") THEN
10140 PRINT "ないそでは振れません。PLEASE HIT ENTER KEY"
10150 INPUT Q$
10160 IF Q$<>"" THEN GOTO 10140
10170 GOTO 10000
10180 END IF
10190 FOR I=1 TO 9
10200 LET P(I)=VAL(MID$(V$,I,1))
10210 NEXT I
10211 LET ND=0
10212 LET NN=0
10213 LET DD=0
10220 FOR I=1 TO FNS
10230 LET VALUE=0
10240 LET ALL$(I)=" "
10250 FOR J=1 TO N
10260 LET BOOK$=MID$(PL$(I),J,1)
10270 IF BOOK$="1" THEN
10280 LET VALUE=VALUE+HP(J)*P(1)+POW(J)*P(2)+MGC(J)*P(3)+SKL(J)*P(4)+SPD(J)*P(5)+LUK(J)*P(6)+DFN(J)*P(7)+BDY(J)*P(8)+MOV(J)*P(9)
10285 GOSUB 20000
10290 LET ALL$(I)=ALL$(I)&NAME$(J)
10300 END IF
10310 NEXT J
10320 LET PT(I)=VALUE
10330 IF RIGHT$(V$,2)="11" THEN
10340 IF POS(ALL$(I),"ネ")*POS(ALL$(I),"ダ")>0 THEN
10350 LET ND=ND+1
10351 LET ALL$(ND)=ALL$(I)
10352 LET PT(ND)=PT(I)
10353 FOR SS=1 TO 9
10354 LET PALA(ND,SS)=PALA(I,SS)
10355 NEXT SS
10360 GOTO 10700
10370 ELSE
10380 GOTO 10900
10390 END IF
10400 END IF
10410 IF RIGHT$(V$,2)="10" THEN
10420 IF POS(ALL$(I),"ネ")>0 THEN
10430 LET NN=NN+1
10440 LET ALL$(NN)=ALL$(I)
10441 LET PT(NN)=PT(I)
10443 FOR SS=1 TO 9
10444 LET PALA(NN,SS)=PALA(I,SS)
10445 NEXT SS
10446 GOTO 10700
10450 ELSE
10460 GOTO 10900
10470 END IF
10480 END IF
10490 IF RIGHT$(V$,2)="01" THEN
10500 IF POS(ALL$(I),"ダ")>0 THEN
10510 LET DD=DD+1
10511 LET ALL$(DD)=ALL$(I)
10512 LET PT(DD)=PT(I)
10513 FOR SS=1 TO 9
10514 LET PALA(DD,SS)=PALA(I,SS)
10515 NEXT SS
10520 GOTO 10700
10530 ELSE
10540 GOTO 10900
10550 END IF
10560 END IF
10604 LET F=3
10700 REM
10710 REM
10900 NEXT I
10910 IF RIGHT$(V$,2)="11" THEN LET FNS=ND
10920 IF RIGHT$(V$,2)="10" THEN LET FNS=NN
10930 IF RIGHT$(V$,2)="01" THEN LET FNS=DD
10999 PRINT
11000 REM IF PT(I)>=180 THEN PRINT PL$(I);" ";ALL$;PT(I);F;POS(ALL$,"ネ")
11010 LET C=0
11020 LET K=0
11030 FOR II=1 TO FNS-1
11040 IF PT(II)
11055 SWAP ALL$(II),ALL$(II+1)
11056 FOR SS=1 TO 9
11057 SWAP PALA(II,SS),PALA(II+1,SS)
11058 NEXT SS
11060 LET C=C+1
11070 END IF
11080 NEXT II
11090 IF C=0 THEN
11100 FOR II=1 TO 10
11110 PRINT II;": ";PT(II);"pt. 書:";ALL$(II)
11115 PRINT "HP:";PALA(II,1);"% 力:";PALA(II,2);"% 魔:";PALA(II,3);"% 技:";PALA(II,4);"% 速:";PALA(II,5);"% 幸:";PALA(II,6);"% 守:";PALA(II,7);"% 体:";PALA(II,8);"% 移:";PALA(II,9);"%"
11120 NEXT II
11130 REM
11140 STOP
11150 END IF
11160 LET C=0
11170 LET K=K+1
11180 GOTO 11030
15000 INPUT PROMPT "重要度インプットに戻りますか? (Returen= R/End = E)":Q$
15010 IF Q$="R" THEN GOTO 10000
15030 IF Q$="E" THEN STOP ELSE
15040 PRINT "最初に戻ります"
15050 GOTO 20
20000 LET PALA(I,1)=PALA(I,1)+HP(J)
20010 LET PALA(I,2)=PALA(I,2)+POW(J)
20020 LET PALA(I,3)=PALA(I,3)+MGC(J)
20030 LET PALA(I,4)=PALA(I,4)+SKL(J)
20040 LET PALA(I,5)=PALA(I,5)+SPD(J)
20050 LET PALA(I,6)=PALA(I,6)+LUK(J)
20060 LET PALA(I,7)=PALA(I,7)+DFN(J)
20070 LET PALA(I,8)=PALA(I,8)+BDY(J)
20080 LET PALA(I,9)=PALA(I,9)+MOV(J)
20090 RETURN
END