コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
MIKE猫Soft ◆M1HxkK9fMI2A
2019/4/6 18:15 ネタバレ
今日の一言「くたばりかけた」
DEFソースコードを見たものは、分かるはず。
'ソースコード
'コメント:何故かここで力尽きた。
'ファイル配列の準備(空の配列を渡さなくても、きちんと初期化されます)
'ファイルとは別に、メニュー準備用にDEFを作る。
'引数:配列(ファイル名、ファイルタイプ、ファイル拡張子)、拡張子が記述されたDATA文のあるラベル
'戻り値:ファイルの個数、ファイル名の長さ、拡張子の個数、拡張子名の長さ(引数の配列)
'コメント:DEFのコード規模が地味に大きい(自己記録突破)
DEF FIM_INIT F_NM$[],F_TP[],EXT$[],F_CHK[],EXT_L$ OUT F_MX,F_LN,EXT_MX,EXT_LN
VAR I,J,K
IF !LEN(EXT$) && CHKLABEL(EXT_L$,1) THEN VAR E_DAT$,C
RESTORE EXT_L$:WHILE 1:READ E_DAT$:IF E_DAT$==""THEN:BREAK:ENDIF:C=C+1:WEND:EXT$=ARY_INIT(C):EXT_MX=C:C=0
RESTORE EXT_L$:FOR I=0TO EXT_MX-1:READ EXT$[I]:NEXT
F_NM$=ARY_INIT(0):FILES F_NM$:F_MX=LEN(F_NM$)
'プロジェクト内が空っぽでなければ、発動
IF F_MX THEN
IF !LEN(F_TP)THEN F_TP=ARY_INIT((F_MX>>4)+!(!(F_MX AND 15))
IF !LEN(F_CHK)THEN F_CHK=ARY_INIT((F_MX>>5)+!(!(F_MX AND 31))
'ファイルチェック兼ファイル名長さ最大取得
FOR I=0TO (F_MX>>4)+!(!(F_MX AND 15)-1)
FOR J=0 TO 15
IF ((I<<4)OR J)>LEN(F_NM)-1 THEN CONTINUE
IF F_LN<LEN(F_NM$[(I<<4)OR J])THEN F_LN=LEN(F_NM$[(I<<4)OR J])
LEFT$(F_NM$[(I<<4)OR J],1)==" "THEN F_TP[I]=F_TP[I]OR (2<<(J<<1))
IF LEN(F_NM$[(I<<4)OR J])>4 THEN
FOR K=0 TO LEN(EXT$)-1
IF K==1 THEN CONTINUE
IF RIGHT$(F_NM$[(I<<4)OR J],4)==EXT$[K]THEN F_TP[I]=F_TP[I]OR (K<<(J<<1))
IF EXT_LN<LEN(EXT$[K])THEN EXT_LN=LEN(EXT$[K])
NEXT
ENDIF
NEXT
NEXT
ENDIF
END

'配列の確保及び調節
'2018/2/4しんいち氏参考
DEF ARY_INIT(N)
VAR A[N]
RETURN A
END

コメント

アバター
MIKE猫Soft 2019/4/6 18:18 ◆M1HxkK9fMI2A
コード量、自己記録突破してた...
アバター
ジプッチャ 2019/4/6 22:13 ◆tkYhkmSxSAam
気分転換にマインスイーパーでも(唐突)
公開キー WJ7YX3Z4
今日できたやつです。
最初にバッて開くところの再帰で死にかけました。わーい仲間だー。
アバター
MIKE猫Soft 2019/4/7 7:53 ◆M1HxkK9fMI2A
うわぁーい!(棒

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -