玩法:
有三個杯子,玩家放一顆球到杯子內,按下micro:bit 的A按鈕,程式會隨機從三個杯子中選取一個杯子,將杯子倒扣,如果押中,那玩家放入杯中的球便會被倒出來。根據機率,玩家獲勝的機率將會是三分之一。而個程式便是要展示,如何操控機率。
為了展示原來遊戲是可以操控輸贏的,我撰寫了三個功能
- 按下A鍵 --->玩家必勝
- 按下B鍵 --->莊家必勝
- 同時按下 A+B鍵 ---> 莊家勝率較高
接法:
每個杯子分別裝上一個伺服馬達與循跡感應模組。SG90伺服馬達的棕色線接地、紅色線接VCC、而黃色線則是訊號線。
三個伺服馬達分別接到Micro:bit擴充板的 P8、p12、P13角位
三個巡機模組的A0角位,分別接到micro:bit擴充板的P0、P1、P2角位。
我先將伺服馬達旋轉到150度後再裝上杯子,將杯口朝上,經過測試,如伺服馬達找到40度角便能倒出杯內的物體。所以程式啟動時先設定起始角度為150度,傾斜角度為40度,並將三個伺服馬達轉到起始角度的位置(也就是杯口朝上)。在無限次圈內持續讀取循跡模組傳回的數值,並存放在變數ang0、ang1和ang2。
程式又三個功能,按下A按鈕執行玩家必贏程序、按下B按鈕執行莊家必贏程序、而在按下A+B按鈕事件內,我們可以設定玩家的獲勝機率,例如在這裡電腦會隨機從1倒10選取一個數字,如果數字大於等於8便執行莊家必贏程序,也就是說,我們設定了莊家獲勝機率是十分之八,而玩家的獲勝機率是十分之二。知道了吧!這就是博弈......
清空杯中物函式是為了清空三個杯子內的球。當然,倒完後要讓杯子歸位,杯口朝上。