Inventorで作ろうシリーズも後半戦、今日は3日目です。2日目までで、シャッフルしたカードを開くところまでができました。1日目--Vegetarian_start:カードを12枚並べてシャッフルする2日目--Vegetarian_open:裏返したカードを開く3日目--Vegetarian_reverse:2枚開いて、次のカードを開くときには、開いた2枚は元に戻す4日目--Vegetarian_final:2枚のカードの絵が一致していたら、開いたままにする3日目の今日は、Vegetarian_reverse、開くカードを2枚までにして、それより開くときには、開いていたカードを元の裏の絵に戻します。Asで、「Vegetarian_reverse」というProjectを作ります。Designerの変更は今回もありません。Editorを開きましょう。各カードの状態を入れておくリスト変数cardStatListを用意します。カードの状態は、番号で表します。開いている(表)最初は、すべて裏なので、setCardプロシージャで「0」をセットしておきます。開くカードの枚数をカウントする変数countも用意しましょう。ひっくり開いた枚数ではなく、次に開くのが何枚目か、という変数です。1枚を開いていれば、countは、「2」。2枚開いていれば、次は、その2枚を裏に戻して、開くので、「1」になります。初期値は「0」にしておきます。本当は、最初の1枚を開くときも、「1」にしたいところですが、一番初めは元に戻すカードが無いので、他の「1」の場合と、区別しておきたいからです。SHUFFLEボタンが押されたときも「0」にする必要がありますので、ShuffleButton.Clickでも、countに「0」をセットします。そうそう、cardStatListも、ShuffleButton.Clickで「0」をセットしましょう。今度は、ひっくり返されたカードを元の裏に戻すresetImageプロシージャを作ります。すべてのカードを元に戻すresetAllImagesプロシージャと違って、指定したカード(Button)だけ、裏の絵にします。buttonNoというのは、resetImageプロシージャを呼び出す側でセットされた値を受け取るための変数(引数)です。このbuttonNoを使って、どのカード(Button)かを判定して、「back.gif」をセットします。同様に、Button2~Button12の場合の処理もresetImageプロシージャに加えます。次に、countClickプロシージャを作ります。このプロシージャでは、次の処理を行います。どの位置のカード(Button)がタップされたのか、cardNoを受け取ります。cardNoで指定されたカードの状態cardStatListをチェック、「0」だったら、以下の処理を行い、それ以外であれば、何もしません。cardNoで指定されたカードの状態cardStatListを「1」にします。以下の処理は、countがいくつか、によって異なります。これから開こうとする枚数が1枚目(countが「1」)のとき、resetImageプロシージャを2回呼んで、開いているカードを元に戻します。どのカードが開いているかは、card1、card2で指定します。このcard1、card2は、それぞれ、1枚目に開いたカードの番号、2枚目に開いたカードの番号が入っています。カードを元に戻したら、新たにcard1に、これから開こうとするcardNoをセットし、countを「2」に進めます。これから開こうとする枚数が2枚目(countが「2」)のとき、card2に、これから開こうとするcardNoをセットし、countを「1」にします。カードの状態cardStatListを「0」、つまり、開けるカードにしておきます。それ以外(countが「0」のとき)は、最初なので、戻すカードはなく、card1に、これから開こうとするcardNoをセットし、countを「2」に進めます。countClickプロシージャを呼び出すのは、Button1.Click~Button12.Clickです。呼び出す時に、それぞれ、自身の番号を渡します。エミュレータで動きを確認してみましょう。次のカードを開くときに、今まで開いていたカードは元に戻ります。今開いているカードを次の1枚とすることもできます。おっ、2つの絵が、一致しましたね。この2つが同じ絵だと判定する処理はありません。次を開いたら、今開いているカードは閉じてしまいます。次回は、いよいよ最終回。2枚のカードの絵が一致していたら、開いたままにするようにします。「楽しく学べるAndroidプログラミング」など。万年筆やさんで、私に合うペン先を見てもらった。書けば書くほど快感が走る万年筆とは。クラウドに関する記事のまとめ(2020.2.17~2020.2.22)北九州漫画ミュージアム「関谷ひさしとスポーツマンガの時代」5月23日イベントオール私立で大学まで2500万円。ランボルギーニが買えるぜ。やっててよかった資金術とは。Backlogのカンバンボードは末恐ろしいAWSのシェアが落ち、Azureが延びて、4年後にAzureシェア32%、AWSは34%になる件SoftwareDesign3月号ヤマハ特集に執筆参加しました。富士ゼロックスのCocoDesk、溜池山王駅で体験してみたPython海外ニュース紹介第1回「そもそもPythonは誰のために作られたのか?その設計思想とは。「PoC死」の葬り方・後編オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。利用規約プライバシーポリシーお問い合わせアイティメディアからのお知らせプレスリリースメールサービスRSSTwitterITmediaはアイティメディア株式会社の登録商標です。