<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>etoysカウンタを使った場合分け</title><revhistory><revision><revnumber>31</revnumber><date>2011-07-07 03:03:11</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>30</revnumber><date>2011-07-07 03:01:07</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>29</revnumber><date>2011-07-06 05:54:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>28</revnumber><date>2011-07-06 05:51:16</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>27</revnumber><date>2011-07-06 05:47:48</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>26</revnumber><date>2011-07-06 05:47:07</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>25</revnumber><date>2011-07-06 05:43:29</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>24</revnumber><date>2011-07-06 05:42:41</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>23</revnumber><date>2011-07-06 05:32:44</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>22</revnumber><date>2011-07-06 05:28:58</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>21</revnumber><date>2011-07-06 05:25:45</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>20</revnumber><date>2011-07-06 04:56:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>19</revnumber><date>2011-07-06 04:54:16</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>18</revnumber><date>2011-07-06 04:40:03</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>17</revnumber><date>2011-07-06 04:35:46</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>16</revnumber><date>2011-07-06 04:35:18</date><authorinitials>masahiko</authorinitials><revremark>名前を'etoys時間で場合を分ける'から変更。</revremark></revision><revision><revnumber>15</revnumber><date>2010-07-02 00:16:15</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>14</revnumber><date>2010-07-01 13:11:13</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>13</revnumber><date>2010-07-01 12:59:45</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>12</revnumber><date>2010-07-01 12:55:24</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>11</revnumber><date>2010-07-01 12:47:28</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2010-07-01 12:44:46</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2010-07-01 12:42:43</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2010-07-01 12:36:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2010-07-01 06:08:40</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2010-07-01 06:06:22</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-07-01 06:01:45</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-07-01 05:58:57</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-07-01 05:53:06</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-07-01 05:50:21</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-07-01 05:48:29</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>カウンタを使った場合分け</title><para>止まったり、動いたり、別の動きをしたりなど、 何種類かの動きを決まった順に繰り返すスクリプトを作ります。 </para><!--rule (<hr>) is not applicable to DocBook--><section><title>変数を用意する</title><para>回数を数えるために、変数を用意します。 </para><itemizedlist><listitem override="none"><para>トンボのビューアを開き、変数を作ります。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter01.png"/></imageobject><textobject><phrase>counter01.png</phrase></textobject></inlinemediaobject> </para></listitem><listitem override="none"><para>カウンタという名前で作成しました。 </para></listitem><listitem override="none"><para>タイプはNumberです。値が数値になっていればよい。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter02.png"/></imageobject><textobject><phrase>counter02.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>回数を数える</title><para>このようなスクリプトを考えます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter03.png"/></imageobject><textobject><phrase>counter03.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>実行すると、 チクタク一回ごとにカウンタの値が１ずつ順に増えていきます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=baaiwake12.png"/></imageobject><textobject><phrase>baaiwake12.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>通常では１秒間に８回チクタクで実行されるので、 最初にカウンタの値が１になっていたとすると、 １０秒後には８１になります。 </para><para>１０秒経ったらもとの動きにもどすために、 カウンタの値を１に戻す命令を追加しておきます。 (秒数は各自、調整してください) </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter04.png"/></imageobject><textobject><phrase>counter04.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>カウンタの値はこのように変化します。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter05.png"/></imageobject><textobject><phrase>counter05.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>カウンタの値を使って場合わけをしてみましょう。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>止まったり動いたり</title><para>始めの１秒は止まっていて、 その後は動く場合の書き方です。 </para><para>カウンタの値は１から始まり、 １秒後に９になります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter06.png"/></imageobject><textobject><phrase>counter06.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>境目の値の９と比較するテストを書きます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter07.png"/></imageobject><textobject><phrase>counter07.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para><emphasis role="strong">はい</emphasis>の後ろに、カウンタの値が１～８のときの処理を書きます。 </para><itemizedlist><listitem override="none"><para>動かないのなら、何も書かなくてよい。 </para></listitem></itemizedlist><para><emphasis role="strong">いいえ</emphasis>の後ろに、カウンタの値が９以上のときの処理を書きます。 </para><itemizedlist><listitem override="none"><para>動きを書きます。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>２つの場合に分ける</title><para>値aと比較して２つの処理に分ける場合 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter08.png"/></imageobject><textobject><phrase>counter08.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>比較のテストを行い、はい、いいえのところにそれぞれの処理を書けばよい。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=baaiwake09.png"/></imageobject><textobject><phrase>baaiwake09.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>３つの場合に分ける</title><para>３つに分ける場合 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter09.png"/></imageobject><textobject><phrase>counter09.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>値の小さい方から順に比較します。 </para><itemizedlist><listitem override="none"><para>まずaと比較し、小さければ処理１を行います。 </para></listitem><listitem override="none"><para>そうでない(aより大きい)ときは、bと比較して処理２または処理３を行います。 </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=baaiwake06.png"/></imageobject><textobject><phrase>baaiwake06.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>処理２が行われるのは、aより小さいが「いいえ」で、bより小さいが「はい」のときです。 </para><para>１回の比較に１つのテストタイルを使って書きます。 １番目のテストの「いいえ」の部分に２つ目のテストタイルが入った構造になります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter10.png"/></imageobject><textobject><phrase>counter10.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>このスクリプトと上の図との対応を示します。 </para><itemizedlist><listitem override="none"><para>a は 9 </para></listitem><listitem override="none"><para>b は 27 </para></listitem><listitem override="none"><para>処理１は「なにもしない」 </para></listitem><listitem override="none"><para>処理２は「進める」 </para></listitem><listitem override="none"><para>処理３は「回す」 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>４つ以上の場合に分ける</title><para>場合が４つ以上になっても、小さい順に比較するのが分かりやすい。 </para><para>３つに分けるときの書き方で、 最後の「いいえ」の部分にテストタイルを追加します。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E3%82%AB%E3%82%A6%E3%83%B3%E3%82%BF%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E5%88%86%E3%81%91?action=AttachFile&amp;do=get&amp;target=counter11.png"/></imageobject><textobject><phrase>counter11.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>４つに分けるには、比較が３回必要です。 </para></section></section></article>