⚛️ Atom 2 Smart Remote   🚚 FREE FEDEX SHIPPING from 397 USD   🌎 WORLDWIDE SHIPPING for 25 USD

Zeit Praxis

Anleitung

Du solltest den Umgang mit der Fernbedienung üben, damit du jede Zeit sicher eingeben kannst, ohne zuzuschauen. Das Zeit-Übungs-Minispiel hilft dir dabei.

Die App generiert eine zufällige Zeit, die Sie korrekt eingeben müssen. Wenn sie mit einem Browser verbunden ist, sagt sie Ihnen auch die Zeit mit einem Audio-Assistenten und gibt Ihnen eine Rückmeldung, ob Sie erfolgreich waren oder nicht.

Hier ist der MagiScript-Code, der einige der neuesten Sprachfunktionen verwendet:

function main() {
  ps.connect('*');
  ps.print('Practice');
  events.send('Are...You...Ready?', 'voice');
  generateTime();
}

let time = '';  // the time entered
let targetTime; // the time you have to enter

// prints the target time and the time input
function printFormattedTime() {
    ps.print(`${targetTime.text}\n<${time}>`);
}

function generateTime() {
    targetTime = parseTime(rand(12), rand(60));
    events.send(targetTime.text, 'voice');
    printFormattedTime();
}

let timeout = 0; // will contain a timeout ID
let mapping = [ // button layour
  '1', '2', '3',
  '4', '5', '6',
  '7', '8', '9',
  'g', '0', 'x'
];

function check() {
  clearTimeout(timeout); // don't trigger send
  if (time === '') return; // nothing to set

  let enteredTime = parseTime(time);

  // is it correct?
  if (targetTime.text === enteredTime.text) {
      ps.print('CORRECT');
      events.send('THAT IS CORRECT', 'voice');
      atom.vibrate('.');
      setTimeout(() => {
          time = '';
          generateTime();
      }, 200);
  } else {
      ps.print('NOPE');
      events.send('NOT...CORRECT...', 'voice');
      atom.vibrate('=');
      setTimeout(() => {
          printFormattedTime();
      }, 200);
  }
}

function onButtonClick(buttonId) {
  let key = mapping[buttonId];
  
  // generate a new time
  if (key === 'g') {
    time = '';
    generateTime();
    return;
  }
  
  // delete the last digit or add a new
  if (key === 'x') {
    if (strLen(time) > 0) time = strSub(time, 0, strLen(time) - 1);
  } else {
    time = time + key;
  }

  // delete the previous timer, and start a new with 4s
  clearTimeout(timeout);
  timeout = setTimeout(check, 2000);

  // display the times
  printFormattedTime();
}

// there are events coming from the SB Watch and the buttons of Atom
function onEvent(e) {
  console.log(e.value, e.type, e.source);
  if (e.type === 'connected' && e.source === 'ps:ble') {
      atom.vibrate('\'');
  }
  if (e.type === 'click' && e.source === 'atom:button') {
    onButtonClick(parseInt(e.value));
  }
}
ankreuzen