#ナコ様の透視術 /*  新年のご挨拶代わりの隠し芸大会(なにそれ;)  ナコ様が、アナタの心を透視しますよ〜☆  ・・・なんてねwww  数当てカードという古典的な透視マジックをご存じでしょうか。  ま、マジック・・・?(笑) といったようなモノですが、ワタシはわりと最近になってようやく、コレが一体どういった理屈で出来るのかを理解しました;  カードは、一生懸命書き写さなくても、こんぴゅーたぁなら、一瞬でカンタンに作れるものだったのですw  ナコさまのセリフを読んだら、吹き出しをクリックして進めて下さい。  カードの選択は、慎重かつ正直に。  ナコさまは間違えませんので、もし、結果が思っていた数と違ったら、それはアナタが間違ってるのですwww  だいぶ前に作ったはいいけど、今ひとつ使えていない、いろんな方向に吹き出しを出す関数を使ってみた。  ナコさまを画面の左側に連れて行くと、吹き出しの向きが変わります。 */ #----------------------------------------------------------- !母艦設計=「母艦の可視はオフ」 母艦のタイトルは「ナコ様の透視術」 #------------------------------------------------------------ 科白色=$EEBBCC #------------------------------------------------------------ #なこ様 ナコ様とはなこ。 これについて   可視はオフ。   X=ナコ様の幅。//デスクトップワークエリアW-ナコ様の幅。   Y=デスクトップワークエリアH-ナコ様の高さ。   マウス押した時は〜     吹出の可視はオフ。吹出右の可視はオフ。   マウス離した時は〜     もし、Y-吹出の高さ+50<0ならば、Y=吹出の高さ-50-20。     もし、Y+ナコ様の高さ>デスクトップワークエリアHならば、Y=デスクトップワークエリアH-ナコ様の高さ     もし、X-吹出の幅<0ならば、       もし、X<0ならば、X=0。       吹出右の位置=「{ナコ様のX+ナコ様の幅-80},{ナコ様のY-吹出右の高さ+50}」       もし、吹出方向=「右上」でなければ、吹出方向は「右上」。     違えば、もし、X+ナコ様の幅*2>デスクトップワークエリアWならば、       X=デスクトップワークエリアW-ナコ様の幅*2       吹出の位置=「{ナコ様のX-吹出の幅},{ナコ様のY-吹出の高さ+50}」       もし、吹出方向=「左上」でなければ、吹出方向は「左上」。     違えば、       吹出の位置=「{ナコ様のX-吹出の幅},{ナコ様のY-吹出の高さ+50}」       もし、吹出方向=「左上」でなければ、吹出方向は「左上」。     もし、吹出表示状態=オンならば、       吹出方向で条件分岐         左上ならば、吹出の可視はオン。         右上ならば、吹出右の可視はオン。     母艦位置設定。   ダブルクリックした時は〜終わる。 #なこ様吹出 C=0。クリック待ちフラグ=オフ。 吹出とはフォーム。 これについて   可視はオフ。ドラッグ移動はオフ。   クリックした時は〜     もし、クリック待ちフラグ=オンならば、       クリック待ちフラグ=オフ。       「{シナリオ¥C}」をナデシコする。。       C=C+1。       クリック待ちフラグ=オン。 吹出右とはフォーム。 これについて   可視はオフ。ドラッグ移動はオフ。   クリックした時は〜     もし、クリック待ちフラグ=オンならば、       クリック待ちフラグ=オフ。       「{シナリオ¥C}」をナデシコする。。       C=C+1。       クリック待ちフラグ=オン。 #カードの表示位置(ダイアログ)は母艦の中央になる。 *母艦位置設定   母艦のX=ナコ様のX+120。母艦のY=ナコ様のY-30。   母艦の幅=ナコ様の幅。母艦の高さ=ナコ様の高さ。 #----------------------------------------------------------- シナリオ=「科白を喋る。 科白非表示。数当カード。 終わる」 #------------------------------------------------------------ #メインルーチン 文字サイズは12。 塗り色は科白色。 吹出方向は「右上」 母艦位置設定。 ダイアログ詳細=「文字サイズ=12」 ナコ様の可視はオン。 数当表作成。 「心の中で1〜60の間の数字を思い浮かべて、 ボクには見えないようにメモって置いてね。{改行} 準備が出来たら、はじめるよ!」と喋る。 クリック待ちフラグ=オン。 科白=「では、これから六枚のカードを、お見せします。 その中に、あなたの思った数字があれば{カッコ}はい{カッコ閉じ}を、 なければ{カッコ}いいえ{カッコ閉じ}のボタンを押して下さい。」 *数当表作成   数当表=空。   60回     数=回数。     6回       もし、AND(数,(2の(回数-1)乗))=0でなければ、数当表¥(回数-1)に数を一行追加。 *数当カード   答=0   6回     ダイアログタイトル=「数当てカード {回数}枚目」     (回数-1)のカード表示。     もし、それがはいならば、答=答+(2の(回数-1)乗)   「むむ、読めました!{~}あなたが心に描いた数字は…{~}  {答}  ですね?」と喋る。 *カード表示(Aの)   カード=空。   数当表¥Aを配列数値ソート。   30回     もし、それ¥(回数-1)<10ならば、数=「 {それ¥(回数-1)}」     違えば、数=「{それ¥(回数-1)}」     もし、(回数-1)%5=4ならば、カード=「{カード}{数}{改行}」     違えば、カード=「{カード}{数} 」   カードで二択。 #----------------------------------------------------------- *喋る({文字列=「」}AでSと|Sを)   科白種別はA。   吹出方向で条件分岐     「左上」ならば、       吹出にSを「左上」へ200,100で吹出セリフ表示。       吹出の位置=「{ナコ様のX-吹出の幅},{ナコ様のY-吹出の高さ+50}」       吹出の可視はオン。       吹出右にSを「右上」へ200,100で吹出セリフ表示。     「右上」ならば、       吹出右にSを「右上」へ200,100で吹出セリフ表示。       吹出右の位置=「{ナコ様のX+ナコ様の幅-80},{ナコ様のY-吹出右の高さ+50}」       吹出右の可視はオン。       吹出にSを「左上」へ200,100で吹出セリフ表示。   吹出表示状態=オン。 *科白非表示   吹出の可視はオフ。吹出右の可視はオフ。吹出表示状態=オフ。 #------------------------------------------------------------ ●吹出作成({グループ=?}FをW,Hで方向へ)   xx=0。yy=0。ww=0。hh=0。   方向で条件分岐     右上ならば、  #矢印は左下       Fのポケットは「右上」       x1=0。y1=H。x2=W/8。y2=H/4*3。x3=W/4。y3=H/8*7。     右下ならば、  #矢印は左上       Fのポケットは「右下」       x1=0。y1=0。x2=W/4。y2=H/8。x3=W/8。y3=H/4。     左上ならば、  #矢印は右下(吹出し変形と同じ)       Fのポケットは「左上」       x1=W。y1=H。x2=W/4*3。y2=H/8*7。x3=W/8*7。y3=H/4*3。     左下ならば、  #矢印は右上       Fのポケットは「左下」       x1=W。y1=0。x2=W/4*3。y2=H/8。x3=W/8*7。y3=H/4。     上ならば、  #矢印は下向き       hh=H/10。Fのポケットは「上」       x1=W/2。y1=H+hh。x2=W/2-W/20。y2=H-H/100。x3=W/2+W/20。y3=H-H/100。     下ならば、  #矢印は上向き       hh=H/10。yy=hh。Fのポケットは「下」       x1=W/2。y1=0。x2=W/2-W/20。y2=hh+H/100。x3=W/2+W/20。y3=hh+H/100。     左ならば、  #矢印は右向き       ww=W/10。Fのポケットは「左」       x1=W+ww。y1=H/2。x2=W-W/100。y2=H/2-H/20。x3=W-W/100。y3=H/2+H/20。     右ならば、  #矢印は左向き       ww=W/10。xx=ww。Fのポケットは「右」       x1=0。y1=H/2。x2=ww+W/100。y2=H/2-H/20。x3=ww+W/100。y3=H/2+H/20。   Fの可視はオフ。   FのクライアントWはW+ww。FのクライアントHはH+hh。   Fを$00FF00で画面クリア。   線スタイルは透明。   Fのxx,yyからxx+W,yy+Hへ円。1秒待つ。   Fの「{x1},{y1},{x2},{y2},{x3},{y3}」へ多角形。   F→画像通り変形。 //  Fの可視はオン。 ●吹出セリフ表示({グループ=?}FにSを{整数=100}minW,{整数=50}minHで{文字列=「」}方向へ)   Aとは文字列=「」。Bとは文字列=「」。   Sで反復     Bはそれ。     もし(Aの文字数)<(Bの文字数)ならば、A=B。   swとは整数=Aの文字幅取得。shとは整数=(Sの文字高さ取得)*(Sの要素数)   fwとは整数=(Aの文字幅取得)*1.5。fhとは整数=(Sの文字高さ取得)*(Sの要素数)*1.8   もし、fw