Skip to content

Commit fe68dc8

Browse files
committed
Add the stage 15 check
1 parent 9a31876 commit fe68dc8

1 file changed

Lines changed: 67 additions & 1 deletion

File tree

stageCheck.js

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
'stages/11': stage11,
2121
'stages/12': stage12,
2222
'stages/13': stage13,
23-
'stages/14': stage14
23+
'stages/14': stage14,
24+
'stages/15': stage15
2425
};
2526

2627
demoDoc_ = demo.contentDocument;
@@ -1058,6 +1059,71 @@
10581059

10591060
}
10601061

1062+
/**
1063+
* 判斷超音波的距離,會顯示在互動區及點矩陣上,完成此操作則過關
1064+
*/
1065+
function stage15() {
1066+
var showEl = demoDoc_.querySelector('#show');
1067+
var matrixs = engine_.list().matrix;
1068+
var ultrasonics = engine_.list().ultrasonic;
1069+
var matrixNumber = JSON.parse('["0000fe8282fe0000", "00000082fe800000","0000f292929e0000","0000929292fe0000","00001e1010fe0000","00009e9292f20000","0000fe9292f20000","0000020202fe0000","0000fe9292fe0000","00009e9292fe0000","82fe8000fe82fe00","82fe800082fe8000","82fe8000f2929e00","82fe80009292fe00","82fe80001e10fe00","82fe80009e92f200","82fe8000fe92f200","82fe80000202fe00","82fe8000fe92fe00","82fe80009e92fe00","f2929e00fe82fe00","f2929e0082fe8000","f2929e00f2929e00","f2929e009292fe00","f2929e001e10fe00","f2929e009e92f200","f2929e00fe92f200","f2929e000202fe00","f2929e00fe92fe00","f2929e009e92fe00","9292fe00fe82fe00","9292fe0082fe8000","9292fe00f2929e00","9292fe009292fe00","9292fe001e10fe00","9292fe009e92f200","9292fe00fe92f200","9292fe000202fe00","9292fe00fe92fe00","9292fe009e92fe00","1e10fe00fe82fe00","1e10fe0082fe8000","1e10fe00f2929e00","1e10fe009292fe00","1e10fe001e10fe00","1e10fe009e92f200","1e10fe00fe92f200","1e10fe000202fe00","1e10fe00fe92fe00","1e10fe009e92fe00","9e92f200fe82fe00","9e92f20082fe8000","9e92f200f2929e00","9e92f2009292fe00","9e92f2001e10fe00","9e92f2009e92f200","9e92f200fe92f200","9e92f2000202fe00","9e92f200fe92fe00","9e92f2009e92fe00","fe92f200fe82fe00","fe92f20082fe8000","fe92f200f2929e00","fe92f2009292fe00","fe92f2001e10fe00","fe92f2009e92f200","fe92f200fe92f200","fe92f2000202fe00","fe92f200fe92fe00","fe92f2009e92fe00","0202fe00fe82fe00","0202fe0082fe8000","0202fe00f2929e00","0202fe009292fe00","0202fe001e10fe00","0202fe009e92f200","0202fe00fe92f200","0202fe000202fe00","0202fe00fe92fe00","0202fe009e92fe00","fe92fe00fe82fe00","fe92fe0082fe8000","fe92fe00f2929e00","fe92fe009292fe00","fe92fe001e10fe00","fe92fe009e92f200","fe92fe00fe92f200","fe92fe000202fe00","fe92fe00fe92fe00","fe92fe009e92fe00","9e92fe00fe82fe00","9e92fe0082fe8000","9e92fe00f2929e00","9e92fe009292fe00","9e92fe001e10fe00","9e92fe009e92f200","9e92fe00fe92f200","9e92fe000202fe00","9e92fe00fe92fe00","9e92fe009e92fe00"]');
1070+
var data = [];
1071+
var isPassed = false;
1072+
var curDistance;
1073+
1074+
if (!matrixs.length) return;
1075+
if (!ultrasonics.length) return;
1076+
1077+
ultrasonics.forEach(function (us) {
1078+
us.setSendHandler(send);
1079+
});
1080+
1081+
matrixs.forEach(function (matrix) {
1082+
matrix.state(state);
1083+
});
1084+
1085+
function send(distance) {
1086+
if (!curDistance) {
1087+
curDistance = Number(distance);
1088+
return;
1089+
}
1090+
1091+
if (curDistance !== Number(distance)) {
1092+
setTimeout(checking, 300);
1093+
curDistance = Number(distance);
1094+
}
1095+
}
1096+
1097+
function state(hex) {
1098+
data.push(hex);
1099+
}
1100+
1101+
function checking() {
1102+
if (isPassed) return;
1103+
if (curDistance !== Number(showEl.textContent)) return;
1104+
if (curDistance === matrixNumber.indexOf(data.slice().pop())) {
1105+
isPassed = true;
1106+
}
1107+
1108+
if (isPassed) {
1109+
checkOver();
1110+
alert('第 15 關 過關!');
1111+
}
1112+
1113+
}
1114+
1115+
function checkOver() {
1116+
ultrasonics.forEach(function (us) {
1117+
us.setSendHandler(null);
1118+
});
1119+
1120+
matrixs.forEach(function (matrix) {
1121+
matrix.state(null);
1122+
});
1123+
}
1124+
1125+
}
1126+
10611127
Code.stageCheck = {
10621128
init: init
10631129
};

0 commit comments

Comments
 (0)