Implement lesson structure

This commit is contained in:
Zach Graham 2023-08-16 21:44:06 -05:00
parent 6f0fe9afad
commit 116a71fd24
1 changed files with 42 additions and 6 deletions

View File

@ -34,6 +34,12 @@ let mappings = {
'key_exclamation': [0, 0, 1, 0, 0, 0, 1, 0] 'key_exclamation': [0, 0, 1, 0, 0, 0, 1, 0]
} }
let lessons = [
"hello world!",
"artseyio is the best layout ever!",
"what's up all?"
];
async function artseyDraw() { async function artseyDraw() {
let keys = $('.keyboard-key'); let keys = $('.keyboard-key');
for (let i = 0; i < keys.length; i++) { for (let i = 0; i < keys.length; i++) {
@ -93,6 +99,24 @@ async function setNextLetter() {
let letterbox = $("#letterbox"); let letterbox = $("#letterbox");
if (currentLetterIndex > currentString.length-1) if (currentLetterIndex > currentString.length-1)
return; return;
if (currentLetterIndex === currentString.length-1) {
console.log("end of string");
await hideKeyboard();
await sleep(1000);
await setTypingText("Well done! Let's try another.")
await sleep(1000);
if (++currentLessonIndex > lessons.length-1)
currentLessonIndex = 0;
currentString = lessons[++currentLessonIndex];
await setTypingText(currentString);
currentLetterIndex = -1;
await artseyReset();
await showKeyboard();
// currentLetterIndex = -1;
// await artseyReset();
// await setTypingText(lessons['2']);
// currentLetter = currentString.charAt(0);
}
let prevIndex = currentLetterIndex-1; let prevIndex = currentLetterIndex-1;
if (prevIndex >= -1 || currentLetterIndex === 0) if (prevIndex >= -1 || currentLetterIndex === 0)
await unHighlightLetter(letterbox.children()[currentLetterIndex]); await unHighlightLetter(letterbox.children()[currentLetterIndex]);
@ -110,17 +134,31 @@ async function showWrongInput() {
}) })
} }
async function showKeyboard() {
$("#keyboard").animate({opacity: 1.0}, 1000, function () {
console.log("keyboard visible!");
});
}
async function hideKeyboard() {
$("#keyboard").animate({opacity: 0}, 1000, function () {
console.log("keyboard hidden!");
});
}
let currentLetterIndex = -1; let currentLetterIndex = -1;
let currentLessonIndex = 0;
let currentLetter = ''; let currentLetter = '';
let currentString = "hello world"; let currentString = lessons[0];
let currentMapping = [0, 0, 0, 0, 0, 0, 0, 0]; let currentMapping = [0, 0, 0, 0, 0, 0, 0, 0];
$(document).ready(async function () { $(document).ready(async function () {
$("#startButton").on("click", async function () { $("#startButton").on("click", async function () {
$('#startButton').hide(); $('#startButton').hide();
$('body').on("keyup", (async function(e) { $('body').on("keyup", (async function(e) {
console.log("current letter: " + currentLetter + " typed letter: " + String.fromCharCode(e.which).toLowerCase()); let keycode = (e.key ? e.key : e.which)
if (currentLetter === String.fromCharCode(e.which).toLowerCase()) console.log("current letter: " + currentLetter + " typed letter: " + String.fromCharCode(keycode.toLowerCase().charCodeAt(0)));
if (currentLetter === String.fromCharCode(keycode.toLowerCase().charCodeAt(0)))
await setNextLetter(); await setNextLetter();
else else
await showWrongInput(); await showWrongInput();
@ -130,8 +168,6 @@ $(document).ready(async function () {
await setTypingText(currentString); await setTypingText(currentString);
await sleep(500); await sleep(500);
await setNextLetter(); await setNextLetter();
$("#keyboard").animate({opacity: 1.0}, 1000, function () { await showKeyboard();
console.log("keyboard visible!");
});
}) })
}); });