#author("2023-11-11T07:29:08+09:00","default:post","post")
----
#contents
----
~

*「単語の追加」を使った例。解説つき [#q4857a41]

「特定のトークを聞いた後は、自己紹介トークが増える」というケースを例にとった解説です。 
//[[引用元:https://yagi.hateblo.jp/entries/2003/09/23#p2]] ※記事消失

[[引用元:http://d.hatena.ne.jp/kusigahama/20030923#p2]]

 まず、自己紹介トークのそれぞれに名前を付けます。 

 *自己紹介A
 :15才です。
 
 *自己紹介B
 :バナナが好きです。
 
 *自己紹介C
 :実は河童を見たことがあります。

 AとBは最初から喋る自己紹介で、Cは特定のトークを見たあとに追加される、ということにします。 

 次に単語群を定義します。 

 @自己紹介バリエーション
 自己紹介A
 自己紹介B

 とりあえずAとBだけを記述しておきます。 

 これをどう使うかというと、 

 *自己紹介
 ((自己紹介バリエーション))

 こんな感じ。 

 カッコが二重になってます。 

 まず、内側のカッコ(自己紹介バリエーション)が実行されます。  さっき書いた単語群@自己紹介バリエーションから、自己紹介Aまたは自己紹介Bのどちらかが選ばれます。 

 内側のカッコは置き換えられ、外側のカッコが残るので(自己紹介A)または(自己紹介B)のいずれかの状態になります。 

 今度は外側カッコが実行されます。(自己紹介A)であれば、*自己紹介Aの内容に置き換えられるわけです。 

 で、結果として*自己紹介は「15才です。」または「バナナが好きです。」のいずれかになります。 

 つまり、単語群@自己紹介バリエーションにトークの名前を設定しておき、トークを間接的に選ぶ形にしてあるわけです。 

 ここまではOK? 

 さて、今度はここに自己紹介Cを増やします。 

 下のトークが、自己紹介Cを喋るようになるきっかけであるとします。 

 *
 :かっぱっぱ。

 下のように書き加えます。 

 *
 :かっぱっぱ。
 (単語の追加、自己紹介バリエーション、自己紹介C)

 単語の追加は、単語群に新しい単語を追加する命令です。 

 この例だと、単語群@自己紹介バリエーションに、新しい単語自己紹介Cが追加されます。 

 つまり、このトークを読んだあとは、 

 @自己紹介バリエーション
 自己紹介A
 自己紹介B
 自己紹介C

 こういう状態になってるわけです(イメージ的に)。 

 この状態で、さきほどの*自己紹介を実行すると、自己紹介トークが3パターンに増えてるわけです。 

 いかがなもんでしょ。 

 以下補足。 

-単語の記憶はちゃんと保存されます。オリジナルの辞書を書き換えるのではなく、セーブデータの方に書き加わってます。 
-「単語の追加」は何回も実行しても重複登録はされません。よって確率が偏ることもないです。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS