File indexing completed on 2024-04-28 15:07:45
0001 /* GCompris - braille_fun.js 0002 * 0003 * SPDX-FileCopyrightText: 2014 Arkit Vora <arkitvora123@gmail.com> 0004 * 0005 * Authors: 0006 * Srishti Sethi (GTK+ version) 0007 * Arkit Vora <arkitvora123@gmail.com> (Qt Quick port) 0008 * 0009 * SPDX-License-Identifier: GPL-3.0-or-later 0010 */ 0011 .pragma library 0012 .import QtQuick 2.12 as Quick 0013 .import "qrc:/gcompris/src/core/core.js" as Core 0014 0015 var numberOfLevel = 3 0016 var items 0017 var maxSubLevel; 0018 var set = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]; 0019 var questionArray = []; 0020 0021 var url = "qrc:/gcompris/src/activities/braille_fun/resource/" 0022 0023 function start(items_ ) { 0024 items = items_ 0025 items.currentLevel = Core.getInitialLevel(numberOfLevel) 0026 initLevel() 0027 } 0028 0029 function stop() { 0030 items.animateX.stop() 0031 } 0032 0033 function initQuestion() { 0034 items.question = questionArray[items.score.currentSubLevel] 0035 items.charBg.clickable(true) 0036 items.charBg.clearAllLetters() 0037 items.animateX.restart() 0038 } 0039 0040 function nextQuestion() { 0041 if(items.score.currentSubLevel >= items.score.numberOfSubLevels) { 0042 items.bonus.good("tux"); 0043 } else { 0044 initQuestion(); 0045 } 0046 } 0047 0048 function initLevel() { 0049 items.score.numberOfSubLevels = set.length; 0050 items.score.currentSubLevel = 0; 0051 questionArray = [] 0052 0053 switch(items.currentLevel) { 0054 case 0: 0055 for(var i = 0; i < set.length; i++) { 0056 questionArray[i] = set[i]; 0057 } 0058 break 0059 case 1: 0060 for(var i = 0; i < set.length; i++) { 0061 questionArray[i] = set[i] + 0062 set[Math.floor(Math.random() * set.length)]; 0063 } 0064 break 0065 case 2: 0066 for(var i = 0; i < set.length; i++) { 0067 questionArray[i] = set[i] + 0068 set[Math.floor(Math.random() * set.length)] + 0069 set[Math.floor(Math.random() * set.length)]; 0070 } 0071 break 0072 } 0073 0074 initQuestion() 0075 items.cardRepeater.model = items.currentLevel + 1; 0076 } 0077 0078 function goodAnswer() { 0079 items.score.currentSubLevel++ 0080 items.score.playWinAnimation() 0081 items.audioEffects.play("qrc:/gcompris/src/core/resource/sounds/completetask.wav"); 0082 } 0083 0084 function nextLevel() { 0085 items.score.stopWinAnimation(); 0086 items.currentLevel = Core.getNextLevel(items.currentLevel, numberOfLevel); 0087 initLevel(); 0088 } 0089 0090 function previousLevel() { 0091 items.score.stopWinAnimation(); 0092 items.currentLevel = Core.getPreviousLevel(items.currentLevel, numberOfLevel); 0093 initLevel(); 0094 }