User prompt
Cevabı Yanlış Bilince "oyun bitti" yerine "Hünerlerini Geliştir" yazsın
User prompt
Please fix the bug: 'LK.enablePause is not a function' in or related to this line: 'LK.enablePause();' Line Number: 238
User prompt
Menüde Start Tuşuna Bastıktan Sonra Oyunu durduramayalım
User prompt
Answer kelimesi ile başlayan cümlenin hemen üstüne"Furkan Çelebi" yazdır
User prompt
saniye veren jokerimiz 15 değil 30 saniye arttırsın saniyemizi
User prompt
Level 4 te değil 10 da bitsin
User prompt
üstünde "CEVAPLA" yazan butonun üstün "JOKER" yaz
User prompt
40 saniye içinde yapılanları geri al
User prompt
üstünde joker yazan butonun üstüne Cevapla yaz
User prompt
Birde Bir joker daha iyi olsun basınca saniyemiz artsın ama tek seferlik
User prompt
arka plana Defter fotoğrafı koy
User prompt
Arka Plana Defter Koy
User prompt
level geçmek için 3 sıoru çözelim
User prompt
JJD - Adventure | Glitch Hop | NCS - Copyright Free Music youtube deki şarkıyı biz başlat tuşuna basınca oyun bitene kadar çal
User prompt
JJD - Adventure | Glitch Hop | NCS - Copyright Free Music adlı şarkı biz yenilene kadar çalsın
User prompt
1 jokerimiz olsun 1. basın cevabı söylesin ve bir kez basma hakkımız olsun
User prompt
10 level olsun
User prompt
10 level olsun 10. level üssü ifadeler olsun misal 5 üssü 2
User prompt
İlk Başada Bir menü Koy
Code edit (1 edits merged)
Please save this source code
User prompt
Math Challenge: 2+2 Quiz
Initial prompt
2artı 2 kaç
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var AnswerButton = Container.expand(function (answer, isCorrect) { var self = Container.call(this); var buttonGraphics = self.attachAsset('answerButton', { anchorX: 0.5, anchorY: 0.5 }); var answerText = new Text2(answer.toString(), { size: 60, fill: 0xFFFFFF }); answerText.anchor.set(0.5, 0.5); answerText.x = 0; answerText.y = 0; self.addChild(answerText); self.answer = answer; self.isCorrect = isCorrect; self.isClicked = false; self.down = function (x, y, obj) { if (self.isClicked) { return; } self.isClicked = true; if (self.isCorrect) { self.removeChild(buttonGraphics); var correctGraphics = self.attachAsset('correctButton', { anchorX: 0.5, anchorY: 0.5 }); LK.getSound('correct').play(); LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); LK.setTimeout(function () { nextQuestion(); }, 1000); } else { self.removeChild(buttonGraphics); var wrongGraphics = self.attachAsset('wrongButton', { anchorX: 0.5, anchorY: 0.5 }); LK.getSound('wrong').play(); LK.setTimeout(function () { showGameOver(); }, 1000); } }; return self; }); var JokerButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('jokerButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { if (jokerUsed || gameState !== 'playing') { return; } jokerUsed = true; LK.effects.flashObject(self, 0xFFFFFF, 300); // Show correct answer by highlighting correct button for (var i = 0; i < answerButtons.length; i++) { if (answerButtons[i].isCorrect) { LK.effects.flashObject(answerButtons[i], 0x27ae60, 1500); break; } } // Hide joker button after use self.alpha = 0.3; }; return self; }); var LevelJokerButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('levelJokerButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { if (levelJokerUsed || gameState !== 'playing') { return; } levelJokerUsed = true; LK.effects.flashObject(self, 0xFFFFFF, 300); // Store current level and switch to level 8 originalLevel = currentLevel; currentLevel = 8; levelTxt.setText('Level: 8 (TEMP)'); // Flash screen to show level bonus LK.effects.flashScreen(0xe67e22, 500); // Hide joker button after use self.alpha = 0.3; // Set timer to revert back after 10 seconds LK.setTimeout(function () { if (gameState === 'playing') { currentLevel = originalLevel; levelTxt.setText('Level: ' + currentLevel); LK.effects.flashScreen(0x3498db, 300); } }, 10000); }; return self; }); var MenuButton = Container.expand(function (text, callback) { var self = Container.call(this); var buttonGraphics = self.attachAsset('menuButton', { anchorX: 0.5, anchorY: 0.5 }); var buttonText = new Text2(text, { size: 50, fill: 0xFFFFFF }); buttonText.anchor.set(0.5, 0.5); self.addChild(buttonText); self.callback = callback; self.down = function (x, y, obj) { LK.effects.flashObject(self, 0xFFFFFF, 200); LK.setTimeout(function () { self.callback(); }, 200); }; return self; }); var TimeJokerButton = Container.expand(function () { var self = Container.call(this); var buttonGraphics = self.attachAsset('timeJokerButton', { anchorX: 0.5, anchorY: 0.5 }); self.down = function (x, y, obj) { if (timeJokerUsed || gameState !== 'playing') { return; } timeJokerUsed = true; LK.effects.flashObject(self, 0xFFFFFF, 300); // Add 30 seconds to timer timeLeft += 30; timerTxt.setText('Time: ' + timeLeft); // Flash screen to show time bonus LK.effects.flashScreen(0x9b59b6, 500); // Hide joker button after use self.alpha = 0.3; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x34495e }); /**** * Game Code ****/ var gameState = 'menu'; // 'menu', 'playing', 'gameover' var currentLevel = 1; var questionsAnswered = 0; var maxQuestions = 10; var questionsPerLevel = 3; var timeLeft = 60; var gameTimer = null; var currentQuestion = null; var answerButtons = []; var menuElements = []; var jokerUsed = false; var jokerButton = null; var timeJokerUsed = false; var timeJokerButton = null; var levelJokerUsed = false; var levelJokerButton = null; var originalLevel = 1; // Add notebook background var notebookBackground = LK.getAsset('notebook_background', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366 }); game.addChild(notebookBackground); // UI Elements - initially hidden var questionBox = LK.getAsset('questionBox', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 800 }); var questionText = new Text2('', { size: 80, fill: 0x000000 }); questionText.anchor.set(0.5, 0.5); questionText.x = 1024; questionText.y = 800; var scoreTxt = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreTxt.anchor.set(0, 0); scoreTxt.x = 100; scoreTxt.y = 150; var timerTxt = new Text2('Time: 60', { size: 60, fill: 0xFFFFFF }); timerTxt.anchor.set(1, 0); timerTxt.x = 1948; timerTxt.y = 150; var levelTxt = new Text2('Level: 1', { size: 50, fill: 0xFFFFFF }); levelTxt.anchor.set(0.5, 0); levelTxt.x = 1024; levelTxt.y = 150; var furkanText = new Text2('Furkan Çelebi', { size: 40, fill: 0xFFFFFF }); furkanText.anchor.set(0.5, 0); furkanText.x = 1024; furkanText.y = 100; // Create joker button jokerButton = new JokerButton(); jokerButton.x = 1024 - 200; jokerButton.y = 980; // Create time joker button timeJokerButton = new TimeJokerButton(); timeJokerButton.x = 1024; timeJokerButton.y = 980; // Create level joker button levelJokerButton = new LevelJokerButton(); levelJokerButton.x = 1024 + 200; levelJokerButton.y = 980; function showMenu() { gameState = 'menu'; // Clear any existing menu elements for (var i = 0; i < menuElements.length; i++) { menuElements[i].destroy(); } menuElements = []; // Hide game elements if (questionBox.parent) { questionBox.parent.removeChild(questionBox); } if (questionText.parent) { questionText.parent.removeChild(questionText); } if (scoreTxt.parent) { scoreTxt.parent.removeChild(scoreTxt); } if (timerTxt.parent) { timerTxt.parent.removeChild(timerTxt); } if (levelTxt.parent) { levelTxt.parent.removeChild(levelTxt); } if (jokerButton && jokerButton.parent) { jokerButton.parent.removeChild(jokerButton); } if (timeJokerButton && timeJokerButton.parent) { timeJokerButton.parent.removeChild(timeJokerButton); } if (levelJokerButton && levelJokerButton.parent) { levelJokerButton.parent.removeChild(levelJokerButton); } if (furkanText.parent) { furkanText.parent.removeChild(furkanText); } // Create menu background var menuBg = game.addChild(LK.getAsset('menuBackground', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366 })); menuElements.push(menuBg); // Create title var titleText = new Text2('Math Challenge', { size: 120, fill: 0xFFFFFF }); titleText.anchor.set(0.5, 0.5); titleText.x = 1024; titleText.y = 800; game.addChild(titleText); menuElements.push(titleText); // Create subtitle var subtitleText = new Text2('Test your arithmetic skills!', { size: 60, fill: 0xBDC3C7 }); subtitleText.anchor.set(0.5, 0.5); subtitleText.x = 1024; subtitleText.y = 920; game.addChild(subtitleText); menuElements.push(subtitleText); // Create start button var startButton = new MenuButton('', function () { startGameFromMenu(); }); startButton.x = 1024; startButton.y = 1150; game.addChild(startButton); menuElements.push(startButton); // Create instructions var instructionsText = new Text2('Answer math questions correctly to score points!\nProgress through 10 levels: basic arithmetic to exponents!\nLevels 8-10 feature challenging exponent expressions like 3^4!\nExponents get harder as you advance!\nYou have 60 seconds to complete all levels.', { size: 32, fill: 0x95A5A6 }); instructionsText.anchor.set(0.5, 0.5); instructionsText.x = 1024; instructionsText.y = 1400; game.addChild(instructionsText); menuElements.push(instructionsText); } function hideMenu() { // Clear menu elements for (var i = 0; i < menuElements.length; i++) { menuElements[i].destroy(); } menuElements = []; // Show game elements game.addChild(questionBox); game.addChild(questionText); game.addChild(scoreTxt); game.addChild(timerTxt); game.addChild(levelTxt); game.addChild(furkanText); game.addChild(jokerButton); game.addChild(timeJokerButton); game.addChild(levelJokerButton); } function startGameFromMenu() { gameState = 'playing'; hideMenu(); // Reset game state currentLevel = 1; questionsAnswered = 0; timeLeft = 60; jokerUsed = false; LK.setScore(0); scoreTxt.setText('Score: 0'); timerTxt.setText('Time: 60'); levelTxt.setText('Level: 1'); // Reset joker button if (jokerButton) { jokerButton.alpha = 1; } // Reset time joker button timeJokerUsed = false; if (timeJokerButton) { timeJokerButton.alpha = 1; } // Reset level joker button levelJokerUsed = false; if (levelJokerButton) { levelJokerButton.alpha = 1; } // Start background music when game begins LK.playMusic('background_music'); startGame(); } function generateQuestion() { var num1, num2, operator, correctAnswer; var operations = ['+', '-', '*', '/']; if (currentLevel === 1) { // Level 1: Single digit addition num1 = Math.floor(Math.random() * 9) + 1; num2 = Math.floor(Math.random() * 9) + 1; operator = '+'; } else if (currentLevel === 2) { // Level 2: Single digit subtraction num1 = Math.floor(Math.random() * 9) + 1; num2 = Math.floor(Math.random() * 9) + 1; operator = '-'; if (num2 > num1) { var temp = num1; num1 = num2; num2 = temp; } } else if (currentLevel === 3) { // Level 3: Single digit multiplication num1 = Math.floor(Math.random() * 9) + 1; num2 = Math.floor(Math.random() * 9) + 1; operator = '*'; } else if (currentLevel === 4) { // Level 4: Single digit division num2 = Math.floor(Math.random() * 9) + 1; num1 = num2 * (Math.floor(Math.random() * 9) + 1); operator = '/'; } else if (currentLevel === 5) { // Level 5: Two digit addition num1 = Math.floor(Math.random() * 90) + 10; num2 = Math.floor(Math.random() * 90) + 10; operator = '+'; } else if (currentLevel === 6) { // Level 6: Two digit subtraction num1 = Math.floor(Math.random() * 90) + 10; num2 = Math.floor(Math.random() * 90) + 10; operator = '-'; if (num2 > num1) { var temp = num1; num1 = num2; num2 = temp; } } else if (currentLevel === 7) { // Level 7: Two digit multiplication num1 = Math.floor(Math.random() * 20) + 1; num2 = Math.floor(Math.random() * 20) + 1; operator = '*'; } else if (currentLevel === 8) { // Level 8: Mixed operations with exponents (simple) var questionType = Math.floor(Math.random() * 2); // 0 for regular math, 1 for exponents if (questionType === 0) { num1 = Math.floor(Math.random() * 50) + 10; num2 = Math.floor(Math.random() * 20) + 1; operator = operations[Math.floor(Math.random() * 4)]; if (operator === '-' && num2 > num1) { var temp = num1; num1 = num2; num2 = temp; } if (operator === '/' && num1 % num2 !== 0) { num1 = num2 * Math.floor(Math.random() * 8 + 1); } } else { // Simple exponents: base 2-5, exponent 2-3 var base = Math.floor(Math.random() * 4) + 2; // Base from 2-5 var exponent = Math.floor(Math.random() * 2) + 2; // Exponent from 2-3 correctAnswer = Math.pow(base, exponent); return { text: base + '^' + exponent + ' = ?', answer: correctAnswer }; } } else if (currentLevel === 9) { // Level 9: Complex mixed operations with more exponents var questionType = Math.floor(Math.random() * 3); // 0,1 for regular math, 2 for exponents if (questionType < 2) { num1 = Math.floor(Math.random() * 100) + 20; num2 = Math.floor(Math.random() * 30) + 1; operator = operations[Math.floor(Math.random() * 4)]; if (operator === '-' && num2 > num1) { var temp = num1; num1 = num2; num2 = temp; } if (operator === '/' && num1 % num2 !== 0) { num1 = num2 * Math.floor(Math.random() * 10 + 1); } } else { // Medium exponents: base 2-7, exponent 2-4 var base = Math.floor(Math.random() * 6) + 2; // Base from 2-7 var exponent = Math.floor(Math.random() * 3) + 2; // Exponent from 2-4 correctAnswer = Math.pow(base, exponent); return { text: base + '^' + exponent + ' = ?', answer: correctAnswer }; } } else if (currentLevel === 10) { // Level 10: Advanced exponent expressions (mostly exponents) var questionType = Math.floor(Math.random() * 4); // 0 for regular math, 1,2,3 for exponents if (questionType === 0) { // Occasional complex math problem num1 = Math.floor(Math.random() * 150) + 50; num2 = Math.floor(Math.random() * 25) + 5; operator = operations[Math.floor(Math.random() * 4)]; if (operator === '-' && num2 > num1) { var temp = num1; num1 = num2; num2 = temp; } if (operator === '/' && num1 % num2 !== 0) { num1 = num2 * Math.floor(Math.random() * 15 + 1); } } else { // Advanced exponents: base 2-10, exponent 2-5 var base = Math.floor(Math.random() * 9) + 2; // Base from 2-10 var exponent = Math.floor(Math.random() * 4) + 2; // Exponent from 2-5 correctAnswer = Math.pow(base, exponent); return { text: base + '^' + exponent + ' = ?', answer: correctAnswer }; } } switch (operator) { case '+': correctAnswer = num1 + num2; break; case '-': correctAnswer = num1 - num2; break; case '*': correctAnswer = num1 * num2; break; case '/': correctAnswer = num1 / num2; break; } return { text: num1 + ' ' + operator + ' ' + num2 + ' = ?', answer: correctAnswer }; } function generateWrongAnswers(correctAnswer) { var wrongAnswers = []; var range = Math.max(5, Math.floor(correctAnswer * 0.3)); while (wrongAnswers.length < 3) { var wrong = correctAnswer + Math.floor(Math.random() * range * 2) - range; if (wrong !== correctAnswer && wrongAnswers.indexOf(wrong) === -1 && wrong >= 0) { wrongAnswers.push(wrong); } } return wrongAnswers; } function clearAnswerButtons() { for (var i = 0; i < answerButtons.length; i++) { answerButtons[i].destroy(); } answerButtons = []; } function showQuestion() { clearAnswerButtons(); currentQuestion = generateQuestion(); questionText.setText(currentQuestion.text); var answers = [currentQuestion.answer]; var wrongAnswers = generateWrongAnswers(currentQuestion.answer); answers = answers.concat(wrongAnswers); // Shuffle answers for (var i = answers.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = answers[i]; answers[i] = answers[j]; answers[j] = temp; } // Create answer buttons var buttonStartX = 1024 - (4 * 350 + 3 * 50) / 2 + 175; var buttonY = 1200; for (var i = 0; i < 4; i++) { var button = new AnswerButton(answers[i], answers[i] === currentQuestion.answer); button.x = buttonStartX + i * 400; button.y = buttonY; answerButtons.push(button); game.addChild(button); } } function nextQuestion() { questionsAnswered++; if (questionsAnswered % questionsPerLevel === 0 && currentLevel < 10) { currentLevel++; levelTxt.setText('Level: ' + currentLevel); LK.effects.flashScreen(0x27ae60, 500); showQuestion(); } else if (currentLevel === 10 && questionsAnswered % questionsPerLevel === 0) { LK.showYouWin(); return; } else { showQuestion(); } } function showGameOver() { LK.clearInterval(gameTimer); gameState = 'gameover'; // Stop background music when game ends LK.stopMusic(); LK.showGameOver(); // Show LK game over functionality } function startGame() { // Start timer gameTimer = LK.setInterval(function () { timeLeft--; timerTxt.setText('Time: ' + timeLeft); if (timeLeft <= 0) { showGameOver(); } }, 1000); // Show first question showQuestion(); } // Show menu first instead of starting game directly showMenu();
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var AnswerButton = Container.expand(function (answer, isCorrect) {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('answerButton', {
anchorX: 0.5,
anchorY: 0.5
});
var answerText = new Text2(answer.toString(), {
size: 60,
fill: 0xFFFFFF
});
answerText.anchor.set(0.5, 0.5);
answerText.x = 0;
answerText.y = 0;
self.addChild(answerText);
self.answer = answer;
self.isCorrect = isCorrect;
self.isClicked = false;
self.down = function (x, y, obj) {
if (self.isClicked) {
return;
}
self.isClicked = true;
if (self.isCorrect) {
self.removeChild(buttonGraphics);
var correctGraphics = self.attachAsset('correctButton', {
anchorX: 0.5,
anchorY: 0.5
});
LK.getSound('correct').play();
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
LK.setTimeout(function () {
nextQuestion();
}, 1000);
} else {
self.removeChild(buttonGraphics);
var wrongGraphics = self.attachAsset('wrongButton', {
anchorX: 0.5,
anchorY: 0.5
});
LK.getSound('wrong').play();
LK.setTimeout(function () {
showGameOver();
}, 1000);
}
};
return self;
});
var JokerButton = Container.expand(function () {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('jokerButton', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function (x, y, obj) {
if (jokerUsed || gameState !== 'playing') {
return;
}
jokerUsed = true;
LK.effects.flashObject(self, 0xFFFFFF, 300);
// Show correct answer by highlighting correct button
for (var i = 0; i < answerButtons.length; i++) {
if (answerButtons[i].isCorrect) {
LK.effects.flashObject(answerButtons[i], 0x27ae60, 1500);
break;
}
}
// Hide joker button after use
self.alpha = 0.3;
};
return self;
});
var LevelJokerButton = Container.expand(function () {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('levelJokerButton', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function (x, y, obj) {
if (levelJokerUsed || gameState !== 'playing') {
return;
}
levelJokerUsed = true;
LK.effects.flashObject(self, 0xFFFFFF, 300);
// Store current level and switch to level 8
originalLevel = currentLevel;
currentLevel = 8;
levelTxt.setText('Level: 8 (TEMP)');
// Flash screen to show level bonus
LK.effects.flashScreen(0xe67e22, 500);
// Hide joker button after use
self.alpha = 0.3;
// Set timer to revert back after 10 seconds
LK.setTimeout(function () {
if (gameState === 'playing') {
currentLevel = originalLevel;
levelTxt.setText('Level: ' + currentLevel);
LK.effects.flashScreen(0x3498db, 300);
}
}, 10000);
};
return self;
});
var MenuButton = Container.expand(function (text, callback) {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('menuButton', {
anchorX: 0.5,
anchorY: 0.5
});
var buttonText = new Text2(text, {
size: 50,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.callback = callback;
self.down = function (x, y, obj) {
LK.effects.flashObject(self, 0xFFFFFF, 200);
LK.setTimeout(function () {
self.callback();
}, 200);
};
return self;
});
var TimeJokerButton = Container.expand(function () {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('timeJokerButton', {
anchorX: 0.5,
anchorY: 0.5
});
self.down = function (x, y, obj) {
if (timeJokerUsed || gameState !== 'playing') {
return;
}
timeJokerUsed = true;
LK.effects.flashObject(self, 0xFFFFFF, 300);
// Add 30 seconds to timer
timeLeft += 30;
timerTxt.setText('Time: ' + timeLeft);
// Flash screen to show time bonus
LK.effects.flashScreen(0x9b59b6, 500);
// Hide joker button after use
self.alpha = 0.3;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x34495e
});
/****
* Game Code
****/
var gameState = 'menu'; // 'menu', 'playing', 'gameover'
var currentLevel = 1;
var questionsAnswered = 0;
var maxQuestions = 10;
var questionsPerLevel = 3;
var timeLeft = 60;
var gameTimer = null;
var currentQuestion = null;
var answerButtons = [];
var menuElements = [];
var jokerUsed = false;
var jokerButton = null;
var timeJokerUsed = false;
var timeJokerButton = null;
var levelJokerUsed = false;
var levelJokerButton = null;
var originalLevel = 1;
// Add notebook background
var notebookBackground = LK.getAsset('notebook_background', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366
});
game.addChild(notebookBackground);
// UI Elements - initially hidden
var questionBox = LK.getAsset('questionBox', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 800
});
var questionText = new Text2('', {
size: 80,
fill: 0x000000
});
questionText.anchor.set(0.5, 0.5);
questionText.x = 1024;
questionText.y = 800;
var scoreTxt = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0, 0);
scoreTxt.x = 100;
scoreTxt.y = 150;
var timerTxt = new Text2('Time: 60', {
size: 60,
fill: 0xFFFFFF
});
timerTxt.anchor.set(1, 0);
timerTxt.x = 1948;
timerTxt.y = 150;
var levelTxt = new Text2('Level: 1', {
size: 50,
fill: 0xFFFFFF
});
levelTxt.anchor.set(0.5, 0);
levelTxt.x = 1024;
levelTxt.y = 150;
var furkanText = new Text2('Furkan Çelebi', {
size: 40,
fill: 0xFFFFFF
});
furkanText.anchor.set(0.5, 0);
furkanText.x = 1024;
furkanText.y = 100;
// Create joker button
jokerButton = new JokerButton();
jokerButton.x = 1024 - 200;
jokerButton.y = 980;
// Create time joker button
timeJokerButton = new TimeJokerButton();
timeJokerButton.x = 1024;
timeJokerButton.y = 980;
// Create level joker button
levelJokerButton = new LevelJokerButton();
levelJokerButton.x = 1024 + 200;
levelJokerButton.y = 980;
function showMenu() {
gameState = 'menu';
// Clear any existing menu elements
for (var i = 0; i < menuElements.length; i++) {
menuElements[i].destroy();
}
menuElements = [];
// Hide game elements
if (questionBox.parent) {
questionBox.parent.removeChild(questionBox);
}
if (questionText.parent) {
questionText.parent.removeChild(questionText);
}
if (scoreTxt.parent) {
scoreTxt.parent.removeChild(scoreTxt);
}
if (timerTxt.parent) {
timerTxt.parent.removeChild(timerTxt);
}
if (levelTxt.parent) {
levelTxt.parent.removeChild(levelTxt);
}
if (jokerButton && jokerButton.parent) {
jokerButton.parent.removeChild(jokerButton);
}
if (timeJokerButton && timeJokerButton.parent) {
timeJokerButton.parent.removeChild(timeJokerButton);
}
if (levelJokerButton && levelJokerButton.parent) {
levelJokerButton.parent.removeChild(levelJokerButton);
}
if (furkanText.parent) {
furkanText.parent.removeChild(furkanText);
}
// Create menu background
var menuBg = game.addChild(LK.getAsset('menuBackground', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366
}));
menuElements.push(menuBg);
// Create title
var titleText = new Text2('Math Challenge', {
size: 120,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 1024;
titleText.y = 800;
game.addChild(titleText);
menuElements.push(titleText);
// Create subtitle
var subtitleText = new Text2('Test your arithmetic skills!', {
size: 60,
fill: 0xBDC3C7
});
subtitleText.anchor.set(0.5, 0.5);
subtitleText.x = 1024;
subtitleText.y = 920;
game.addChild(subtitleText);
menuElements.push(subtitleText);
// Create start button
var startButton = new MenuButton('', function () {
startGameFromMenu();
});
startButton.x = 1024;
startButton.y = 1150;
game.addChild(startButton);
menuElements.push(startButton);
// Create instructions
var instructionsText = new Text2('Answer math questions correctly to score points!\nProgress through 10 levels: basic arithmetic to exponents!\nLevels 8-10 feature challenging exponent expressions like 3^4!\nExponents get harder as you advance!\nYou have 60 seconds to complete all levels.', {
size: 32,
fill: 0x95A5A6
});
instructionsText.anchor.set(0.5, 0.5);
instructionsText.x = 1024;
instructionsText.y = 1400;
game.addChild(instructionsText);
menuElements.push(instructionsText);
}
function hideMenu() {
// Clear menu elements
for (var i = 0; i < menuElements.length; i++) {
menuElements[i].destroy();
}
menuElements = [];
// Show game elements
game.addChild(questionBox);
game.addChild(questionText);
game.addChild(scoreTxt);
game.addChild(timerTxt);
game.addChild(levelTxt);
game.addChild(furkanText);
game.addChild(jokerButton);
game.addChild(timeJokerButton);
game.addChild(levelJokerButton);
}
function startGameFromMenu() {
gameState = 'playing';
hideMenu();
// Reset game state
currentLevel = 1;
questionsAnswered = 0;
timeLeft = 60;
jokerUsed = false;
LK.setScore(0);
scoreTxt.setText('Score: 0');
timerTxt.setText('Time: 60');
levelTxt.setText('Level: 1');
// Reset joker button
if (jokerButton) {
jokerButton.alpha = 1;
}
// Reset time joker button
timeJokerUsed = false;
if (timeJokerButton) {
timeJokerButton.alpha = 1;
}
// Reset level joker button
levelJokerUsed = false;
if (levelJokerButton) {
levelJokerButton.alpha = 1;
}
// Start background music when game begins
LK.playMusic('background_music');
startGame();
}
function generateQuestion() {
var num1, num2, operator, correctAnswer;
var operations = ['+', '-', '*', '/'];
if (currentLevel === 1) {
// Level 1: Single digit addition
num1 = Math.floor(Math.random() * 9) + 1;
num2 = Math.floor(Math.random() * 9) + 1;
operator = '+';
} else if (currentLevel === 2) {
// Level 2: Single digit subtraction
num1 = Math.floor(Math.random() * 9) + 1;
num2 = Math.floor(Math.random() * 9) + 1;
operator = '-';
if (num2 > num1) {
var temp = num1;
num1 = num2;
num2 = temp;
}
} else if (currentLevel === 3) {
// Level 3: Single digit multiplication
num1 = Math.floor(Math.random() * 9) + 1;
num2 = Math.floor(Math.random() * 9) + 1;
operator = '*';
} else if (currentLevel === 4) {
// Level 4: Single digit division
num2 = Math.floor(Math.random() * 9) + 1;
num1 = num2 * (Math.floor(Math.random() * 9) + 1);
operator = '/';
} else if (currentLevel === 5) {
// Level 5: Two digit addition
num1 = Math.floor(Math.random() * 90) + 10;
num2 = Math.floor(Math.random() * 90) + 10;
operator = '+';
} else if (currentLevel === 6) {
// Level 6: Two digit subtraction
num1 = Math.floor(Math.random() * 90) + 10;
num2 = Math.floor(Math.random() * 90) + 10;
operator = '-';
if (num2 > num1) {
var temp = num1;
num1 = num2;
num2 = temp;
}
} else if (currentLevel === 7) {
// Level 7: Two digit multiplication
num1 = Math.floor(Math.random() * 20) + 1;
num2 = Math.floor(Math.random() * 20) + 1;
operator = '*';
} else if (currentLevel === 8) {
// Level 8: Mixed operations with exponents (simple)
var questionType = Math.floor(Math.random() * 2); // 0 for regular math, 1 for exponents
if (questionType === 0) {
num1 = Math.floor(Math.random() * 50) + 10;
num2 = Math.floor(Math.random() * 20) + 1;
operator = operations[Math.floor(Math.random() * 4)];
if (operator === '-' && num2 > num1) {
var temp = num1;
num1 = num2;
num2 = temp;
}
if (operator === '/' && num1 % num2 !== 0) {
num1 = num2 * Math.floor(Math.random() * 8 + 1);
}
} else {
// Simple exponents: base 2-5, exponent 2-3
var base = Math.floor(Math.random() * 4) + 2; // Base from 2-5
var exponent = Math.floor(Math.random() * 2) + 2; // Exponent from 2-3
correctAnswer = Math.pow(base, exponent);
return {
text: base + '^' + exponent + ' = ?',
answer: correctAnswer
};
}
} else if (currentLevel === 9) {
// Level 9: Complex mixed operations with more exponents
var questionType = Math.floor(Math.random() * 3); // 0,1 for regular math, 2 for exponents
if (questionType < 2) {
num1 = Math.floor(Math.random() * 100) + 20;
num2 = Math.floor(Math.random() * 30) + 1;
operator = operations[Math.floor(Math.random() * 4)];
if (operator === '-' && num2 > num1) {
var temp = num1;
num1 = num2;
num2 = temp;
}
if (operator === '/' && num1 % num2 !== 0) {
num1 = num2 * Math.floor(Math.random() * 10 + 1);
}
} else {
// Medium exponents: base 2-7, exponent 2-4
var base = Math.floor(Math.random() * 6) + 2; // Base from 2-7
var exponent = Math.floor(Math.random() * 3) + 2; // Exponent from 2-4
correctAnswer = Math.pow(base, exponent);
return {
text: base + '^' + exponent + ' = ?',
answer: correctAnswer
};
}
} else if (currentLevel === 10) {
// Level 10: Advanced exponent expressions (mostly exponents)
var questionType = Math.floor(Math.random() * 4); // 0 for regular math, 1,2,3 for exponents
if (questionType === 0) {
// Occasional complex math problem
num1 = Math.floor(Math.random() * 150) + 50;
num2 = Math.floor(Math.random() * 25) + 5;
operator = operations[Math.floor(Math.random() * 4)];
if (operator === '-' && num2 > num1) {
var temp = num1;
num1 = num2;
num2 = temp;
}
if (operator === '/' && num1 % num2 !== 0) {
num1 = num2 * Math.floor(Math.random() * 15 + 1);
}
} else {
// Advanced exponents: base 2-10, exponent 2-5
var base = Math.floor(Math.random() * 9) + 2; // Base from 2-10
var exponent = Math.floor(Math.random() * 4) + 2; // Exponent from 2-5
correctAnswer = Math.pow(base, exponent);
return {
text: base + '^' + exponent + ' = ?',
answer: correctAnswer
};
}
}
switch (operator) {
case '+':
correctAnswer = num1 + num2;
break;
case '-':
correctAnswer = num1 - num2;
break;
case '*':
correctAnswer = num1 * num2;
break;
case '/':
correctAnswer = num1 / num2;
break;
}
return {
text: num1 + ' ' + operator + ' ' + num2 + ' = ?',
answer: correctAnswer
};
}
function generateWrongAnswers(correctAnswer) {
var wrongAnswers = [];
var range = Math.max(5, Math.floor(correctAnswer * 0.3));
while (wrongAnswers.length < 3) {
var wrong = correctAnswer + Math.floor(Math.random() * range * 2) - range;
if (wrong !== correctAnswer && wrongAnswers.indexOf(wrong) === -1 && wrong >= 0) {
wrongAnswers.push(wrong);
}
}
return wrongAnswers;
}
function clearAnswerButtons() {
for (var i = 0; i < answerButtons.length; i++) {
answerButtons[i].destroy();
}
answerButtons = [];
}
function showQuestion() {
clearAnswerButtons();
currentQuestion = generateQuestion();
questionText.setText(currentQuestion.text);
var answers = [currentQuestion.answer];
var wrongAnswers = generateWrongAnswers(currentQuestion.answer);
answers = answers.concat(wrongAnswers);
// Shuffle answers
for (var i = answers.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = answers[i];
answers[i] = answers[j];
answers[j] = temp;
}
// Create answer buttons
var buttonStartX = 1024 - (4 * 350 + 3 * 50) / 2 + 175;
var buttonY = 1200;
for (var i = 0; i < 4; i++) {
var button = new AnswerButton(answers[i], answers[i] === currentQuestion.answer);
button.x = buttonStartX + i * 400;
button.y = buttonY;
answerButtons.push(button);
game.addChild(button);
}
}
function nextQuestion() {
questionsAnswered++;
if (questionsAnswered % questionsPerLevel === 0 && currentLevel < 10) {
currentLevel++;
levelTxt.setText('Level: ' + currentLevel);
LK.effects.flashScreen(0x27ae60, 500);
showQuestion();
} else if (currentLevel === 10 && questionsAnswered % questionsPerLevel === 0) {
LK.showYouWin();
return;
} else {
showQuestion();
}
}
function showGameOver() {
LK.clearInterval(gameTimer);
gameState = 'gameover';
// Stop background music when game ends
LK.stopMusic();
LK.showGameOver(); // Show LK game over functionality
}
function startGame() {
// Start timer
gameTimer = LK.setInterval(function () {
timeLeft--;
timerTxt.setText('Time: ' + timeLeft);
if (timeLeft <= 0) {
showGameOver();
}
}, 1000);
// Show first question
showQuestion();
}
// Show menu first instead of starting game directly
showMenu();
Bir Buton . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Bir masa ve üstünde defter . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Üstünde "Joker" Yazan Bir Buton. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Arka Planı sil
Arka Planı Sil