現在製作中のゲームにローマ字入力のブレ(例:「し」では"shi"と"si"のような感じのもの)に
対応させてみたいと思い、プログラムを組んでみようと考えたわけですが、プログラムを組む
途中でテストしてみたところ、凍ってしまいます。
どうすれば解決するでしょうか。
こちらが私のプログラム(一部を抜粋・未完)です。
#pack "type00.wav" #pack "romaji1.txt" #pack "romaji2.txt" mmload "type00.wav",0 mmload "beep01.wav",1 *start screen 0,800,640,0,100,70 notesel data noteload "romaji1.txt" notesel data2 noteload "romaji2.txt" hiragana="いいなおすけ" romaji="" mojif=2 shf=0 tsuf=0 k1=48 k2=49 k3=50 k4=51 k5=52 k6=53 k7=54 k8=55 k9=56 k0=57 a=65 b=66 c=67 d=68 e=69 f=70 g=71 h=72 i=73 j=74 k=75 l=76 m=77 n=78 o=79 p=80 q=81 r=82 s=83 t=84 u=85 v=86 w=87 x=88 y=89 z=90 goto *henkan ;ひらがな→ローマ字変換に飛ぶ *type moji=strmid(hiragana,0,2) if strlen(hiragana)!=2 :moji2=strmid(hiragana,0,4) :else moji2="/" roma=strmid(romaji,0,1) if strlen(romaji)!=1 :roma2=strmid(romaji,0,2) :else roma2="/" rr=strlen(romaji) buffer 1,800,640 pos 20,294 mes hiragana mes romaji gsel 0 gcopy 1,0,0,800,640 key=0 key=iparam if key=a { if roma="a" :goto *eraseboth :else :goto *miss } if key=i { if roma="i" :goto *eraseboth :else :goto *miss } if key=u { if roma="u" :goto *eraseboth :else :goto *miss } if key=e { if roma="e" :goto *eraseboth :else :goto *miss } if key=o { if roma="o" :goto *eraseboth :else :goto *miss } if key=k { if roma="k" { if moji="っ" :goto *eraseboth if instr(data2,0,moji2)!=-1 :mojif=4 goto *eraseroma } else :goto *miss } if key=s { if roma="s" { if moji="っ" :goto *eraseboth if instr(data2,0,moji2)!=-1 :mojif=4 if roma2="sh" :shf=1 if tsuf=1 { mmplay 0 tsuf=0 goto *type } goto *eraseroma } else :goto *miss } if key=c { if roma="c" { if moji="っ" :goto *eraseboth if instr(data2,0,moji2)!=-1 :mojif=4 goto *eraseroma } else :goto *miss } if key=t { if roma="c" { if moji="っ" :{ gosub *cxtu goto *eraseboth } } } goto *type *cxtu getstr romaji2,romaji,2 romaji="tt"+romaji2 return *eraseroma mmplay 0 getstr romaji2,romaji,1 romaji=romaji2 goto *type *eraseboth mmplay 0 getstr romaji2,romaji,1 getstr hiragana2,hiragana,mojif romaji=romaji2 hiragana=hiragana2 mojif=2 goto *type *miss mmplay 1 goto *type