User prompt
Ama tamamladığımız, yaptığımız şeylerin üstünde tic çıksın yani yeşil bir şey olsun tic böyle onaylanmış yani yaptık bunu bitirdik.
User prompt
bu gri renkli geri tuşunu kaldır
User prompt
Logoların seçme düğmelerini büyüt ve daha çok kareye benzesin daha büyük olsunlar.
User prompt
aynı resmi kullanan logolar var değiştir resim ekle
User prompt
Yemek yazısının arkasını kırmızı renge boya.
User prompt
futbol yazısının arkasını yeşile boya
User prompt
Yemek yazısının arkasını sarı renge boya
User prompt
Arabalar yazan düğmenin arkasını siyah, yemekler yazan yerin arkasını sarı renge boya.
User prompt
aynı çıkış dışını logo seçtiğimiz diğer kısma da ekle
User prompt
çıkış tuşunu biraz daha altı altı
User prompt
Çıkış düğmesini de altının altına al.
User prompt
bir logo seçtikten sonra çıkmak için bir çıkış düğmesi olsun
User prompt
ve silmek istediğimiz harfin üstüne basarak silebilelim
User prompt
11 harf var yani olmaması gereken kadar yani 11 ise 15 tane harf olsun her resim için her logo için
User prompt
Herkesin altın sayısını onunla başlat. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Bu yazılarda Apple Google falan yazması yerine firmanın logosu olsun yani görsel olarak.
User prompt
Her şeyi tam ekran yap. Büyüt.
User prompt
Logoyu seçtikten sonra bilmeye çalıştığımız ekranı yaklaştır, büyük olsun.
User prompt
sadece kaydetme sistemi eklentisi olsun kaydetme sistemi de altınları ve tamamladığımız şeylerin kaydetsin bu logoları bildiğimizi bir daha yapamayalım ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
tüm eklentileri kaldır hani
User prompt
o siyah buton niye var kaldır koyun yani altın şeyini de sağ tarafa al
User prompt
Biriktirdiğimiz cetonlar sol tarafta değil sağ tarafta olsun.
User prompt
Harfler Sürükleyip Yerleştirmeli Değil Tıklanınca Kaybolmalı Olsun
Code edit (1 edits merged)
Please save this source code
User prompt
Logo Quiz Challenge
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var AnswerSlot = Container.expand(function (index) { var self = Container.call(this); var bg = self.attachAsset('answerBox', { anchorX: 0.5, anchorY: 0.5 }); self.index = index; self.occupiedLetter = null; return self; }); var CategoryButton = Container.expand(function (category) { var self = Container.call(this); var bg = self.attachAsset('categoryButton', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2(category, { size: 50, fill: 0xFFFFFF }); text.anchor.set(0.5, 0.5); self.addChild(text); self.category = category; self.down = function (x, y, obj) { tween(self, { scaleX: 0.95, scaleY: 0.95 }, { duration: 100 }); showCategoryLogos(self.category); }; self.up = function (x, y, obj) { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); }; return self; }); var HintButton = Container.expand(function () { var self = Container.call(this); var bg = self.attachAsset('hintButton', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2('Hint (5 coins)', { size: 30, fill: 0xFFFFFF }); text.anchor.set(0.5, 0.5); self.addChild(text); self.down = function (x, y, obj) { if (goldCoins >= 5) { useHint(); } }; return self; }); var LetterTile = Container.expand(function (letter) { var self = Container.call(this); var bg = self.attachAsset('letterTile', { anchorX: 0.5, anchorY: 0.5 }); var text = new Text2(letter, { size: 40, fill: 0x333333 }); text.anchor.set(0.5, 0.5); self.addChild(text); self.letter = letter; self.originalX = 0; self.originalY = 0; self.isPlaced = false; self.targetSlot = null; self.down = function (x, y, obj) { if (!self.isPlaced) { draggedLetter = self; self.originalX = self.x; self.originalY = self.y; tween(self, { scaleX: 1.1, scaleY: 1.1 }, { duration: 100 }); } }; return self; }); var LogoButton = Container.expand(function (logoName, logoData) { var self = Container.call(this); var bg = self.attachAsset('logoContainer', { anchorX: 0.5, anchorY: 0.5 }); var logoText = new Text2(logoName.substring(0, logoName.indexOf('Logo')), { size: 30, fill: 0x333333 }); logoText.anchor.set(0.5, 0.5); self.addChild(logoText); self.logoData = logoData; self.down = function (x, y, obj) { tween(self, { scaleX: 0.95, scaleY: 0.95 }, { duration: 100 }); startLogoGuess(self.logoData); }; self.up = function (x, y, obj) { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 100 }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2C3E50 }); /**** * Game Code ****/ // Game state variables var gameState = 'menu'; // 'menu', 'category', 'guessing' var goldCoins = storage.goldCoins || 50; var currentCategory = ''; var currentLogo = null; var draggedLetter = null; var letterTiles = []; var answerSlots = []; var currentAnswer = ''; // Logo data var logoDatabase = { 'Technology': [{ name: 'Apple', answer: 'APPLE' }, { name: 'Google', answer: 'GOOGLE' }, { name: 'Microsoft', answer: 'MICROSOFT' }, { name: 'Samsung', answer: 'SAMSUNG' }, { name: 'Facebook', answer: 'FACEBOOK' }], 'Football': [{ name: 'Barcelona', answer: 'BARCELONA' }, { name: 'Real Madrid', answer: 'REALMADRID' }, { name: 'Liverpool', answer: 'LIVERPOOL' }, { name: 'Manchester United', answer: 'MANCHESTER' }, { name: 'Arsenal', answer: 'ARSENAL' }], 'Cars': [{ name: 'BMW', answer: 'BMW' }, { name: 'Mercedes', answer: 'MERCEDES' }, { name: 'Toyota', answer: 'TOYOTA' }, { name: 'Ferrari', answer: 'FERRARI' }, { name: 'Audi', answer: 'AUDI' }], 'Food': [{ name: 'McDonalds', answer: 'MCDONALDS' }, { name: 'KFC', answer: 'KFC' }, { name: 'Subway', answer: 'SUBWAY' }, { name: 'Pizza Hut', answer: 'PIZZAHUT' }, { name: 'Starbucks', answer: 'STARBUCKS' }] }; // UI Elements var coinDisplay; var backButton; function initializeMenu() { game.removeChildren(); gameState = 'menu'; // Title var title = new Text2('Logo Quiz Challenge', { size: 80, fill: 0xFFFFFF }); title.anchor.set(0.5, 0.5); title.x = 1024; title.y = 400; game.addChild(title); // Category buttons var categories = ['Technology', 'Football', 'Cars', 'Food']; for (var i = 0; i < categories.length; i++) { var button = new CategoryButton(categories[i]); button.x = 1024; button.y = 600 + i * 150; game.addChild(button); } updateCoinDisplay(); } function showCategoryLogos(category) { game.removeChildren(); gameState = 'category'; currentCategory = category; // Category title var title = new Text2(category + ' Logos', { size: 60, fill: 0xFFFFFF }); title.anchor.set(0.5, 0.5); title.x = 1024; title.y = 300; game.addChild(title); // Logo buttons var logos = logoDatabase[category]; var cols = 3; var startX = 1024 - (cols - 1) * 120; var startY = 500; for (var i = 0; i < logos.length; i++) { var logoButton = new LogoButton(logos[i].name + 'Logo', logos[i]); logoButton.x = startX + i % cols * 240; logoButton.y = startY + Math.floor(i / cols) * 180; game.addChild(logoButton); } createBackButton(); updateCoinDisplay(); } function startLogoGuess(logoData) { game.removeChildren(); gameState = 'guessing'; currentLogo = logoData; letterTiles = []; answerSlots = []; // Logo display area var logoText = new Text2(logoData.name, { size: 50, fill: 0xFFFFFF }); logoText.anchor.set(0.5, 0.5); logoText.x = 1024; logoText.y = 400; game.addChild(logoText); // Create answer slots var answerLength = logoData.answer.length; var slotSpacing = 90; var startX = 1024 - (answerLength - 1) * slotSpacing / 2; for (var i = 0; i < answerLength; i++) { var slot = new AnswerSlot(i); slot.x = startX + i * slotSpacing; slot.y = 600; answerSlots.push(slot); game.addChild(slot); } // Create letter tiles createLetterTiles(logoData.answer); // Hint button var hintBtn = new HintButton(); hintBtn.x = 1024; hintBtn.y = 800; game.addChild(hintBtn); createBackButton(); updateCoinDisplay(); } function createLetterTiles(answer) { var letters = answer.split(''); var decoyLetters = ['X', 'Z', 'Q', 'J', 'K', 'W', 'V', 'Y']; var allLetters = letters.concat(decoyLetters.slice(0, 15 - letters.length)); // Shuffle letters for (var i = allLetters.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = allLetters[i]; allLetters[i] = allLetters[j]; allLetters[j] = temp; } // Create tiles var cols = 5; var startX = 1024 - (cols - 1) * 50; var startY = 1000; for (var i = 0; i < allLetters.length; i++) { var tile = new LetterTile(allLetters[i]); tile.x = startX + i % cols * 100; tile.y = startY + Math.floor(i / cols) * 100; letterTiles.push(tile); game.addChild(tile); } } function createBackButton() { backButton = game.addChild(LK.getAsset('backButton', { anchorX: 0.5, anchorY: 0.5 })); backButton.x = 150; backButton.y = 150; var backText = new Text2('Back', { size: 30, fill: 0xFFFFFF }); backText.anchor.set(0.5, 0.5); backButton.addChild(backText); backButton.down = function () { if (gameState === 'category') { initializeMenu(); } else if (gameState === 'guessing') { showCategoryLogos(currentCategory); } }; } function updateCoinDisplay() { if (coinDisplay) { coinDisplay.parent.removeChild(coinDisplay); } coinDisplay = new Container(); var coinIcon = coinDisplay.addChild(LK.getAsset('coinIcon', { anchorX: 0.5, anchorY: 0.5 })); var coinText = new Text2(goldCoins.toString(), { size: 40, fill: 0xFFD700 }); coinText.anchor.set(0, 0.5); coinText.x = 30; coinDisplay.addChild(coinText); coinDisplay.x = 1800; coinDisplay.y = 100; LK.gui.topRight.addChild(coinDisplay); } function useHint() { if (goldCoins < 5 || !currentLogo) return; goldCoins -= 5; storage.goldCoins = goldCoins; updateCoinDisplay(); // Find an empty slot and place a correct letter for (var i = 0; i < answerSlots.length; i++) { var slot = answerSlots[i]; if (!slot.occupiedLetter) { var correctLetter = currentLogo.answer[i]; // Find the letter tile for (var j = 0; j < letterTiles.length; j++) { var tile = letterTiles[j]; if (tile.letter === correctLetter && !tile.isPlaced) { placeLetter(tile, slot); break; } } break; } } checkAnswer(); } function placeLetter(letter, slot) { if (slot.occupiedLetter) { // Return previous letter to pool var prevLetter = slot.occupiedLetter; prevLetter.isPlaced = false; prevLetter.targetSlot = null; tween(prevLetter, { x: prevLetter.originalX, y: prevLetter.originalY }, { duration: 200 }); } letter.isPlaced = true; letter.targetSlot = slot; slot.occupiedLetter = letter; tween(letter, { x: slot.x, y: slot.y, scaleX: 1, scaleY: 1 }, { duration: 200 }); } function checkAnswer() { var playerAnswer = ''; for (var i = 0; i < answerSlots.length; i++) { var slot = answerSlots[i]; if (slot.occupiedLetter) { playerAnswer += slot.occupiedLetter.letter; } else { return; // Not all slots filled } } if (playerAnswer === currentLogo.answer) { // Correct answer goldCoins += 10; storage.goldCoins = goldCoins; LK.getSound('correctAnswer').play(); LK.getSound('coinEarned').play(); LK.effects.flashScreen(0x00FF00, 500); LK.setTimeout(function () { showCategoryLogos(currentCategory); }, 1000); } } function handleMove(x, y, obj) { if (draggedLetter && gameState === 'guessing') { draggedLetter.x = x; draggedLetter.y = y; } } game.move = handleMove; game.up = function (x, y, obj) { if (draggedLetter && gameState === 'guessing') { var placed = false; // Check if dropped on answer slot for (var i = 0; i < answerSlots.length; i++) { var slot = answerSlots[i]; var distance = Math.sqrt(Math.pow(draggedLetter.x - slot.x, 2) + Math.pow(draggedLetter.y - slot.y, 2)); if (distance < 60) { placeLetter(draggedLetter, slot); placed = true; break; } } if (!placed) { // Return to original position tween(draggedLetter, { x: draggedLetter.originalX, y: draggedLetter.originalY, scaleX: 1, scaleY: 1 }, { duration: 200 }); } draggedLetter = null; // Check if answer is complete LK.setTimeout(function () { checkAnswer(); }, 300); } }; // Initialize the game initializeMenu();
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,483 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+var storage = LK.import("@upit/storage.v1");
+
+/****
+* Classes
+****/
+var AnswerSlot = Container.expand(function (index) {
+ var self = Container.call(this);
+ var bg = self.attachAsset('answerBox', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.index = index;
+ self.occupiedLetter = null;
+ return self;
+});
+var CategoryButton = Container.expand(function (category) {
+ var self = Container.call(this);
+ var bg = self.attachAsset('categoryButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var text = new Text2(category, {
+ size: 50,
+ fill: 0xFFFFFF
+ });
+ text.anchor.set(0.5, 0.5);
+ self.addChild(text);
+ self.category = category;
+ self.down = function (x, y, obj) {
+ tween(self, {
+ scaleX: 0.95,
+ scaleY: 0.95
+ }, {
+ duration: 100
+ });
+ showCategoryLogos(self.category);
+ };
+ self.up = function (x, y, obj) {
+ tween(self, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ };
+ return self;
+});
+var HintButton = Container.expand(function () {
+ var self = Container.call(this);
+ var bg = self.attachAsset('hintButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var text = new Text2('Hint (5 coins)', {
+ size: 30,
+ fill: 0xFFFFFF
+ });
+ text.anchor.set(0.5, 0.5);
+ self.addChild(text);
+ self.down = function (x, y, obj) {
+ if (goldCoins >= 5) {
+ useHint();
+ }
+ };
+ return self;
+});
+var LetterTile = Container.expand(function (letter) {
+ var self = Container.call(this);
+ var bg = self.attachAsset('letterTile', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var text = new Text2(letter, {
+ size: 40,
+ fill: 0x333333
+ });
+ text.anchor.set(0.5, 0.5);
+ self.addChild(text);
+ self.letter = letter;
+ self.originalX = 0;
+ self.originalY = 0;
+ self.isPlaced = false;
+ self.targetSlot = null;
+ self.down = function (x, y, obj) {
+ if (!self.isPlaced) {
+ draggedLetter = self;
+ self.originalX = self.x;
+ self.originalY = self.y;
+ tween(self, {
+ scaleX: 1.1,
+ scaleY: 1.1
+ }, {
+ duration: 100
+ });
+ }
+ };
+ return self;
+});
+var LogoButton = Container.expand(function (logoName, logoData) {
+ var self = Container.call(this);
+ var bg = self.attachAsset('logoContainer', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var logoText = new Text2(logoName.substring(0, logoName.indexOf('Logo')), {
+ size: 30,
+ fill: 0x333333
+ });
+ logoText.anchor.set(0.5, 0.5);
+ self.addChild(logoText);
+ self.logoData = logoData;
+ self.down = function (x, y, obj) {
+ tween(self, {
+ scaleX: 0.95,
+ scaleY: 0.95
+ }, {
+ duration: 100
+ });
+ startLogoGuess(self.logoData);
+ };
+ self.up = function (x, y, obj) {
+ tween(self, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 100
+ });
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x2C3E50
+});
+
+/****
+* Game Code
+****/
+// Game state variables
+var gameState = 'menu'; // 'menu', 'category', 'guessing'
+var goldCoins = storage.goldCoins || 50;
+var currentCategory = '';
+var currentLogo = null;
+var draggedLetter = null;
+var letterTiles = [];
+var answerSlots = [];
+var currentAnswer = '';
+// Logo data
+var logoDatabase = {
+ 'Technology': [{
+ name: 'Apple',
+ answer: 'APPLE'
+ }, {
+ name: 'Google',
+ answer: 'GOOGLE'
+ }, {
+ name: 'Microsoft',
+ answer: 'MICROSOFT'
+ }, {
+ name: 'Samsung',
+ answer: 'SAMSUNG'
+ }, {
+ name: 'Facebook',
+ answer: 'FACEBOOK'
+ }],
+ 'Football': [{
+ name: 'Barcelona',
+ answer: 'BARCELONA'
+ }, {
+ name: 'Real Madrid',
+ answer: 'REALMADRID'
+ }, {
+ name: 'Liverpool',
+ answer: 'LIVERPOOL'
+ }, {
+ name: 'Manchester United',
+ answer: 'MANCHESTER'
+ }, {
+ name: 'Arsenal',
+ answer: 'ARSENAL'
+ }],
+ 'Cars': [{
+ name: 'BMW',
+ answer: 'BMW'
+ }, {
+ name: 'Mercedes',
+ answer: 'MERCEDES'
+ }, {
+ name: 'Toyota',
+ answer: 'TOYOTA'
+ }, {
+ name: 'Ferrari',
+ answer: 'FERRARI'
+ }, {
+ name: 'Audi',
+ answer: 'AUDI'
+ }],
+ 'Food': [{
+ name: 'McDonalds',
+ answer: 'MCDONALDS'
+ }, {
+ name: 'KFC',
+ answer: 'KFC'
+ }, {
+ name: 'Subway',
+ answer: 'SUBWAY'
+ }, {
+ name: 'Pizza Hut',
+ answer: 'PIZZAHUT'
+ }, {
+ name: 'Starbucks',
+ answer: 'STARBUCKS'
+ }]
+};
+// UI Elements
+var coinDisplay;
+var backButton;
+function initializeMenu() {
+ game.removeChildren();
+ gameState = 'menu';
+ // Title
+ var title = new Text2('Logo Quiz Challenge', {
+ size: 80,
+ fill: 0xFFFFFF
+ });
+ title.anchor.set(0.5, 0.5);
+ title.x = 1024;
+ title.y = 400;
+ game.addChild(title);
+ // Category buttons
+ var categories = ['Technology', 'Football', 'Cars', 'Food'];
+ for (var i = 0; i < categories.length; i++) {
+ var button = new CategoryButton(categories[i]);
+ button.x = 1024;
+ button.y = 600 + i * 150;
+ game.addChild(button);
+ }
+ updateCoinDisplay();
+}
+function showCategoryLogos(category) {
+ game.removeChildren();
+ gameState = 'category';
+ currentCategory = category;
+ // Category title
+ var title = new Text2(category + ' Logos', {
+ size: 60,
+ fill: 0xFFFFFF
+ });
+ title.anchor.set(0.5, 0.5);
+ title.x = 1024;
+ title.y = 300;
+ game.addChild(title);
+ // Logo buttons
+ var logos = logoDatabase[category];
+ var cols = 3;
+ var startX = 1024 - (cols - 1) * 120;
+ var startY = 500;
+ for (var i = 0; i < logos.length; i++) {
+ var logoButton = new LogoButton(logos[i].name + 'Logo', logos[i]);
+ logoButton.x = startX + i % cols * 240;
+ logoButton.y = startY + Math.floor(i / cols) * 180;
+ game.addChild(logoButton);
+ }
+ createBackButton();
+ updateCoinDisplay();
+}
+function startLogoGuess(logoData) {
+ game.removeChildren();
+ gameState = 'guessing';
+ currentLogo = logoData;
+ letterTiles = [];
+ answerSlots = [];
+ // Logo display area
+ var logoText = new Text2(logoData.name, {
+ size: 50,
+ fill: 0xFFFFFF
+ });
+ logoText.anchor.set(0.5, 0.5);
+ logoText.x = 1024;
+ logoText.y = 400;
+ game.addChild(logoText);
+ // Create answer slots
+ var answerLength = logoData.answer.length;
+ var slotSpacing = 90;
+ var startX = 1024 - (answerLength - 1) * slotSpacing / 2;
+ for (var i = 0; i < answerLength; i++) {
+ var slot = new AnswerSlot(i);
+ slot.x = startX + i * slotSpacing;
+ slot.y = 600;
+ answerSlots.push(slot);
+ game.addChild(slot);
+ }
+ // Create letter tiles
+ createLetterTiles(logoData.answer);
+ // Hint button
+ var hintBtn = new HintButton();
+ hintBtn.x = 1024;
+ hintBtn.y = 800;
+ game.addChild(hintBtn);
+ createBackButton();
+ updateCoinDisplay();
+}
+function createLetterTiles(answer) {
+ var letters = answer.split('');
+ var decoyLetters = ['X', 'Z', 'Q', 'J', 'K', 'W', 'V', 'Y'];
+ var allLetters = letters.concat(decoyLetters.slice(0, 15 - letters.length));
+ // Shuffle letters
+ for (var i = allLetters.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * (i + 1));
+ var temp = allLetters[i];
+ allLetters[i] = allLetters[j];
+ allLetters[j] = temp;
+ }
+ // Create tiles
+ var cols = 5;
+ var startX = 1024 - (cols - 1) * 50;
+ var startY = 1000;
+ for (var i = 0; i < allLetters.length; i++) {
+ var tile = new LetterTile(allLetters[i]);
+ tile.x = startX + i % cols * 100;
+ tile.y = startY + Math.floor(i / cols) * 100;
+ letterTiles.push(tile);
+ game.addChild(tile);
+ }
+}
+function createBackButton() {
+ backButton = game.addChild(LK.getAsset('backButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ }));
+ backButton.x = 150;
+ backButton.y = 150;
+ var backText = new Text2('Back', {
+ size: 30,
+ fill: 0xFFFFFF
+ });
+ backText.anchor.set(0.5, 0.5);
+ backButton.addChild(backText);
+ backButton.down = function () {
+ if (gameState === 'category') {
+ initializeMenu();
+ } else if (gameState === 'guessing') {
+ showCategoryLogos(currentCategory);
+ }
+ };
+}
+function updateCoinDisplay() {
+ if (coinDisplay) {
+ coinDisplay.parent.removeChild(coinDisplay);
+ }
+ coinDisplay = new Container();
+ var coinIcon = coinDisplay.addChild(LK.getAsset('coinIcon', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ }));
+ var coinText = new Text2(goldCoins.toString(), {
+ size: 40,
+ fill: 0xFFD700
+ });
+ coinText.anchor.set(0, 0.5);
+ coinText.x = 30;
+ coinDisplay.addChild(coinText);
+ coinDisplay.x = 1800;
+ coinDisplay.y = 100;
+ LK.gui.topRight.addChild(coinDisplay);
+}
+function useHint() {
+ if (goldCoins < 5 || !currentLogo) return;
+ goldCoins -= 5;
+ storage.goldCoins = goldCoins;
+ updateCoinDisplay();
+ // Find an empty slot and place a correct letter
+ for (var i = 0; i < answerSlots.length; i++) {
+ var slot = answerSlots[i];
+ if (!slot.occupiedLetter) {
+ var correctLetter = currentLogo.answer[i];
+ // Find the letter tile
+ for (var j = 0; j < letterTiles.length; j++) {
+ var tile = letterTiles[j];
+ if (tile.letter === correctLetter && !tile.isPlaced) {
+ placeLetter(tile, slot);
+ break;
+ }
+ }
+ break;
+ }
+ }
+ checkAnswer();
+}
+function placeLetter(letter, slot) {
+ if (slot.occupiedLetter) {
+ // Return previous letter to pool
+ var prevLetter = slot.occupiedLetter;
+ prevLetter.isPlaced = false;
+ prevLetter.targetSlot = null;
+ tween(prevLetter, {
+ x: prevLetter.originalX,
+ y: prevLetter.originalY
+ }, {
+ duration: 200
+ });
+ }
+ letter.isPlaced = true;
+ letter.targetSlot = slot;
+ slot.occupiedLetter = letter;
+ tween(letter, {
+ x: slot.x,
+ y: slot.y,
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 200
+ });
+}
+function checkAnswer() {
+ var playerAnswer = '';
+ for (var i = 0; i < answerSlots.length; i++) {
+ var slot = answerSlots[i];
+ if (slot.occupiedLetter) {
+ playerAnswer += slot.occupiedLetter.letter;
+ } else {
+ return; // Not all slots filled
+ }
+ }
+ if (playerAnswer === currentLogo.answer) {
+ // Correct answer
+ goldCoins += 10;
+ storage.goldCoins = goldCoins;
+ LK.getSound('correctAnswer').play();
+ LK.getSound('coinEarned').play();
+ LK.effects.flashScreen(0x00FF00, 500);
+ LK.setTimeout(function () {
+ showCategoryLogos(currentCategory);
+ }, 1000);
+ }
+}
+function handleMove(x, y, obj) {
+ if (draggedLetter && gameState === 'guessing') {
+ draggedLetter.x = x;
+ draggedLetter.y = y;
+ }
+}
+game.move = handleMove;
+game.up = function (x, y, obj) {
+ if (draggedLetter && gameState === 'guessing') {
+ var placed = false;
+ // Check if dropped on answer slot
+ for (var i = 0; i < answerSlots.length; i++) {
+ var slot = answerSlots[i];
+ var distance = Math.sqrt(Math.pow(draggedLetter.x - slot.x, 2) + Math.pow(draggedLetter.y - slot.y, 2));
+ if (distance < 60) {
+ placeLetter(draggedLetter, slot);
+ placed = true;
+ break;
+ }
+ }
+ if (!placed) {
+ // Return to original position
+ tween(draggedLetter, {
+ x: draggedLetter.originalX,
+ y: draggedLetter.originalY,
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 200
+ });
+ }
+ draggedLetter = null;
+ // Check if answer is complete
+ LK.setTimeout(function () {
+ checkAnswer();
+ }, 300);
+ }
+};
+// Initialize the game
+initializeMenu();
\ No newline at end of file