記錄一下:
App Inventor學習記錄187-麻將計分器,小睹怡情、先算積分、一次付清、不用找零
這次範例的完成品如下。
進入程式之後,可以讀取之前的記錄或是開新的一局。
開新局的話,就要重新輸入參賽人員,一定要滿 4個人才能新局。人員設定完成之後,就可以選擇要打多大。接下來就是輸入每一局大家的得分後,再送出資料儲存檔案。
送出資料的時候,會先判斷一下單局的分數加起來是不是等於 0。
也可以檢查每一局的得分資料。
screen 1畫面編排的部份如下。
圖片和按鈕的組合。
screen 1的程式方塊如下。
按鈕點擊後,開啟 setting這個螢幕。
setting螢幕的畫面編排會像這樣。
嗯,在一個螢幕中塞了挺多東西的,所以等一下的程式中,會看到很多配置開來開去關來關去的設定。雖然這樣做挺麻煩的,但好處就是處理的速度比較快。
setting全部的程式方塊如下。
第 1部份的程式方塊記錄。
清單_清單人員,用來放這一局參賽的 4個人員名稱。
清單_清單東、南、西、北,這 4個清單,放的是每一局每個參賽人員的得分。
變數_底金額,變數_台金額,下拉式選擇完成選擇後,就會設定到這兩個變數。
清單_全部的資料,就是全部的資料。
變數_歷史記錄開啟變數,用一個變數來控制某一個按鈕的多種用途。
第 2部份的程式方塊記錄。
清單_底清單、清單_台清單,這兩個清單放的就是打麻將的時候,要選擇的金額大小。
我記得多年前,我們這一代都開始在工作,第一次過年打麻將的時候,我們打的金額是底 10/台 5,一直打到現在慢慢的增加,已經打到底 50/台 10,今年過年打下來,輸贏都有好幾百塊了。
第 3部份的程式方塊記錄。
清單_單次金額標籤群組,這裡放的是用來顯示每一單局輸贏的標籤元件。
第 4部份的程式方塊記錄。
有兩個地方要顯示參賽人員的名稱,所以先把標籤元件建成清單。
第 5部份的程式方塊記錄。
建立錢增加程式,加入參數_那個標籤。
我們希望按鈕按下的時候,先增加底的金額,再增加台的金額,所以這裡可以分成 4種情形。
當那個標籤的值=0,按下按鈕時,數值增加變數_底金額的值。
當那個標籤的值大於等於變數_底金額的值時,按下按鈕時,數值增加變數_台金額的值。
當那個標籤的值等於負的變數_底金額的值時,按下按鈕時,數值增加變數_底金額的值。
當那個標籤的值小於負的變數_底金額的值時,按下按鈕時,數值增加變數_台金額的值。
這 6部份的程式方塊記錄。
建立錢減少程式。
這個部份請參考上一部份的記錄。
第 7部份的程式方塊記錄。
建立單次資料加到清單中並計算各項累計金額程式。
在這個程式中,我們會先把每一局的得分的值,分別加入到東西南北的 4個清單中。
然後,再把這每一個清單中,每一個的值全部加起來之後,再顯示到東西南北的 4個標籤上。
第 8部份的程式方塊記錄。
建立單次金額加總程式。
把這 4個標籤的值加起來,這個用於判斷要加入清單的金額對不對。
舉個例,不管誰輸誰贏,這 4個值每一局加起來都要等於 0才是正常的。如果不等於 0的話,就代表計分的時候計算錯誤了。
第 9部份的程式方塊記錄。
建立清單顯示器更新程式。
更新這 4個清單的元素到最新的狀態。
第 10部份的程式方塊記錄。
建立資料儲存程式。
把這 7個項目用 make a list,建立一個清單,然後儲存在 tinydb中,全部的資料這個標籤下。
第 11部份的程式方塊記錄。
建立資料清除程式。
我們先把清單設定成空清單,把變數的值設為 0,把要顯示資料的標籤的文字也設為 0,然後 call tinydb.clear tag,呼叫微型資料庫清除全部的資料這個標籤下的資料。
第 12部份的程式方塊記錄。
程式一開始的時候,會呼叫微型資料庫去取得全部的資料這個標籤下的資料,如果取得的資料不是空白的話,就跳出對話框 4,問我們要不要回復之前的資料。
因為麻將一局打下來,快的話也要 3~5分鐘,慢的就話就不一定了。所以程式不太可能一直開著,所以儲存目前積分進度和回復之前進度的功能是非常有必要的。
第 13部份的程式方塊記錄。
如果按下對話框 4中的是的話,就回復相對應的資料。
如果按下對話框 4中的否的話,就開啟新局。
第 14部份的程式方塊記錄。
資料送出按鈕按下之後,會先呼叫單次金額加總這個程式並判斷它的值是不是等於 0。
不等於 0,就跳出對話框,提示訊息如上。
如果等於 0的話,就把資料給儲存起來。
第 15部份的程式方塊記錄。
戰況記錄按鈕按下之後,切換要顯示的垂直配置。
補充一下,我們設定某個垂直配置的可見性的時候,會連代垂直配置下的元件一起顯示或是顯示。所以在拉元件之前,建議我們都先拉一個不管是垂直或是水平配置,再把元件放進去。這樣後面在調整可見性的時候會比較方便。
第 16部份的程式方塊記錄。
呼叫資料清除程式。
第 17部份的程式方塊記錄。
一樣是切換要顯示的相關配置。
第 18部份的程式方塊記錄。
按鈕按下之後,呼叫錢增加或是錢減少程式,那個標籤的參數,就放進要處理的標籤元件。
第 19部份的程式方塊記錄。
這個按鈕是出場人員確認按鈕。
既然要確認出場人員,自然要判斷是不是有輸入 4個人員的名稱。
如果人不夠,就彈出人不夠的訊息。
如果人數有滿 4個人的話,就把參數人員列在對話框 1中,進行下一步動作。
第 20部份的程式方塊記錄。
對話框 1中按下是按鈕的話,就會顯示選擇底數和台數的下拉式選單。
第 21部份的程式方塊記錄。
按鈕 2(開打並記錄得分)按下之後,判斷是不是已經選擇好底多少,台多少,然後跳出對話框 2確認是不是要打這麼大。
過年一年一次,所以我們家打麻將的頻率也是一年一次,打太大偒感情也傷錢包,所以我們都打的很小。今年打最大,底 50,一台 10塊。
第 22部份的程式方塊記錄。
下拉式選單 1是設定底金額用的選單。選擇完成之後 call spinner 2.display dropdown直接打開下拉式選單 2,選擇 1台多少錢。
第 23部份的程式方塊記錄。
這個部份跟第 21部份的說明是相同的。
第 24部份的程式方塊記錄。
對話框 2點擊是的話,就顯示對應的垂直配置。
第 25部份的程式方塊記錄。
這個部份是關閉程式
全部的程式方塊都簡單說明過了,建議大家試著做一次,就會用的越來越熟。
但如果不想要重新拉程式方塊,或要需要範例 aia檔的話,請前往第 2頁哦!