caseで文字列を・・・(質問掲示板

投稿:   1 mini 闇さん 投稿:2012/07/08 17:13:08(最新:2012/07/08 20:43:08)
通信機でさまざまなキャラクターから情報を得るゲームを作ろうとして
開始スクリプトにメニューカスタマイズで『通信機』を増やし
その中身か↓です
a=createArray()
while n<8
a[n]=" "
n=n+1
end
c=0
while c<7
case speakWithSelect(16,"0","1","2","3","4","5","6","7","8","9","α","β","γ","δ","ε","ζ", 
    "周波数を入力してください\n"+a[0]+a[1]+a[2]+"."+a[3]+a[4]+a[5]+a[6]+a[7])
  when 0
    a[c]="0"
  when 1
    a[c]="1"
  when 2
    a[c]="2"
  when 3
    a[c]="3"
  when 4
    a[c]="4"
  when 5
    a[c]="5"
  when 6
    a[c]="6"
  when 7
    a[c]="7"
  when 8
    a[c]="8"
  when 9
    a[c]="9"
  when 10
    a[c]="α"
  when 11
    a[c]="β"
  when 12
    a[c]="γ"
  when 13
    a[c]="δ"
  when 14
    a[c]="ε"
  when 15
    a[c]="ζ"
end
c=c+1
end
a[7]=a[rand(7)]
speak("・・・・・発信中・・・・・・・\n"+a[0]+a[1]+a[2]+"ー"+a[3]+a[4]+a[5]+a[6]+a[7])
setBaseTime()
k=0
w="てきとうな番号"
v=1
g=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]
g=toString(g)
case g
when "000000"
k=1
w="作者・闇龍神"
v=0
speak("てすと")
end
speak(g)
speak(w+"に連絡した")
speak(getVariable("通信機")[k])

通信機の周波数が小数点以下七桁目はランダムですが
ceseではg(1+2+3+4+5+6)で調べています
000000と選択しても闇龍神という表示が出ず
番号を間違えた時のメッセージが出ます
エラー文はありません 何が間違っているのでしょう

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Cdv30200 aoi icon mini aoihikawa(投稿日:2012/07/08 17:48, 履歴)
判定側の桁数の間違い

g=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6] #0~6 → 7桁

case g 
  when "000000" #6桁
  1 mini 闇さん(投稿日:2012/07/08 18:07, 履歴)
解決しました ありがとうございます
凡ミス・・・
さすがに七桁は多すぎですかね?
ゲーム中で教えてもらった周波数を保存する場所が無いですし・・・
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/07/08 18:57, 履歴)
ユーザフレンドリで考えると
教えてもらったかどうかのフラグを管理しておき
フラグがオンの場合、
かけられる選択肢が増えていく
といった仕様が良いかも

演出でどうしてもこの方が良い
というなら別ですが
  1 mini 闇さん(投稿日:2012/07/08 20:43, 履歴)
最初は選択の方を考えていましたが
パスワード式の場合だとMGS3で出てきた
特定の周波数で開く扉等を作れるのでこれを使いました
MGS3だと選択肢と周波数を合わせるのが両方ありますが
さすがにそれは実力的に作れないので・・・
  1 mini 闇さん(投稿日:2012/07/08 17:17, 履歴)
すみませせん
ランダムは小数点以下七桁目ではなく小数点以下五桁目です
あと000000ではなく0000000です
入力は7桁でした
  1 mini 闇さん(投稿日:2012/07/08 17:18, 履歴)
説明の補足でまだ未解決です・・・