Загрузка данных


namespace SpriteKind {
    export const Coin = SpriteKind.create()
    export const Basket = SpriteKind.create()
    export const Text = SpriteKind.create()
}
function startDrop () {
    clearGame()
    scene.setBackgroundColor(13)
    createBaskets()
    makeText(80, 18, question)
    coin = sprites.create(img`
        . . 5 5 5 5 5 5 . . 
        . 5 4 4 4 4 4 4 5 . 
        5 4 4 4 4 4 4 4 4 5 
        5 4 4 4 1 1 4 4 4 5 
        5 4 4 1 4 4 1 4 4 5 
        5 4 4 1 4 4 1 4 4 5 
        5 4 4 4 1 1 4 4 4 5 
        5 4 4 4 4 4 4 4 4 5 
        . 5 4 4 4 4 4 4 5 . 
        . . 5 5 5 5 5 5 . . 
        `, SpriteKind.Coin)
    coin.setPosition(80, 38)
    coin.vy = 18
    coin.setFlag(SpriteFlag.StayInScreen, true)
    controller.moveSprite(coin, 70, 0)
    state = 1
}
function showQuestion () {
    clearGame()
    scene.setBackgroundColor(13)
    makeText(80, 28, "PRIVATE OR PUBLIC?")
    makeText(80, 58, question)
    makeText(80, 96, "PRESS DOWN TO START")
    state = 0
}
function chooseQuestion () {
    questionNumber = randint(0, 5)
    while (questionNumber == lastQuestion) {
        questionNumber = randint(0, 5)
    }
    lastQuestion = questionNumber
    question = questions[questionNumber]
    correctPrivate = answers[questionNumber]
}
function showWin () {
    clearGame()
    scene.setBackgroundColor(7)
    makeText(80, 35, "GAME COMPLETE!")
    makeText(80, 65, "5 / 5 CORRECT")
    makeText(80, 95, "WELL DONE!")
    state = 4
}
function clearGame () {
    sprites.destroyAllSpritesOfKind(SpriteKind.Coin)
    sprites.destroyAllSpritesOfKind(SpriteKind.Basket)
    sprites.destroyAllSpritesOfKind(SpriteKind.Text)
}
function clearText () {
    sprites.destroyAllSpritesOfKind(SpriteKind.Text)
}
function createBaskets () {
    privateBasket = sprites.create(img`
        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
        2 . . . . . . . . . . . . . . . . . . 2 
        2 . . . . . . . . . . . . . . . . . . 2 
        2 . . . . . . . . . . . . . . . . . . 2 
        2 . . . . . . . . . . . . . . . . . . 2 
        2 . . . . . . . . . . . . . . . . . . 2 
        2 . . . . . . . . . . . . . . . . . . 2 
        2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
        `, SpriteKind.Basket)
    privateBasket.setPosition(35, 108)
    privateBasket.setFlag(SpriteFlag.Ghost, true)
    publicBasket = sprites.create(img`
        7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
        7 . . . . . . . . . . . . . . . . . . 7 
        7 . . . . . . . . . . . . . . . . . . 7 
        7 . . . . . . . . . . . . . . . . . . 7 
        7 . . . . . . . . . . . . . . . . . . 7 
        7 . . . . . . . . . . . . . . . . . . 7 
        7 . . . . . . . . . . . . . . . . . . 7 
        7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 
        `, SpriteKind.Basket)
    publicBasket.setPosition(125, 108)
    publicBasket.setFlag(SpriteFlag.Ghost, true)
    makeText(35, 82, "PRIVATE")
    makeText(125, 82, "PUBLIC")
}
function showWrong () {
    clearGame()
    scene.setBackgroundColor(2)
    makeText(80, 38, "WRONG!")
    makeText(80, 62, "TRY AGAIN")
    makeText(80, 92, "PRESS DOWN")
    makeText(80, 110, "TO TRY AGAIN")
    state = 3
}
controller.down.onEvent(ControllerButtonEvent.Pressed, function () {
    if (state == 0) {
        startDrop()
    } else if (state == 2) {
        chooseQuestion()
        showQuestion()
    } else if (state == 3) {
        showQuestion()
    }
})
function makeText (x: number, y: number, words: string) {
    text = sprites.create(img`
        . . 
        . . 
        `, SpriteKind.Text)
    text.setPosition(x, y)
    text.sayText(words, 999999)
}
function showCorrect () {
    clearGame()
    scene.setBackgroundColor(7)
    makeText(80, 42, "CORRECT!")
    makeText(80, 78, "PRESS DOWN")
    makeText(80, 98, "FOR NEXT QUESTION")
    state = 2
}
let correctAnswers = 0
let hitPublic = false
let hitPrivate = false
let coin2: Sprite = null
let coins: Sprite[] = []
let text: Sprite = null
let publicBasket: Sprite = null
let privateBasket: Sprite = null
let correctPrivate = false
let questionNumber = 0
let state = 0
let coin: Sprite = null
let question = ""
let lastQuestion = 0
let answers: boolean[] = []
let questions: string[] = []
questions = [
"PASSWORD",
"HOME ADDRESS",
"PHONE NUMBER",
"FAVOURITE GAME",
"YOUR NAME",
"FAVOURITE SPORT",
"EMAIL",
"SCHOOL",
"BANK CARD",
"PHONE CODE"
]
answers = [
true,
true,
false,
false,
false,
false,
false,
false,
true,
true
]
lastQuestion = -1
scene.setBackgroundColor(13)
chooseQuestion()
showQuestion()
game.onUpdate(function () {
    if (state == 1) {
        coins = sprites.allOfKind(SpriteKind.Coin)
        if (coins.length > 0) {
            coin2 = coins[0]
            if (coin2.y >= 90) {
                hitPrivate = coin2.x >= 15 && coin2.x <= 55
                hitPublic = coin2.x >= 105 && coin2.x <= 145
                if (hitPrivate && correctPrivate) {
                    correctAnswers += 1
                    if (correctAnswers >= 5) {
                        showWin()
                    } else {
                        showCorrect()
                    }
                } else if (hitPublic && !(correctPrivate)) {
                    correctAnswers += 1
                    if (correctAnswers >= 5) {
                        showWin()
                    } else {
                        showCorrect()
                    }
                } else {
                    showWrong()
                }
            }
        }
    }
})