コメント

このコメントは、持っているだんごの数を数えるスクリプトへのコメントです。

コメントの内容

Cdv30200 aoi icon mini aoihikawa(投稿日:2011/09/11 22:09/11/11)
シンプルに、良く纏まっていると思います。

なお、後半のスクリプトにも
while文を応用することで、よりスマートにできます。
case speakWithSelect(5,"1個買う","3個買う","5個買う","10個買う", "いらない", 
    "おいしいだんごはいらんかね。\n1個1銭だよ。") 
  
  when 0 
    if getMoney()<1 
      speak("お金が足りないよ。") 
    else 
      if x>9  #ここでxを使っている。 
      speak("だんごは10個までしか持てないよ。") 
      else 
        giveItem(7991) 
        playSound(73823) 
        subMoney(1) 
        speak("まいどありー。") 
      end 
    end 
    
  when 1 
    if getMoney()<3 
      speak("お金が足りないよ。") 
    else 
      if x>7  #ここでxを使っている。 
        speak("だんごは10個までしか持てないよ。") 
      else 
        i = 0
        while i < 3
          giveItem(7991) 
          i = i + 1
        end
        playSound(73823) 
        subMoney(3) 
        speak("まいどありー。") 
      end 
    end 
  
  when 2 
    if getMoney()<5 
      speak("お金が足りないよ。") 
    else 
      if x>5  #ここでxを使っている。 
        speak("だんごは10個までしか持てないよ。") 
      else 
        i = 0
        while i < 5
          giveItem(7991) 
          i = i + 1
        end
        playSound(73823) 
        subMoney(5) 
        speak("まいどありー。") 
      end 
    end 
 
 when 3 
   if getMoney()<10 
     speak("お金が足りないよ。") 
   else 
     if x>0  #ここでxを使っている。 
       speak("だんごは10個までしか持てないよ。") 
     else 
       i = 0
        while i < 10
          giveItem(7991) 
          i = i + 1
        end
       playSound(73823) 
       subMoney(10) 
       speak("まいどありー。") 
     end 
   end 
 
 when 4 
   speak("またどうぞ。") 
 
end


さらに、似たようなスクリプトを繰り返す場合、
「関数」という形で定義してあげると、
より便利になります。
def OdangoGet(x, kosuu)
  if getMoney() < kosuu 
      speak("お金が足りないよ。") 
    else 
      if x > (10 - kosuu)  #ここでxを使っている。 
        speak("だんごは10個までしか持てないよ。") 
      else 
        i = 0
        while i < kosuu
          giveItem(7991) 
          i = i + 1
        end
        playSound(73823) 
        subMoney(kosuu) 
        speak("まいどありー。") 
      end 
    end 
  end
end

case speakWithSelect(5,"1個買う","3個買う","5個買う","10個買う", "いらない", 
    "おいしいだんごはいらんかね。\n1個1銭だよ。") 
  
  when 0 
    OdangoGet(x, 1)
  when 1 
    OdangoGet(x, 3)
  when 2 
    OdangoGet(x, 5)
  when 3 
    OdangoGet(x, 10)
 
  when 4 
    speak("またどうぞ。") 
 
end

なお、「関数とは何か」についてはこちらの記事の、最後付近に記載しておりますので、
参照頂けると幸いです。

コメントの内容(一番最初の投稿)

Cdv30200 aoi icon mini aoihikawa(投稿日:2011/09/11 22:09/11/11)
シンプルに、良く纏まっていると思います。

なお、後半のスクリプトにも
while文を応用することで、よりスマートにできます。
case speakWithSelect(5,"1個買う","3個買う","5個買う","10個買う", "いらない", 
    "おいしいだんごはいらんかね。\n1個1銭だよ。") 
  
  when 0 
    if getMoney()<1 
      speak("お金が足りないよ。") 
    else 
      if x>9  #ここでxを使っている。 
      speak("だんごは10個までしか持てないよ。") 
      else 
        giveItem(7991) 
        playSound(73823) 
        subMoney(1) 
        speak("まいどありー。") 
      end 
    end 
    
  when 1 
    if getMoney()<3 
      speak("お金が足りないよ。") 
    else 
      if x>7  #ここでxを使っている。 
        speak("だんごは10個までしか持てないよ。") 
      else 
        i = 0
        while i < 3
          giveItem(7991) 
          i = i + 1
        end
        playSound(73823) 
        subMoney(3) 
        speak("まいどありー。") 
      end 
    end 
  
  when 2 
    if getMoney()<5 
      speak("お金が足りないよ。") 
    else 
      if x>5  #ここでxを使っている。 
        speak("だんごは10個までしか持てないよ。") 
      else 
        i = 0
        while i < 5
          giveItem(7991) 
          i = i + 1
        end
        playSound(73823) 
        subMoney(5) 
        speak("まいどありー。") 
      end 
    end 
 
 when 3 
   if getMoney()<10 
     speak("お金が足りないよ。") 
   else 
     if x>0  #ここでxを使っている。 
       speak("だんごは10個までしか持てないよ。") 
     else 
       i = 0
        while i < 10
          giveItem(7991) 
          i = i + 1
        end
       playSound(73823) 
       subMoney(10) 
       speak("まいどありー。") 
     end 
   end 
 
 when 4 
   speak("またどうぞ。") 
 
end


さらに、似たようなスクリプトを繰り返す場合、
「関数」という形で定義してあげると、
より便利になります。
def OdangoGet(x, kosuu)
  if getMoney() < kosuu 
      speak("お金が足りないよ。") 
    else 
      if x > (10 - kosuu)  #ここでxを使っている。 
        speak("だんごは10個までしか持てないよ。") 
      else 
        i = 0
        while i < kosuu
          giveItem(7991) 
          i = i + 1
        end
        playSound(73823) 
        subMoney(kosuu) 
        speak("まいどありー。") 
      end 
    end 
  end
end

case speakWithSelect(5,"1個買う","3個買う","5個買う","10個買う", "いらない", 
    "おいしいだんごはいらんかね。\n1個1銭だよ。") 
  
  when 0 
    OdangoGet(x, 1)
  when 1 
    OdangoGet(x, 3)
  when 2 
    OdangoGet(x, 5)
  when 3 
    OdangoGet(x, 10)
 
  when 4 
    speak("またどうぞ。") 
 
end

なお、「関数とは何か」についてはこちらの記事の、最後付近に記載しておりますので、
参照頂けると幸いです。