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
Initial prompt
Logo tahmin oyunu şu şekilde tasarlanacak: Oyunda çeşitli kategoriler olacak; örneğin “Futbol Takımları” (Galatasaray, Real Madrid gibi), “Teknoloji Markaları” (Apple, Samsung gibi), “Araba Markaları” (BMW, Mercedes gibi) ve “Yiyecek/İçecek Firmaları” (Coca-Cola, Ülker gibi) gibi kategorilere ayrılmış şekilde logolar sunulacak. Her logonun bir görseli olacak ve bu görselin adı örneğin “AppleLogo.png” gibi isimlendirilecek. Oyuncu bir logoya tıkladığında tahmin ekranına geçilecek. Bu ekranda aşağıda rastgele harflerden oluşan bir alan yer alacak: bu harfler logonun doğru ismini yazmak için gereken harfleri ve yanıltıcı birkaç ekstra harfi içerecek; örneğin toplamda 15 harf görünecek. Oyuncu bu harfleri kullanarak doğru ismi kutulara sıralı şekilde yerleştirecek. Ayrıca her doğru bilinen logo için oyuncuya 10 altın verilecek. Eğer oyuncu takıldığı bir logoda “harf istiyorum” butonuna basarsa sistem rastgele doğru isme ait bir harfi açıklar, ancak bu işlem her seferinde 5 altın harcatır. Böylece oyuncular, hem bildikçe ödül kazanacak hem de ipuçları almak için stratejik şekilde altınlarını kullanacak. Oyunun yapay zeka destekli sistemine bu mekanikler açık şekilde tanımlanarak kategorilere göre logolar, isim eşleşmeleri, harf rastgeleliği ve altın dengesi detaylıca kontrol edilebilecek şekilde entegre edilecek.
/****
* 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