75才からのモバイルアプリ作成

MIT App Inventor 2 を使ったアプリ作成

MIT App Inventor 2で遊ぶ (Slot Machine 1)

2025-02-07 16:18:26 | 日記

まずはスロット・マシンを動かすだけの単純なもの。賭け金の設定など、次回はもう少し「賭け事」らしくしたい。

アプリ実行のビデオ:

スクリーン・デザイン:

tabletサイズでのスクリーンショット。

                         

ブロック・コード:

変数images:使用するimageのファイル・リストを格納。

3つのスロットにそれぞれシャッフルされたimageリストをセットするための変数

変数lengthOfImagesList:imageの個数を格納

画面初期化時に使用する3つのClockのintervalを100ミリ秒に念のため設定するとともにimageの個数を変数lengthOfImagesListにセット。(intervalはあらかじめデザイナーパネルの属性設定欄で設定ずみではあるが)

関数clearSymbolImages:imageブロックの画像の初期化

「Spin」ボタンをタップした時の動作:

関数clearSymbolImagesを実行してimageブロックを初期化=>3つのClockを有効に=>各スロットごとにimageリストをシャッフルしてそれぞれの変数にセット (Clockを有効にしたので3つのスロットが動き始めるが、シャッフルを先に実行するべきであった。)

各スロットごとにシャッフルされたimageを順番に表示させる。

各スロットの下に配置された「Stop1~3」ボタンをタップしたら、当該のClockを無効にしてimageを表示させる。

なお、3番目の「Stop」ボタンをタップした時は、関数checkImagesを実行して表示されている図柄から勝ち・負けを判定して結果を表示する。3つとも同じ図柄の場合は、「Perfect!」でそのほかは「Try again!」

関数checkImages:単にすべての図柄が同じかどうかをチェックしている。

 いまのところ、Stopボタンは、左から右へ順番にタップする必要があるので、任意の順番でタップできるようにしたい。また、冒頭でも触れた通り、「賭け事」の「賭ける」部分が欠如しているので追加を検討したい。

 


MIT App Inventor 2でもできるかやってみた (Small Apps 3 じゃんけんゲーム1)

2025-02-02 07:24:50 | 日記

今回は、「9 HOURS of Python Projects - From Beginner to Advanced」#3 - Rock, Paper, Scissors (Easy)。プログラミング初心者向けTutorialsには必ずあると言ってもよい「じゃんけんゲーム」。

これもシンプルなゲーム。

アプリ実行のビデオ:

スクリーン・デザイン:

左端の初期画面の中で下部に配置されているボタンのうち「3」をタップすれば右側の画面に遷移する。

                               

ブロック・コード:

初期画面で「3」をタップした時に関係するブロックのみ。

「3」をタップしたら、関数makeVAVisibleがパラメーターとして「1VA3」を受け取り実行。また、関数initButtonImageを実行して、関係のButton、Image、Labelを初期化。

3つのボタン(グー、チョキ、パー)のリストを変数buttonListに格納。

変数userPickにプレイヤーがタップしたボタンのindex (上記 buttonList) を格納。

generic componentである「when any Button.Click」eventを利用。

関数initButtonImageを実行し、関係のボタンimage、Labelなどを初期化。=>タップ(Click)されたボタンが、rockButton, scissorsButton, paperButtonのいずれかの場合、以下の通り当該ボタンのimageの背景を色付きのimageに設定する。

 >>>>> 

=>関数makecomputerChoiceを実行して、1、2、3の中から取り出したランダムな数字をindexとして変数gameImageList(下記)よりimageをcomputerChoiceImageにセットする=>関数judgeWinOrLoseを実行し勝ち負けを判定して、その判定に応じてwinOrLoseLabelに結果を表示する。

関数initButtonImageの内容

変数gameImageListに「グー、チョキ、パー」の画像ファイル名のリストを格納。

変数computerChoiceImage:コンピューターがピックアップした任意の数字にマッチする画像ファイルを格納。

変数computerPick:コンピューターがピックアップした任意の数字を格納。

関数makeComputerChoice:

1〜3の中の任意の数字を取得して変数computerPickに格納。gameImageListよりindexが変数computerPickの数字の画像ファイルを変数computerChoiceImageにセットし、同画像をcomputerChoiceImageに表示。

関数judgeWinOrLose:

以下のブロックの通り、ユーザーの選択とコンピューターの手を比較して、その結果に応じてwinOrLoseLabelに勝敗を表示。

「リセット」ボタンをタップした時の動作=>関係するButton、Image、Labelを初期化する関数initButtonImageを実行。

 

                                             *************************************************************************

前回までのブログ:

MIT App Inventor 2でもできるかやってみた  (Small Apps 2 数当てゲーム)

MIT App Inventor 2でもできるかやってみた  (Small Apps 1 略語クイズ)