微信小程式 之 初體驗(24點遊戲)
根據網上的教程,申請了小程式開發,試著玩玩哈。
主要熟悉了一下小程式開發,熟悉了下各個元件
主要寫了個九九乘法表、和24點計算
介面
{ "pages": [ "page/index/index", "page/poker/poker" ], "window": { "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#787878", "navigationBarTitleText": "嘀嘀打仁", "navigationBarTextStyle":"white" }, "tabBar": { "color": "#dddddd", "selectedColor": "#3cc51f", "borderStyle": "black", "backgroundColor": "#787878", "list": [{ "pagePath": "page/index/index", "text": "首頁", "iconPath": "image/wechat.png", "selectedIconPath": "image/wechatHL.png" } ,{ "pagePath": "page/poker/poker", "text": "24點", "iconPath": "image/wechat.png", "selectedIconPath": "image/wechatHL.png" }] } }
注意點:
1.引用js
1.1在工具js的中加
module.exports = {
calCommonExp: calCommonExp
}
calCommonExp 是對應的方法
1.2 引用的js中
var rpn = require('../../util/rpn.js');//引用js, 執行表示式js 代替eval
1.3使用
ret = rpn.calCommonExp(_exp);//計算表示式
2.在小程式中不能使用 eval 在網上找到 用rpn.js代替,具體其中程式碼沒有細看哈
function isOperator(value) { var operatorString = '+-*/()×÷'; return operatorString.indexOf(value) > -1; } function getPrioraty(value) { if(value == '-' || value == '+') { return 1; } else if(value == '*' || value == '/' || value == '×' || value == '÷' ) { return 2; } else{ return 0; } } function prioraty(v1, v2) { return getPrioraty(v1) <= getPrioraty(v2); } function outputRpn(exp) { var inputStack = []; var outputStack = []; var outputQueue = []; var firstIsOperator = false; exp.replace(/\s/g,''); if(isOperator(exp[0])){ exp = exp.substring(1); firstIsOperator = true; } for(var i = 0, max = exp.length; i < max; i++) { if(!isOperator(exp[i]) && !isOperator(exp[i-1]) && (i != 0)) { inputStack[inputStack.length-1] = inputStack[inputStack.length-1] + exp[i] + ''; } else { inputStack.push(exp[i]); } } if(firstIsOperator) { inputStack[0] = -inputStack[0] } while(inputStack.length > 0) { var cur = inputStack.shift(); if(isOperator(cur)) { if (cur == '(') { outputStack.push(cur); } else if (cur == ')') { var po = outputStack.pop(); while(po != '(' && outputStack.length > 0) { outputQueue.push(po); po = outputStack.pop(); } } else { while(prioraty(cur,outputStack[outputStack.length - 1]) && outputStack.length > 0) { outputQueue.push(outputStack.pop()); } outputStack.push(cur) } } else { outputQueue.push(Number(cur)); } } if(outputStack.length > 0){ while (outputStack.length > 0) { outputQueue.push(outputStack.pop()); } } return outputQueue; } function calRpnExp(rpnArr) { var stack = []; for(var i = 0, max = rpnArr.length; i < max; i++) { if(!isOperator(rpnArr[i])) { stack.push(rpnArr[i]); } else { var num1 = stack.pop(); var num2 = stack.pop(); if(rpnArr[i] == '-') { var num = num2 - num1; } else if(rpnArr[i] == '+') { var num = num2 + num1; } else if(rpnArr[i] == '*' || rpnArr[i] == '×') { var num = num2 * num1; } else if(rpnArr[i] == '/' || rpnArr[i] == '÷') { var num = num2/num1; } stack.push(num); } } return stack[0]; } function calCommonExp(exp) { var rpnArr = outputRpn(exp); return calRpnExp(rpnArr) } module.exports = { calCommonExp: calCommonExp }
3. 小程式中的input框 寬度樣式問題。
這4張牌是隨機生成,也可以手動輸入,
在寫樣式時,直接給input 設定width:23%; 發現整體的input是隻有23%的框,但是,可輸入區域也是可見區域的23%;且輸入區域在最左邊,不在中間。
後面改成輸入框外面先套一個view ,view的寬度是23%;
4.支援水平翻轉,但是在安卓機(魅藍3)上測試有時候不行。其它機子沒測試過
翻轉動畫js
//重新整理四張撲克
function refreshPoker(that) {
//把poker牌還原到原始狀態
that.setData({
pokerList:["","","",""]
})
var animation = wx.createAnimation({
duration: 2000,
timingFunction: 'ease',
})
animation.rotateY(-180).step({duration:0})
that.setData({
animationPoker:animation.export()
})
//重置4張牌
for (var i = 0; i < 4; i++) {
var randPoker = Math.floor(Math.random() * 13) + 1;
if (randPoker == 11) {
randPoker = "J";
} else if (randPoker == 12) {
randPoker = "Q";
} else if (randPoker == 13) {
randPoker = "K";
}
pokerArray[i] = randPoker;
}
//翻牌動畫
animation.rotateY(-90).step({duration:1000});//前面90度不顯示資料
that.setData({
animationPoker:animation.export()
})
//轉了了90度增加資料
setTimeout(function(){
that.setData({
pokerList: pokerArray
})
},300);
//後面90度旋轉
animation.rotateY(0).step({duration:1000});
that.setData({
animationPoker:animation.export()
})
}
demo下載 《--
相關推薦
微信小程式 之 初體驗(24點遊戲)
根據網上的教程,申請了小程式開發,試著玩玩哈。 主要熟悉了一下小程式開發,熟悉了下各個元件 主要寫了個九九乘法表、和24點計算 介面 { "pages": [ "page/index/index", "page/poker/
共享單車微信小程式之初體驗
從Sensor裡面讀取經緯度,顯示對應的地理位置資訊 //index.wxml //相關屬性:latitude(緯度),longitude(經度) <map id='mymap' latitude='{{lat}}' longitude='{{l
Slog68_微信雲開發開啟全棧時代!(微信小程式之雲開發-全棧時代1)
ArthurSlog SLog-68 Year·1 Guangzhou·China Sep 11th 2018 常道無名 唯德以顯之 至德無本 順道而成之 禍福無門 惟人自召 善惡之報 如影隨形 開發環境MacOS(High Sierra 10.13.5)
Slog69_實現一個帶引數的雲函式GET!(微信小程式之雲開發-全棧時代2)
ArthurSlog SLog-69 Year·1 Guangzhou·China Sep 11th 2018 禍兮福之所倚 福兮禍之所伏 開發環境MacOS(High Sierra 10.13.5) 需要的資訊和資訊源: 前言 騰訊推出“雲開發”概
微信小程式之人臉識別(2)
上一篇部落格已經將人臉的照片上傳到了人臉庫,接下來需要做的就是登入時拍照儲存並與人臉庫的圖片進行對比,當score大於95即識別成功!下面是wxml程式碼,主要用的就是camera元件,點選按鈕拍照並儲存,利用開關來控制使用前置還是後置攝像頭。<!--pages/cam
微信小程式開發——初體驗
放假在家無聊,稍微研究研究小程式 註冊賬號及配置 首先需要去“微信公眾平臺”註冊一個微信小程式開發賬號 注意上面四個中只能選擇一個,輸入要填的資訊之後一直確認確認就可以了。 登入後,可以開啟標題欄中的“文件”,第一欄的“介紹”,按照這個介紹可
微信小程式開發初體驗--教你開發小程式
微信小程式 微信小程式面世以來受到的關注頗多,直到最近我才動手嘗試進行了小程式的開發,總體上感覺還是不錯的,有一點不適應的就是要擺脫Web APP開發對DOM的操作。在這裡我就把我是如何利用API開發微信小程式的過程寫成教程,教大家快速上手體驗一次微信小程式的開發。 補充
Slog71_選取、上傳和顯示本地圖片GET !(微信小程式之雲開發-全棧時代3)
ArthurSlog SLog-71 Year·1 Guangzhou·China Sep 12th 2018 道常無為而無不為 開發環境MacOS(High Sierra 10.13.5) 需要的資訊和資訊源: 前言 ”雲開發
微信小程式按鈕去邊框(button去邊框)
微信小程式中的button元件預設自帶邊框,而且我們常規的給button設定border: none;或者border: 0;並不能去掉邊框。 無論是內聯樣式還是外聯樣式表都不好使。這是因為微信小程式的button元件的邊框並不在button上,而是在button::after上
微信小程式自定義導航(相容各種手機)
瞭解小程式預設導航 如上圖所示,微信導航分為兩部分,第一個部分為statusBarHeight,劉海屏手機(iPhone X,小米8等)會比其他的手機高很多,第二部分為titleBarHeight,安卓和IOS的高度不同,但是IOS高度是一樣的,IOS高度是一樣的, 所以我們要實現一個相容不同手機的導
微信小程式自定義日曆(帶價格顯示)
JS程式碼: var Moment = require("../../utils/moment.js"); var DATE_YEAR = new Date().getFullYear(); var DATE_MONTH = new Date().getMonth()
微信小程式----scroll-view元件(MUI索引列表)滾動動畫
效果圖 實現原理 利用scroll-view的scroll-into-view屬性進行定位; 利用scroll-view的scroll-with-animation屬性實現滾動動畫
微信小程式之間跳轉(無繫結)
首頁咱們先說下小程式跳轉到小程式/小遊戲的條件: 開啟同一公眾號下關聯的另一個小程式。(注:必須是同一公眾號下,而非同個 open 賬號下) 基於這個條件,小程式要想跳到一個沒有關聯的小程式或者小遊戲是不可能的。 但如果有一箇中轉站和其他小程式和小遊戲繫結,某個小程式可
微信小程式之:雲開發初體驗--致我的第一個小程式
背景:一直關注微信小程式的發展,看著小程式一步步完善,一步步壯大,心裡癢癢,也想做一個自己的微信小程式,但是苦於只會前端,不會服務端,所以想法一直被卡著。現在小程式有了雲開發,很輕鬆實現後端功能,寫後端跟寫前端沒啥區別,真的是前端小夥伴們的福音啊。 經過幾個晚上的熬夜奮戰,我的第一個微信小程式正式
微信小程式之微信登陸 —— 微信小程式教程系列(20)
簡介: 微信登陸,在新建一個微信小程式Hello World專案的時候,就可以看到專案中出現了我們的微信頭像,其實這個Hello World專案,就有一個簡化版的微信登陸。只不過是,還沒有寫入到咱們自家的後臺中而已。 新建一個Hello World專案,找到a
微信小程式之側邊欄滑動實現(附完整原始碼)
目錄 一、效果圖 二、原理解析 三、原始碼 四、專案下載 同類文章推薦: 更多幹貨關注公眾號: 一、效果圖 講什麼都不如直接上效果圖好,所以我們先來看下實現效果如何。 通過滑動螢幕,或者點選左上角的圖示按鈕,都能實現側邊欄的劃出效果。 &nb
微信小程式之微信支付C#後臺(統一下單)
#region 生成簽名 /// <summary> /// 獲取簽名資料 ///</summary> /// <param name="strParam"></param> /// <param name="key"></par
【微信小程式控制硬體②】 開始微信小程式之旅,匯入小程式Mqtt客戶端原始碼,實現簡單的驗證和通訊於伺服器!(附帶原始碼)
本博文由熱愛分享熱愛技術的半顆心臟原創,非官方人員、非組織名義編寫,博文如有不對或侵犯您的權益,請及時留言,第一時間糾正! 一、前言; 繼續我們的小程式控制智慧硬體(包括esp8266)學
微信小程式之——自定義分享按鈕(完整版)
1.宣告 onShareAppMessage 函式 onShareAppMessage() { return { title: '彈出分享時顯示的分享標
微信小程式之登入頁例項 —— 微信小程式實戰系列(5)
提供一個登入頁的案例,供同學們使用 專案效果圖: 目錄結構: 圖片資源: name.png key.png loginLog.jpg login.wxml: <view c