iT邦幫忙

2022 iThome 鐵人賽

DAY 16
0

第三篇 簡易計算機

藉由第二篇已讓大家認識如何用運算的積木Javascript的語法使輸入的數值自動做計算
本篇會分享如何將+ - * / 變成選單,像計算機一樣去計算
,並使用積木Javascript帶領大家一步一步完成。

成品效果

圖片



製作教學

  • 使用積木

1.在類別中選擇擴展
圖片


2.在搜尋框貼上連結https://github.com/riknoll/arcade-custom-menu 點選項目即可擴展
圖片


3.建立兩個變數後,並把變數XXX設為0詢問' '回答的數字 組合並放入當啟動時積木
圖片


4.選擇擴展BlockMenu中的show grid menu fullscreen with option 積木 放入到 "當啟動時" 積木中,並將fullsceen改成bottom half ,並將後面的陣列輸入+ - * /
圖片


5.選擇擴展BlockMenu中的on menu option selected積木,並將如果()那麼() 積木放入裡面
圖片


6.建立( )=( )積木在如果()那麼()積木上,然後將on menu option selected積木上的option移動到( )=( )積木第一個空格,第二個空格輸入"+"
圖片


7.在文字類別中選擇用(" ")積木,然後放入到( )=( )積木的第二個空格並輸入"+"
圖片


8.選擇擴展BlockMenu中的close menu放入如果()那麼()積木中,並建立一個名為answer的變數,然後將answer設為變數a + 變數b
圖片


9.再放入如果()那麼()否則()積木在如果()那麼()積木中,然後再條件那一個放入answer=0,在那麼()中放入遊戲類別中顯示提示'' 積木,第一個空格輸入"加法答案為",第二個空格輸入為"0"
補充:詳細原因請參考第二篇
圖片


10.在否則()中放入顯示提示''積木,並在第一個空格輸入"加法答案為",第二個空格則放入變數answer
圖片


11.在如果()那麼()積木中放入迴圈類別中重複判斷false執行積木,然後將控制器類別中的A鍵被按住?積木放入判斷格中,並將遊戲類別中遊戲重設積木放入執行格中,其他運算依此類推

圖片


  • 使用JAVASCRIPT

1.建立三個變數並設為0,然後要求變數var1、var2會要求輸入長度為2的數值

let var1 = 0
let var2 = 0
let answer  = 0
var1 = game.askForNumber("", 2)
var2 = game.askForNumber("", 2)

2.建立選單的陣列

let var1 = 0
let var2 = 0
let answer  = 0
var1 = game.askForNumber("", 2)
var2 = game.askForNumber("", 2)
blockMenu.showMenu([
"+",
"-",
"*",
"/"
], MenuStyle.Grid, MenuLocation.BottomHalf)

3.blockMenu.onMenuOptionSelected(function (option, index) {}可以讀取選擇的選項(option或index)、 blockMenu.closeMenu()為關閉選單

let var1 = 0
let var2 = 0
let answer  = 0
var1 = game.askForNumber("", 2)
var2 = game.askForNumber("", 2)
blockMenu.showMenu([
"+",
"-",
"*",
"/"
], MenuStyle.Grid, MenuLocation.BottomHalf)

blockMenu.onMenuOptionSelected(function (option, index) {
    if (option == "+") {
        blockMenu.closeMenu()
    }
}

4.while(){}為一直重複判斷

let answer = 0
let var2 = 0
let var1 = 0
var1 = game.askForNumber("", 2)
var2 = game.askForNumber("", 2)
blockMenu.showMenu([
"+",
"-",
"*",
"/"
], MenuStyle.Grid, MenuLocation.BottomHalf)

blockMenu.onMenuOptionSelected(function (option, index) {
    if (option == "+") {
        blockMenu.closeMenu()
        answer = var1 + var2
        if (answer == 0) {
            game.splash("加法答案為", "0")
        } else {
            game.splash("加法答案為", answer)
        }
        while (controller.A.isPressed()) {
            game.reset()
        }
    }
    if (option == "-") {
        blockMenu.closeMenu()
        answer = var1 - var2
        if (answer == 0) {
            game.splash("減法答案為", "0")
        } else {
            game.splash("減法答案為", answer)
        }
        while (controller.A.isPressed()) {
            game.reset()
        }
    }
    if (option == "*") {
        blockMenu.closeMenu()
        answer = var1 * var2
        if (answer == 0) {
            game.splash("乘法答案為", "0")
        } else {
            game.splash("乘法答案為", answer)
        }
        while (controller.A.isPressed()) {
            game.reset()
        }
    }
    if (option == "/") {
        blockMenu.closeMenu()
        answer = var1 / var2
        if (answer == 0) {
            game.splash("除法答案為", "0")
        } else {
            game.splash("除法答案為", answer)
        }
        while (controller.A.isPressed()) {
            game.reset()
        }
    }
})

完成範例連結

作者:蔡宇倫

上一篇
Arcade再進化-空島跳躍者(3)
下一篇
Arcade也能學演算法Ouo!? 演算法遊戲!(3)
系列文
玩game學打code。街機程式設計再進化。微軟Arcade30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言