
参考資料
§ ファイル操作2・数値配列 §
コンピュータ(ニンテンドー3DSは、身体は小さいが、立派なコンピュータです)を扱う上で、無くては成らない機能がファイル操作です。ゲームでも、或る時の状態を保存するセーブ機能や、ハイスコアの保存等で、必須の技術と成ります。今回は、数値データの保存・読込です。
下記のプログラムでは、数値データの保存(セーブ)と読込(ロード)を行います。
ボタンで入力と保存、
ボタンで読込を行います。終了するには、
ボタンを押して下さい。猶、今回も、ガイドを日本語表示にしてみました。
| 0000001 | OPTION STRICT |
| 0000002 | ACLS |
| 0000003 | DIM I,B,C,N[100],S$,T1$,T2$,T3$,T4$ |
| 0000004 | |
| 0000005 | FOR I=1 TO 4 |
| 0000006 | READ S$ |
| 0000007 | T1$=T1$+CHR$(VAL("&H"+S$)) |
| 0000008 | NEXT |
| 0000009 | FOR I=1 TO 4 |
| 0000010 | READ S$ |
| 0000011 | T2$=T2$+CHR$(VAL("&H"+S$)) |
| 0000012 | NEXT |
| 0000013 | FOR I=1 TO 5 |
| 0000014 | READ S$ |
| 0000015 | T3$=T3$+CHR$(VAL("&H"+S$)) |
| 0000016 | NEXT |
| 0000017 | |
| 0000018 | T4$="A " |
| 0000019 | FOR I=1 TO 5 |
| 0000020 | READ S$ |
| 0000021 | T4$=T4$+CHR$(VAL("&H"+S$)) |
| 0000022 | NEXT |
| 0000023 | T4$=T4$+" B " |
| 0000024 | FOR I=1 TO 2 |
| 0000025 | READ S$ |
| 0000026 | T4$=T4$+CHR$(VAL("&H"+S$)) |
| 0000027 | NEXT |
| 0000028 | T4$=T4$+" X " |
| 0000029 | FOR I=1 TO 2 |
| 0000030 | READ S$ |
| 0000031 | T4$=T4$+CHR$(VAL("&H"+S$)) |
| 0000032 | NEXT |
| 0000033 | GPUTCHR 132,224.T4$,1,1,#WHITE |
| 0000034 | |
| 0000035 | WHILE TRUE |
| 0000036 | B=BUTTON(0) |
| 0000037 | |
| 0000038 | 'QUIT |
| 0000039 | IF B AND 64 THEN BREAK |
| 0000040 | |
| 0000041 | 'INPUT&SAVE |
| 0000042 | IF B AND 16 THEN |
| 0000043 | CLS : WAIT 5 |
| 0000044 | INPUT " "+T1$+":";S$ |
| 0000045 | C=VAL(S$) |
| 0000046 | FOR I=0 TO (C-1) |
| 0000047 | INPUT " "+T2$+":";S$ |
| 0000048 | N[I]=VAL(S$) |
| 0000049 | NEXT |
| 0000050 | INPUT " "+T3$+":";S$ |
| 0000051 | SAVE "DAT:"+S$,N |
| 0000052 | ENDIF |
| 0000053 | |
| 0000054 | 'LOAD |
| 0000055 | IF B AND 32 THEN |
| 0000056 | CLS : WAIT 5 |
| 0000057 | INPUT " "+T3$+":";S$ |
| 0000058 | LOAD "DAT:"+S$,N |
| 0000059 | FOR I=0 TO 99 |
| 0000060 | PRINT N[I];" "; |
| 0000061 | NEXT |
| 0000062 | ENDIF |
| 0000063 | |
| 0000064 | VSYNC 1 |
| 0000065 | WEND |
| 0000066 | ACLS : END |
| 0000067 | |
| 0000068 | DATA "30C7","30FC","30BF","6570" |
| 0000069 | DATA "6570","5024","5165","529B" |
| 0000070 | DATA "30D5","30A1","30A4","30EB","540D" |
| 0000071 | DATA "5165","529B","30FB","4FDD","5B58" |
| 0000072 | DATA "8AAD","8FBC","7D42","4E86" |
ニンテンドー3DSのSmile BASICは、4次元迄の配列を使用する事が出来ますが、多次元配列も同様に保存する事が出来ます。
| 0000001 | OPTION STRICT |
| 0000002 | ACLS |
| 0000003 | DIM I,J,A[3,3],B[3,3] |
| 0000004 | |
| 0000005 | FOR I=0 TO 2 |
| 0000006 | FOR J=0 TO 2 |
| 0000007 | READ A[J,I] |
| 0000008 | NEXT |
| 0000009 | NEXT |
| 0000010 | |
| 0000011 | DATA 1,2,3 |
| 0000012 | DATA 4,5,6 |
| 0000013 | DATA 7,8,9 |
| 0000014 | |
| 0000015 | SAVE "DAT:TEST",A |
| 0000016 | |
| 0000017 | LOAD "DAT:TEST",B |
| 0000018 | |
| 0000019 | FOR I=0 TO 2 |
| 0000020 | FOR J=0 TO 2 |
| 0000021 | PRINT B[J,I] |
| 0000022 | NEXT |
| 0000023 | NEXT |