Vinnaren i pepparkakshustävlingen!
2018-03-23, 10:34
  #1
Medlem
Worldnatures avatar
Hej! sitter här på ett litet problem nu

Kod:
// intervaltick
let timeleft = 20

function intervalTick () {
  timeleft--
// totaltime++
  document.getElementById('countdowntimer').textContent = timeleft
  if (timeleft <= 0) {
    let lose = 'Tiden har runnit ut, du förlorade'
    innerHTML = lose
  }
}

Kod:
async function getNextQ (event) {
  let question = await myQuiz()
  // tömmer savren och frågorna
  svar.innerHTML = ''
  questions.innerHTML = ''
  // skriver ut frågan
  let questionText = question.question
  let qDiv = document.querySelector('#questions')
  let quest = document.createElement('p')
  quest.innerHTML = questionText
  qDiv.appendChild(quest)

  answerURL = question.nextURL
  // känner av om det är finns ett eller fler svarsalternativ
  if (question.alternatives === undefined) {
    let fAnswer = document.createElement('input')
    fAnswer.setAttribute('type', 'text')
    fAnswer.setAttribute('id', 'inputAnswer')
    fAnswer.setAttribute('name', 'inputAnswer')
    svar.appendChild(fAnswer)
  } else {
    for (let alt in question.alternatives) {
      let rButton = document.createElement('input')
      let lButton = document.createElement('label')
      rButton.setAttribute('type', 'radio')
      rButton.setAttribute('value', `${alt}`)
      rButton.setAttribute('id', `${alt}`)
      rButton.setAttribute('name', 'radioAnswer')
      lButton.setAttribute('for', `${alt}`)
      lButton.textContent = `${question.alternatives[alt]}`
      svar.appendChild(rButton)
      svar.appendChild(lButton)
    }
  }
}

detta är min kod som skriver ut frågorna och svaren med api. Försöker ny bygga en timer, där man ska ha 20 sekunder på sig på varje fråga att svara, har löst så att den räknar ner från 20 till 0. Men efter man svarat på första frågan och det är rätt svar, så ska tiden börja om på 20 igen och räkna ner till 0, och likadant på andra och tredje osv.

Vad för fel är det jag gör? är rätt ny inom detta med.
Citera
2018-03-23, 11:10
  #2
Medlem
Koden innehåller ju ingen mekanism för att svara på frågan? Anropas getNextQ() bara om rätt svar har levererats? Då kan du ju bara sätta timeleft = 20 när frågan har presenterats.
Citera
2018-03-23, 11:15
  #3
Medlem
Worldnatures avatar
Citat:
Ursprungligen postat av Nich
Koden innehåller ju ingen mekanism för att svara på frågan? Anropas getNextQ() bara om rätt svar har levererats? Då kan du ju bara sätta timeleft = 20 när frågan har presenterats.


kanon, löste det. tackar!
Citera
2018-03-23, 14:49
  #4
Medlem
Du måste ju tala om för datorn vad den ska göra hela tiden, säger du inte till den att sätta om tiden till 20 så kommer den inte göra det.

"Köp 1 paket mjölk, om de har ägg, köp 10."
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback