User prompt
Teknoloji futbolu, araba gibi hani bu kategoriler en üstten en alta doğru her birinden iki tane bildikçe diğer kategori açılsın.
User prompt
Telefon markası olan Xiaomi şöyle ekle, M harfi ile İ harfi.
User prompt
Teknoloji kısmına chat gpt ekle harf harf söylüyorum c h a g p t chat gpt yani Allah Allah yav
User prompt
Tog arabasını harf harf söylüyorum öyle yap T O G G birleştirerek
User prompt
TOG ARABASINI 2G İLE YAP G
User prompt
Arabalar kısmına Tog ekle
Code edit (1 edits merged)
Please save this source code
User prompt
ipucuya tıklayıp aldığımız harfler kaybolmasın asla ve rengi farklı olsun kaldıramayalım
User prompt
Arabalar kısmına Lamborghini ekle.
User prompt
Araba kısmına Tesla ekle.
User prompt
Instagram ile ilgili ne var bilmiyorum ama Instagram'ın tüm her şeyini sil ve tekrar baştan yap gözükmüyor.
User prompt
Teknoloji kısmına Instagram ekle.
User prompt
Futbol kısmına Galatasaray'a gidelim.
User prompt
Futbola Bayern Münih ekle.
User prompt
tamamladığımız ııı bu macaların altında tamamlandı ve tek şeyi var ya onun da altında artı on olsun. Yani ne kadar kazanıyorsak işte o kadar altın kazandın anlamına gelmesi için.
User prompt
Burger King yazısında Burger ve King arasında ayrım olsun yani bir boşluk olsun yazı olarak.
User prompt
Yemek kısmına Burger King ekle.
User prompt
Tüm verileri silince sadece yaptığımız ve bulduğumuz bulmacalar silinsin, paramız sıfırlanmasın. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Teknoloji kısmına bu sefer TikTok ekle.
User prompt
Logo oluşturmuyor musun? Instagram için. Oluştursana.
User prompt
gözükmek değil. Sen direkt Instagram logosunu teknoloji kısmına koymamışsın.
User prompt
eklediğin instagram gözükmüyor teknoloji kısmında
User prompt
Teknolojiyle ilgili olan logoların yerine Instagram'ı da ekle.
User prompt
Bu harflerin bazen gözükmemesi ile ilgili hatalar var.
User prompt
tüm verileri sil düğmesine basınca silmek istediğinden emin misin gibi bir soru sorsun evet veya hayır düğmeleri olsun seçelim ↪💡 Consider importing and using the following plugins: @upit/storage.v1
/****
* Plugins
****/
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
});
// Set background color based on category
if (category === 'Cars') {
bg.tint = 0x000000; // Black background for Cars (Arabalar)
} else if (category === 'Food') {
bg.tint = 0xFF0000; // Red background for Food (Yemekler)
} else if (category === 'Football') {
bg.tint = 0x00FF00; // Green background for Football (Futbol)
}
var text = new Text2(category, {
size: 80,
fill: 0xFFFFFF
});
text.anchor.set(0.5, 0.5);
self.addChild(text);
self.category = category;
self.down = function (x, y, obj) {
self.scaleX = 0.95;
self.scaleY = 0.95;
showCategoryLogos(self.category);
};
self.up = function (x, y, obj) {
self.scaleX = 1;
self.scaleY = 1;
};
return self;
});
var ExitButton = Container.expand(function () {
var self = Container.call(this);
var bg = self.attachAsset('exitButton', {
anchorX: 0.5,
anchorY: 0.5
});
var text = new Text2('Exit', {
size: 50,
fill: 0xFFFFFF
});
text.anchor.set(0.5, 0.5);
self.addChild(text);
self.down = function (x, y, obj) {
self.scaleX = 0.95;
self.scaleY = 0.95;
showCategoryLogos(currentCategory);
};
self.up = function (x, y, obj) {
self.scaleX = 1;
self.scaleY = 1;
};
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: 50,
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: 60,
fill: 0x333333
});
text.anchor.set(0.5, 0.5);
// Ensure text is visible and properly positioned
text.x = 0;
text.y = 0;
text.alpha = 1;
text.visible = true;
self.addChild(text);
self.letter = letter;
self.originalX = 0;
self.originalY = 0;
self.isPlaced = false;
self.targetSlot = null;
// Store reference to text for easier access
self.letterText = text;
self.down = function (x, y, obj) {
if (!self.isPlaced) {
// Find next available answer slot
var nextSlot = null;
for (var i = 0; i < answerSlots.length; i++) {
if (!answerSlots[i].occupiedLetter) {
nextSlot = answerSlots[i];
break;
}
}
if (nextSlot) {
placeLetter(self, nextSlot);
checkAnswer();
}
} else {
// Letter is placed, remove it from answer slot
removeLetter(self);
}
};
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
});
// Get logo asset name from company name
var logoAssetName = logoData.name.toLowerCase() + 'Logo';
if (logoData.name === 'Real Madrid') logoAssetName = 'realmadridLogo';
if (logoData.name === 'Manchester United') logoAssetName = 'manchesterLogo';
if (logoData.name === 'McDonalds') logoAssetName = 'mcdonaldsLogo';
if (logoData.name === 'Pizza Hut') logoAssetName = 'pizzahutLogo';
if (logoData.name === 'Instagram') logoAssetName = 'instagramLogo';
if (logoData.name === 'TikTok') logoAssetName = 'tiktokLogo';
if (logoData.name === 'Burger King') logoAssetName = 'burgerkingLogo';
if (logoData.name === 'Bayern München') logoAssetName = 'bayernmunchenLogo';
if (logoData.name === 'Galatasaray') logoAssetName = 'galatasarayLogo';
if (logoData.name === 'Tesla') logoAssetName = 'teslaLogo';
if (logoData.name === 'Lamborghini') logoAssetName = 'lamborghiniLogo';
var logoVisual = self.attachAsset(logoAssetName, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.8,
scaleY: 0.8
});
self.logoData = logoData;
self.down = function (x, y, obj) {
// Check if logo is completed
var logoKey = currentCategory + '_' + self.logoData.name;
if (completedLogos[logoKey]) {
// Show completed logo name instead of starting the game
showCompletedLogo(self.logoData);
return;
}
self.scaleX = 0.95;
self.scaleY = 0.95;
startLogoGuess(self.logoData);
};
self.up = function (x, y, obj) {
self.scaleX = 1;
self.scaleY = 1;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2C3E50
});
/****
* Game Code
****/
// Logo assets - Food
// Logo assets - Cars
// Logo assets - Football
// Logo assets - Technology
// Game state variables
var gameState = 'menu'; // 'menu', 'category', 'guessing'
var goldCoins = storage.goldCoins || 10;
var completedLogos = storage.completedLogos || {};
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: 'Instagram',
answer: 'INSTAGRAM'
}, {
name: 'TikTok',
answer: 'TIKTOK'
}],
'Football': [{
name: 'Barcelona',
answer: 'BARCELONA'
}, {
name: 'Real Madrid',
answer: 'REALMADRID'
}, {
name: 'Liverpool',
answer: 'LIVERPOOL'
}, {
name: 'Manchester United',
answer: 'MANCHESTER'
}, {
name: 'Arsenal',
answer: 'ARSENAL'
}, {
name: 'Bayern München',
answer: 'BAYERNMUNCHEN'
}, {
name: 'Galatasaray',
answer: 'GALATASARAY'
}],
'Cars': [{
name: 'BMW',
answer: 'BMW'
}, {
name: 'Mercedes',
answer: 'MERCEDES'
}, {
name: 'Toyota',
answer: 'TOYOTA'
}, {
name: 'Ferrari',
answer: 'FERRARI'
}, {
name: 'Audi',
answer: 'AUDI'
}, {
name: 'Tesla',
answer: 'TESLA'
}, {
name: 'Lamborghini',
answer: 'LAMBORGHINI'
}],
'Food': [{
name: 'McDonalds',
answer: 'MCDONALDS'
}, {
name: 'KFC',
answer: 'KFC'
}, {
name: 'Subway',
answer: 'SUBWAY'
}, {
name: 'Pizza Hut',
answer: 'PIZZAHUT'
}, {
name: 'Starbucks',
answer: 'STARBUCKS'
}, {
name: 'Dominos',
answer: 'DOMINOS'
}, {
name: 'Burger King',
answer: 'BURGERKING'
}]
};
// UI Elements
var coinDisplay;
var backButton;
function initializeMenu() {
game.removeChildren();
gameState = 'menu';
// Title
var title = new Text2('Logo Quiz Challenge', {
size: 120,
fill: 0xFFFFFF
});
title.anchor.set(0.5, 0.5);
title.x = 1024;
title.y = 500;
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 = 800 + i * 220;
game.addChild(button);
}
// Settings icon - larger circular button below coin display
var settingsIcon = LK.getAsset('settingsIcon', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.0,
scaleY: 1.0
});
settingsIcon.x = 1848; // Same X position as coin display
settingsIcon.y = 320; // Further below coin display
settingsIcon.down = function (x, y, obj) {
settingsIcon.scaleX = 0.95;
settingsIcon.scaleY = 0.95;
showSettings();
};
settingsIcon.up = function (x, y, obj) {
settingsIcon.scaleX = 1.0;
settingsIcon.scaleY = 1.0;
};
game.addChild(settingsIcon);
// Add gear symbol text on top of settings icon
var gearSymbol = new Text2('⚙', {
size: 60,
fill: 0xFFFFFF
});
gearSymbol.anchor.set(0.5, 0.5);
gearSymbol.x = 1848;
gearSymbol.y = 320;
game.addChild(gearSymbol);
updateCoinDisplay();
}
function showCategoryLogos(category) {
game.removeChildren();
gameState = 'category';
currentCategory = category;
// Category title
var title = new Text2(category + ' Logos', {
size: 100,
fill: 0xFFFFFF
});
title.anchor.set(0.5, 0.5);
title.x = 1024;
title.y = 400;
game.addChild(title);
// Logo buttons - filter out completed logos
var logos = logoDatabase[category];
var availableLogos = [];
for (var i = 0; i < logos.length; i++) {
var logoKey = category + '_' + logos[i].name;
if (!completedLogos[logoKey]) {
availableLogos.push(logos[i]);
}
}
var cols = 3;
var startX = 1024 - (cols - 1) * 250;
var startY = 700;
// Show all logos with completion status
var allLogos = logoDatabase[category];
for (var i = 0; i < allLogos.length; i++) {
var logoButton = new LogoButton(allLogos[i].name + 'Logo', allLogos[i]);
logoButton.x = startX + i % cols * 500;
logoButton.y = startY + Math.floor(i / cols) * 450;
game.addChild(logoButton);
// Check if this logo is completed and add checkmark
var logoKey = category + '_' + allLogos[i].name;
if (completedLogos[logoKey]) {
var checkmark = logoButton.attachAsset('checkmark', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.8,
scaleY: 0.8
});
checkmark.x = 150; // Position in top-right corner of logo button
checkmark.y = -150;
}
}
// Exit button
var exitBtn = new ExitButton();
exitBtn.x = 1848; // Position in top right area, below coins
exitBtn.y = 350; // Further below the coin display
exitBtn.down = function (x, y, obj) {
exitBtn.scaleX = 0.95;
exitBtn.scaleY = 0.95;
initializeMenu(); // Return to main menu instead of category
};
exitBtn.up = function (x, y, obj) {
exitBtn.scaleX = 1;
exitBtn.scaleY = 1;
};
game.addChild(exitBtn);
updateCoinDisplay();
}
function startLogoGuess(logoData) {
game.removeChildren();
gameState = 'guessing';
currentLogo = logoData;
letterTiles = [];
answerSlots = [];
// Logo display area - larger and more prominent visual logo
var logoAssetName = logoData.name.toLowerCase() + 'Logo';
if (logoData.name === 'Real Madrid') logoAssetName = 'realmadridLogo';
if (logoData.name === 'Manchester United') logoAssetName = 'manchesterLogo';
if (logoData.name === 'McDonalds') logoAssetName = 'mcdonaldsLogo';
if (logoData.name === 'Pizza Hut') logoAssetName = 'pizzahutLogo';
if (logoData.name === 'Instagram') logoAssetName = 'instagramLogo';
if (logoData.name === 'TikTok') logoAssetName = 'tiktokLogo';
if (logoData.name === 'Burger King') logoAssetName = 'burgerkingLogo';
if (logoData.name === 'Bayern München') logoAssetName = 'bayernmunchenLogo';
if (logoData.name === 'Galatasaray') logoAssetName = 'galatasarayLogo';
if (logoData.name === 'Tesla') logoAssetName = 'teslaLogo';
if (logoData.name === 'Lamborghini') logoAssetName = 'lamborghiniLogo';
var logoVisual = LK.getAsset(logoAssetName, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
logoVisual.x = 1024;
logoVisual.y = 500;
game.addChild(logoVisual);
// Create answer slots
var answerLength = logoData.answer.length;
var slotSpacing = 140;
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 = 900;
answerSlots.push(slot);
game.addChild(slot);
}
// Create letter tiles
createLetterTiles(logoData.answer);
// Hint button
var hintBtn = new HintButton();
hintBtn.x = 1024;
hintBtn.y = 1200;
game.addChild(hintBtn);
// Exit button
var exitBtn = new ExitButton();
exitBtn.x = 1848; // Position in top right area, below coins
exitBtn.y = 350; // Further below the coin display
game.addChild(exitBtn);
updateCoinDisplay();
}
function createLetterTiles(answer) {
var letters = answer.split('');
var decoyLetters = ['X', 'Z', 'Q', 'J', 'K', 'W', 'V', 'Y', 'H', 'P', 'C', 'U', 'N', 'D', 'F'];
var allLetters = letters.slice(); // Copy answer letters
// Add decoy letters to reach exactly 15 total letters
var decoyCount = 15 - letters.length;
if (decoyCount > 0) {
// Add decoy letters, cycling through the decoy array if needed
for (var d = 0; d < decoyCount; d++) {
allLetters.push(decoyLetters[d % decoyLetters.length]);
}
}
// If answer is longer than 15, just use the first 15 letters
if (allLetters.length > 15) {
allLetters = allLetters.slice(0, 15);
}
// 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) * 80;
var startY = 1450;
for (var i = 0; i < allLetters.length; i++) {
var tile = new LetterTile(allLetters[i]);
tile.x = startX + i % cols * 160;
tile.y = startY + Math.floor(i / cols) * 160;
// Store original position for reset functionality
tile.originalX = tile.x;
tile.originalY = tile.y;
// Ensure tile is visible
tile.alpha = 1;
tile.visible = true;
letterTiles.push(tile);
game.addChild(tile);
}
}
function createBackButton() {
// Back button functionality removed
}
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: 60,
fill: 0xFFD700
});
coinText.anchor.set(1, 0.5);
coinText.x = -50;
coinDisplay.addChild(coinText);
coinDisplay.x = -80;
coinDisplay.y = 150;
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);
// Mark this as a hint letter - permanent and different color
slot.letterCopy.isHintLetter = true;
slot.letterCopy.letterText.fill = 0x00FF00; // Green color for hint letters
break;
}
}
break;
}
}
checkAnswer();
}
function removeLetter(letter) {
if (!letter.isPlaced || !letter.targetSlot) return;
var slot = letter.targetSlot;
// Check if this is a hint letter - if so, don't remove it
if (slot.letterCopy && slot.letterCopy.isHintLetter) {
return; // Cannot remove hint letters
}
// Clear slot
slot.occupiedLetter = null;
// Remove letter copy from answer slot
if (slot.letterCopy) {
slot.letterCopy.destroy();
slot.letterCopy = null;
}
// Reset letter to original state
letter.isPlaced = false;
letter.targetSlot = null;
letter.alpha = 1;
letter.x = letter.originalX;
letter.y = letter.originalY;
}
function placeLetter(letter, slot) {
if (slot.occupiedLetter) {
// Check if the current letter in slot is a hint letter - if so, don't replace it
if (slot.letterCopy && slot.letterCopy.isHintLetter) {
return; // Cannot replace hint letters
}
// Return previous letter to pool
var prevLetter = slot.occupiedLetter;
prevLetter.isPlaced = false;
prevLetter.targetSlot = null;
prevLetter.alpha = 1;
// Remove the letter copy from answer slot
if (slot.letterCopy) {
slot.letterCopy.destroy();
slot.letterCopy = null;
}
prevLetter.x = prevLetter.originalX;
prevLetter.y = prevLetter.originalY;
}
letter.isPlaced = true;
letter.targetSlot = slot;
slot.occupiedLetter = letter;
// Make the original tile appear faded/hidden
letter.alpha = 0.3;
// Create a copy of the letter in the answer slot
var letterCopy = new LetterTile(letter.letter);
letterCopy.x = slot.x;
letterCopy.y = slot.y;
letterCopy.isPlaced = true;
letterCopy.isHintLetter = false; // Initialize as not a hint letter
letterCopy.down = function (x, y, obj) {
// Only allow removal if not a hint letter
if (!letterCopy.isHintLetter) {
removeLetter(letter);
}
};
slot.letterCopy = letterCopy;
game.addChild(letterCopy);
}
function showSettings() {
game.removeChildren();
gameState = 'settings';
// Settings title
var title = new Text2('Ayarlar', {
size: 120,
fill: 0xFFFFFF
});
title.anchor.set(0.5, 0.5);
title.x = 1024;
title.y = 500;
game.addChild(title);
// Reset data button
var resetButton = new CategoryButton('Tüm Verileri Sıfırla');
resetButton.x = 1024;
resetButton.y = 900;
resetButton.down = function (x, y, obj) {
resetButton.scaleX = 0.95;
resetButton.scaleY = 0.95;
showResetConfirmation();
};
resetButton.up = function (x, y, obj) {
resetButton.scaleX = 1;
resetButton.scaleY = 1;
};
game.addChild(resetButton);
// Back to menu button
var backButton = new CategoryButton('Ana Menüye Dön');
backButton.x = 1024;
backButton.y = 1200;
backButton.down = function (x, y, obj) {
backButton.scaleX = 0.95;
backButton.scaleY = 0.95;
initializeMenu();
};
backButton.up = function (x, y, obj) {
backButton.scaleX = 1;
backButton.scaleY = 1;
};
game.addChild(backButton);
updateCoinDisplay();
}
function showResetConfirmation() {
game.removeChildren();
gameState = 'resetConfirm';
// Confirmation title
var title = new Text2('Silmek İstediğinden Emin Misin?', {
size: 100,
fill: 0xFFFFFF
});
title.anchor.set(0.5, 0.5);
title.x = 1024;
title.y = 600;
game.addChild(title);
// Yes button
var yesButton = new CategoryButton('Evet');
yesButton.x = 700;
yesButton.y = 1000;
yesButton.down = function (x, y, obj) {
yesButton.scaleX = 0.95;
yesButton.scaleY = 0.95;
// Reset only completed puzzles, preserve coins
storage.completedLogos = {};
completedLogos = {};
// Flash screen to show reset happened
LK.effects.flashScreen(0xFF0000, 500);
// Go back to main menu after reset
LK.setTimeout(function () {
initializeMenu();
}, 1000);
};
yesButton.up = function (x, y, obj) {
yesButton.scaleX = 1;
yesButton.scaleY = 1;
};
game.addChild(yesButton);
// No button
var noButton = new CategoryButton('Hayır');
noButton.x = 1348;
noButton.y = 1000;
noButton.down = function (x, y, obj) {
noButton.scaleX = 0.95;
noButton.scaleY = 0.95;
showSettings();
};
noButton.up = function (x, y, obj) {
noButton.scaleX = 1;
noButton.scaleY = 1;
};
game.addChild(noButton);
updateCoinDisplay();
}
function showCompletedLogo(logoData) {
game.removeChildren();
gameState = 'completed';
currentLogo = logoData;
// Logo display area - larger and more prominent visual logo
var logoAssetName = logoData.name.toLowerCase() + 'Logo';
if (logoData.name === 'Real Madrid') logoAssetName = 'realmadridLogo';
if (logoData.name === 'Manchester United') logoAssetName = 'manchesterLogo';
if (logoData.name === 'McDonalds') logoAssetName = 'mcdonaldsLogo';
if (logoData.name === 'Pizza Hut') logoAssetName = 'pizzahutLogo';
if (logoData.name === 'Instagram') logoAssetName = 'instagramLogo';
if (logoData.name === 'TikTok') logoAssetName = 'tiktokLogo';
if (logoData.name === 'Burger King') logoAssetName = 'burgerkingLogo';
if (logoData.name === 'Bayern München') logoAssetName = 'bayernmunchenLogo';
if (logoData.name === 'Galatasaray') logoAssetName = 'galatasarayLogo';
if (logoData.name === 'Tesla') logoAssetName = 'teslaLogo';
if (logoData.name === 'Lamborghini') logoAssetName = 'lamborghiniLogo';
var logoVisual = LK.getAsset(logoAssetName, {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
logoVisual.x = 1024;
logoVisual.y = 500;
game.addChild(logoVisual);
// Show "COMPLETED" text
var completedText = new Text2('TAMAMLANDI', {
size: 100,
fill: 0x00FF00
});
completedText.anchor.set(0.5, 0.5);
completedText.x = 1024;
completedText.y = 800;
game.addChild(completedText);
// Show the answer
var displayName = logoData.name;
if (logoData.name === 'Burger King') {
displayName = 'Burger King'; // Ensure space between Burger and King
}
var answerText = new Text2(displayName, {
size: 80,
fill: 0xFFFFFF
});
answerText.anchor.set(0.5, 0.5);
answerText.x = 1024;
answerText.y = 900;
game.addChild(answerText);
// Show coin reward text
var coinRewardText = new Text2('+10', {
size: 60,
fill: 0xFFD700
});
coinRewardText.anchor.set(0.5, 0.5);
coinRewardText.x = 1024;
coinRewardText.y = 950;
game.addChild(coinRewardText);
// Add checkmark
var checkmark = LK.getAsset('checkmark', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1.5,
scaleY: 1.5
});
checkmark.x = 1024;
checkmark.y = 1050;
game.addChild(checkmark);
// Exit button
var exitBtn = new ExitButton();
exitBtn.x = 1024;
exitBtn.y = 1300;
exitBtn.down = function (x, y, obj) {
exitBtn.scaleX = 0.95;
exitBtn.scaleY = 0.95;
showCategoryLogos(currentCategory); // Return to category view
};
exitBtn.up = function (x, y, obj) {
exitBtn.scaleX = 1;
exitBtn.scaleY = 1;
};
game.addChild(exitBtn);
updateCoinDisplay();
}
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;
// Mark logo as completed
var logoKey = currentCategory + '_' + currentLogo.name;
completedLogos[logoKey] = true;
storage.completedLogos = completedLogos;
LK.getSound('correctAnswer').play();
LK.getSound('coinEarned').play();
LK.effects.flashScreen(0x00FF00, 500);
LK.setTimeout(function () {
showCategoryLogos(currentCategory);
}, 1000);
}
}
function handleMove(x, y, obj) {
// Move handler no longer needed for letter dragging
}
game.move = handleMove;
game.up = function (x, y, obj) {
// Up handler no longer needed for letter dragging
};
// Initialize the game
initializeMenu(); ===================================================================
--- original.js
+++ change.js
@@ -537,8 +537,11 @@
for (var j = 0; j < letterTiles.length; j++) {
var tile = letterTiles[j];
if (tile.letter === correctLetter && !tile.isPlaced) {
placeLetter(tile, slot);
+ // Mark this as a hint letter - permanent and different color
+ slot.letterCopy.isHintLetter = true;
+ slot.letterCopy.letterText.fill = 0x00FF00; // Green color for hint letters
break;
}
}
break;
@@ -548,8 +551,12 @@
}
function removeLetter(letter) {
if (!letter.isPlaced || !letter.targetSlot) return;
var slot = letter.targetSlot;
+ // Check if this is a hint letter - if so, don't remove it
+ if (slot.letterCopy && slot.letterCopy.isHintLetter) {
+ return; // Cannot remove hint letters
+ }
// Clear slot
slot.occupiedLetter = null;
// Remove letter copy from answer slot
if (slot.letterCopy) {
@@ -564,8 +571,12 @@
letter.y = letter.originalY;
}
function placeLetter(letter, slot) {
if (slot.occupiedLetter) {
+ // Check if the current letter in slot is a hint letter - if so, don't replace it
+ if (slot.letterCopy && slot.letterCopy.isHintLetter) {
+ return; // Cannot replace hint letters
+ }
// Return previous letter to pool
var prevLetter = slot.occupiedLetter;
prevLetter.isPlaced = false;
prevLetter.targetSlot = null;
@@ -587,10 +598,14 @@
var letterCopy = new LetterTile(letter.letter);
letterCopy.x = slot.x;
letterCopy.y = slot.y;
letterCopy.isPlaced = true;
+ letterCopy.isHintLetter = false; // Initialize as not a hint letter
letterCopy.down = function (x, y, obj) {
- removeLetter(letter);
+ // Only allow removal if not a hint letter
+ if (!letterCopy.isHintLetter) {
+ removeLetter(letter);
+ }
};
slot.letterCopy = letterCopy;
game.addChild(letterCopy);
}