Code edit (9 edits merged)
Please save this source code
User prompt
ahora haz que al poner "bluxyen" salga el siguiente mensaje diciendo "tramposo, no vale" y no salga victoria
User prompt
haz que al escribir la palabra "Bluxyen" se resuelvan los 73 automaticamente
Code edit (1 edits merged)
Please save this source code
User prompt
haz de que la pantalla de victoria tenga musica y que diga "felicidades, arruinaste tu sanidad mental"
Code edit (3 edits merged)
Please save this source code
User prompt
ahora haz de que cuando tienes a todos adivinados te aparezca una pantalla felicitándote por ganar
User prompt
agrega un numero arriba que te diga cuantas entidades hay en total y cuantas llevas adivinadas
User prompt
agrega un sonido para cuando le das a "enter" y no adivinas a ninguno
Code edit (1 edits merged)
Please save this source code
User prompt
Agrega las imágenes de las entidades: Seek eyes, Seek Dam, Seek hand, Seek sludge y Seek worm
Code edit (1 edits merged)
Please save this source code
User prompt
Agrega foto de las nuevas entidades: Dam, hand, sludge y worm
Code edit (1 edits merged)
Please save this source code
User prompt
agrega las imagenes de glitch rush, glitch ambush y glitch screech
Code edit (8 edits merged)
Please save this source code
User prompt
agrega las imagenes de las nuevas entidades, RNIUSHCG==, AR0XMBUSH y SCJVEREECH
Code edit (4 edits merged)
Please save this source code
User prompt
haz de que al adivinar un personaje aparezca una imagen para ver como es el personaje
Code edit (1 edits merged)
Please save this source code
User prompt
Character Guess: Doors Edition
Initial prompt
hola, puedes crear un juego donde hay un teclado estilo qwerty y si presionas las teclas del teclado se escribe y que sea un juego de adivinar nombre de personajes. los personajes estan separados por pestañas que se expanden y contraen, la primer pestaña se llama hotel, la segunda pestaña se llama mines, la tercer pestaña se llama rooms, la cuarta pestaña se llama backdoors, la quinta pestaña se llama outdoors, la sexta pestaña se llama super hard mode y la septima pestaña se llama retro mode. hotel personajes: seek, figure, eyes, rush, ambush, screech, halt, dupe, guiding light, sally, hide, jack, timothy, dread, void, snare, el goblino, bob, jeff, shadow, glitch, AROxMBUSH, RNIUSHCG==, SCJVEREECH. mines personajes: grumble, queen grumble, dam seek, seek hand, seek sludge, seek worm, giggle, gloombats, louie. rooms personajes: A-60, A-90, A-120, curious light. backdoors personajes: blitz, haste, lookman. outdoors personajes: groundskeeper, mandrake, monument, surge, bramble, eyestalk, world lotus, caws, grampy. super hard mode personajes: jeff the killer, greed, subspace tripmine, jeep seek, evil key, banana peel, bald kreek, trollface, depth, soy jack, noob figure, john doe figure. retro mode personajes: drakobloxxer, retro figure, seeking wall, retro rush, retro ambush, retro seek, retro screech, retro el goblino, retro jeff, retro bob. cada personaje tiene una imagen adjunta al nombre, cuando adivinas cual es se muestra la imagen y el nombre, cuando aun no lo adivinas esta oculta la imagen y el nombre. los nombres pueden tener variantes como monument o monolith, o el goblino o goblino o goblin, etc, etc.
/****
* Classes
****/
var CharacterSlot = Container.expand(function (characterName, alternateNames, imageId) {
var self = Container.call(this);
var slotBg = self.attachAsset('characterSlot', {
anchorX: 0.5,
anchorY: 0.5
});
var questionMark = new Text2('?', {
size: 72,
fill: 0x666666
});
questionMark.anchor.set(0.5, 0.5);
self.addChild(questionMark);
var nameText = new Text2('', {
size: 24,
fill: 0xFFFFFF
});
nameText.anchor.set(0.5, 1);
nameText.y = 70;
self.addChild(nameText);
self.characterName = characterName;
self.alternateNames = alternateNames || [];
self.imageId = imageId;
self.isRevealed = false;
self.slotBg = slotBg;
self.questionMark = questionMark;
self.nameText = nameText;
self.characterImage = null;
self.reveal = function () {
if (!self.isRevealed) {
self.isRevealed = true;
self.removeChild(self.slotBg);
self.slotBg = self.attachAsset('characterRevealed', {
anchorX: 0.5,
anchorY: 0.5
});
self.addChildAt(self.slotBg, 0);
self.removeChild(self.questionMark);
if (self.imageId) {
self.characterImage = self.attachAsset(self.imageId, {
anchorX: 0.5,
anchorY: 0.5,
y: -10
});
}
self.nameText.setText(self.characterName.toUpperCase());
LK.getSound('correctGuess').play();
updateCounter();
}
};
self.checkGuess = function (guess) {
var normalizedGuess = guess.toLowerCase().replace(/\s+/g, '');
var normalizedName = self.characterName.toLowerCase().replace(/\s+/g, '');
if (normalizedGuess === normalizedName) {
return true;
}
for (var i = 0; i < self.alternateNames.length; i++) {
var normalizedAlt = self.alternateNames[i].toLowerCase().replace(/\s+/g, '');
if (normalizedGuess === normalizedAlt) {
return true;
}
}
return false;
};
return self;
});
var KeyboardKey = Container.expand(function (letter) {
var self = Container.call(this);
var keyBg = self.attachAsset('keyboardKey', {
anchorX: 0.5,
anchorY: 0.5
});
var keyText = new Text2(letter, {
size: 48,
fill: 0xFFFFFF
});
keyText.anchor.set(0.5, 0.5);
self.addChild(keyText);
self.letter = letter;
self.keyBg = keyBg;
self.keyText = keyText;
self.down = function (x, y, obj) {
self.removeChild(self.keyBg);
self.keyBg = self.attachAsset('keyboardKeyPressed', {
anchorX: 0.5,
anchorY: 0.5
});
self.addChildAt(self.keyBg, 0);
if (self.letter === 'SPACE') {
addToInput(' ');
} else if (self.letter === 'BACK') {
removeFromInput();
} else if (self.letter === 'ENTER') {
checkCurrentGuess();
} else {
addToInput(self.letter);
}
LK.getSound('keyPress').play();
};
self.up = function (x, y, obj) {
self.removeChild(self.keyBg);
self.keyBg = self.attachAsset('keyboardKey', {
anchorX: 0.5,
anchorY: 0.5
});
self.addChildAt(self.keyBg, 0);
};
return self;
});
var TabButton = Container.expand(function (categoryName, isActive) {
var self = Container.call(this);
var buttonBg = self.attachAsset(isActive ? 'tabButtonActive' : 'tabButton', {
anchorX: 0.5,
anchorY: 0.5
});
var buttonText = new Text2(categoryName, {
size: 36,
fill: 0xFFFFFF
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.categoryName = categoryName;
self.isActive = isActive;
self.buttonBg = buttonBg;
self.buttonText = buttonText;
self.setActive = function (active) {
self.isActive = active;
self.removeChild(self.buttonBg);
self.buttonBg = self.attachAsset(active ? 'tabButtonActive' : 'tabButton', {
anchorX: 0.5,
anchorY: 0.5
});
self.addChildAt(self.buttonBg, 0);
};
self.down = function (x, y, obj) {
if (!self.isActive) {
setActiveTab(self.categoryName);
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x1a1a1a
});
/****
* Game Code
****/
// Character images - Hotel
// Character images - Mines
// Character images - Rooms
// Character images - Backdoors
// Character images - Outdoors
// Character images - Super Hard Mode
// Character images - Retro Mode
var categories = {
'Hotel': [{
name: 'Rush',
alts: []
}, {
name: 'Ambush',
alts: ['emboscada']
}, {
name: 'Dupe',
alts: []
}, {
name: 'Guiding light',
alts: ['Blue light', 'luz guia', 'luz azul']
}, {
name: 'Sally',
alts: ['Window']
}, {
name: 'Dread',
alts: []
}, {
name: 'Void',
alts: ['vacio']
}, {
name: 'Bob',
alts: []
}, {
name: 'El goblino',
alts: ['Goblino']
}, {
name: 'Jeff',
alts: []
}, {
name: 'Screech',
alts: ['Psst']
}, {
name: 'Halt',
alts: []
}, {
name: 'Eyes',
alts: ['The Eyes', 'ojos', 'los ojos']
}, {
name: 'Seek eyes',
alts: []
}, {
name: 'Seek',
alts: ['buscar']
}, {
name: 'Figure',
alts: ['figura']
}, {
name: 'Hide',
alts: ['escondite']
}, {
name: 'Glitch',
alts: []
}, {
name: 'RNIUSHCG==',
alts: ['glitch rush']
}, {
name: 'AR0XMBUSH',
alts: ['glitch ambush']
}, {
name: 'SCJVEREECH',
alts: ['glitch screech']
}, {
name: 'Timothy',
alts: ['Spider', 'araña']
}, {
name: 'Jack',
alts: []
}, {
name: 'Shadow',
alts: ['sombra']
}],
'Mines': [{
name: 'Grumble',
alts: ['gruñidos']
}, {
name: 'Giggle',
alts: ['risitas']
}, {
name: 'Seek dam',
alts: ['dam']
}, {
name: 'Seek hand',
alts: ['hand', 'mano']
}, {
name: 'Seek sludge',
alts: ['sludge', 'lodo']
}, {
name: 'Seek worm',
alts: ['worm', 'gusano']
}, {
name: 'Queen grumble',
alts: ['Q grumble', 'reina grumble', 'r grumble', 'reina gruñidos', 'r gruñidos']
}, {
name: 'Louie',
alts: ['Rat', 'Mole', 'rata', 'topo']
}, {
name: 'Gloombat',
alts: ['Gloombats']
}],
'Rooms': [{
name: 'A60',
alts: ['A-60']
}, {
name: 'A90',
alts: ['A-90']
}, {
name: 'Curious light',
alts: ['Yellow light', 'luz curiosa', 'luz amarilla']
}, {
name: 'A120',
alts: ['A-120']
}],
'Backdoors': [{
name: 'Haste',
alts: ['prisa']
}, {
name: 'Blitz',
alts: ['Red light', 'Green light']
}, {
name: 'Vacuum',
alts: []
}, {
name: 'Lookman',
alts: ['Look man']
}],
'Outdoors': [{
name: 'Groundskeeper',
alts: ['Gardener', 'jardinero']
}, {
name: 'Eyestalk',
alts: ['Tung tung tung tung seekur']
}, {
name: 'Surge',
alts: ['rayo amarillo', 'yellow lighting']
}, {
name: 'Mandrake',
alts: ['mandragora']
}, {
name: 'Monument',
alts: ['Monolith', 'monumento', 'monolito']
}, {
name: 'Snare',
alts: ['trampa de piso', 'trampa']
}, {
name: 'Caws',
alts: ['Caw', 'cuervos', 'cuervo', 'graznido']
}, {
name: 'Grampy',
alts: ['viejo', 'anciano']
}, {
name: 'World lotus',
alts: ['Lotus', 'loto']
}, {
name: 'Bramble',
alts: ['Planterna malvada', 'enredadera']
}],
'Super Hard Mode': [{
name: 'Jeff the killer',
alts: ['Jeff killer', 'killer']
}, {
name: 'Greed',
alts: []
}, {
name: 'Noob figure',
alts: ['N figure']
}, {
name: 'Soyjack',
alts: []
}, {
name: 'Jeep seek',
alts: []
}, {
name: 'Subspace tripmine',
alts: ['S Tripmine', 'Sub trip']
}, {
name: 'Banana peel',
alts: ['Peel', 'platano']
}, {
name: 'Evil key',
alts: ['Key']
}, {
name: 'Bald Kreek',
alts: ['Kreek']
}, {
name: 'Depth',
alts: []
}, {
name: 'Trollface',
alts: []
}, {
name: 'John doe figure',
alts: ['JD figure', 'J D figure']
}],
'Retro Mode': [{
name: 'Drakobloxxer',
alts: ['Drako', 'Bloxxer']
}, {
name: 'Retro figure',
alts: ['R figure']
}, {
name: 'Seeking wall',
alts: ['Wall']
}, {
name: 'Retro rush',
alts: ['R rush']
}, {
name: 'Retro ambush',
alts: ['R ambush']
}, {
name: 'Retro screech',
alts: ['R screech']
}, {
name: 'Retro eyes',
alts: ['R eyes']
}, {
name: 'Retro el goblino',
alts: ['R el goblino', 'R goblino']
}, {
name: 'Retro bob',
alts: ['R bob']
}, {
name: 'Retro jeff',
alts: ['R jeff']
}]
};
var currentInput = '';
var activeTab = 'Hotel';
var tabButtons = {};
var characterSlots = {};
var keyboard = [];
// Create input field
var inputFieldBg = game.addChild(LK.getAsset('inputField', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 200
}));
var inputText = new Text2('', {
size: 36,
fill: 0xFFFFFF
});
inputText.anchor.set(0.5, 0.5);
inputText.x = 1024;
inputText.y = 200;
game.addChild(inputText);
var inputPrompt = new Text2('Type character name:', {
size: 28,
fill: 0xCCCCCC
});
inputPrompt.anchor.set(0.5, 1);
inputPrompt.x = 1024;
inputPrompt.y = 150;
game.addChild(inputPrompt);
// Create tabs
var tabNames = Object.keys(categories);
var tabStartX = 1024 - tabNames.length * 300 / 2 + 150;
for (var i = 0; i < tabNames.length; i++) {
var tabName = tabNames[i];
var tabButton = new TabButton(tabName, tabName === activeTab);
tabButton.x = tabStartX + i * 300;
tabButton.y = 350;
game.addChild(tabButton);
tabButtons[tabName] = tabButton;
}
// Helper function to convert character name to image asset id
function getImageId(name) {
return name.toLowerCase().replace(/\s+/g, '_').replace(/[^a-z0-9_]/g, '');
}
// Create character slots for each category
for (var categoryName in categories) {
var categoryCharacters = categories[categoryName];
characterSlots[categoryName] = [];
for (var j = 0; j < categoryCharacters.length; j++) {
var charData = categoryCharacters[j];
var imageId = getImageId(charData.name);
var slot = new CharacterSlot(charData.name, charData.alts, imageId);
characterSlots[categoryName].push(slot);
}
}
// Create keyboard
var keyboardLayout = [['!', '"', '#', '$', '%', '&', '/', '(', ')', '='], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'], ['Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'], ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ'], ['Z', 'X', 'C', 'V', 'B', 'N', 'M', '-'], ['SPACE', 'BACK', 'ENTER']];
var keyboardStartY = 1800;
var keySpacing = 130;
for (var row = 0; row < keyboardLayout.length; row++) {
var keys = keyboardLayout[row];
var rowWidth = keys.length * keySpacing;
var rowStartX = 1024 - rowWidth / 2 + keySpacing / 2;
for (var col = 0; col < keys.length; col++) {
var key = new KeyboardKey(keys[col]);
key.x = rowStartX + col * keySpacing;
key.y = keyboardStartY + row * 120;
game.addChild(key);
keyboard.push(key);
}
}
function addToInput(_char) {
currentInput += _char;
inputText.setText(currentInput.toUpperCase());
}
function removeFromInput() {
if (currentInput.length > 0) {
currentInput = currentInput.slice(0, -1);
inputText.setText(currentInput.toUpperCase());
}
}
function checkCurrentGuess() {
if (currentInput.length === 0) {
return;
}
var slots = characterSlots[activeTab];
var foundMatch = false;
for (var i = 0; i < slots.length; i++) {
var slot = slots[i];
if (!slot.isRevealed && slot.checkGuess(currentInput)) {
slot.reveal();
currentInput = '';
inputText.setText('');
foundMatch = true;
break;
}
}
if (!foundMatch) {
LK.getSound('wrongGuess').play();
}
}
function setActiveTab(tabName) {
if (activeTab === tabName) {
return;
}
// Hide current category slots
var oldSlots = characterSlots[activeTab];
for (var i = 0; i < oldSlots.length; i++) {
game.removeChild(oldSlots[i]);
}
// Update tab buttons
tabButtons[activeTab].setActive(false);
tabButtons[tabName].setActive(true);
activeTab = tabName;
// Show new category slots
displayCharacterSlots();
// Clear input
currentInput = '';
inputText.setText('');
}
function displayCharacterSlots() {
var slots = characterSlots[activeTab];
var slotsPerRow = 7;
var slotSpacing = 260;
var rowSpacing = 200;
for (var i = 0; i < slots.length; i++) {
var slot = slots[i];
var row = Math.floor(i / slotsPerRow);
var col = i % slotsPerRow;
var rowWidth = Math.min(slots.length - row * slotsPerRow, slotsPerRow) * slotSpacing;
var startX = 1024 - rowWidth / 2 + slotSpacing / 2;
slot.x = startX + col * slotSpacing;
slot.y = 600 + row * rowSpacing;
game.addChild(slot);
}
}
// Create counter text to show progress
var counterText = new Text2('', {
size: 48,
fill: 0xFFFFFF
});
counterText.anchor.set(0.5, 0);
counterText.x = 1024;
counterText.y = 50;
game.addChild(counterText);
// Function to update counter display
function updateCounter() {
var totalEntities = 0;
var guessedEntities = 0;
// Count total and guessed entities across all categories
for (var categoryName in characterSlots) {
var slots = characterSlots[categoryName];
totalEntities += slots.length;
for (var i = 0; i < slots.length; i++) {
if (slots[i].isRevealed) {
guessedEntities++;
}
}
}
counterText.setText(guessedEntities + '/' + totalEntities);
}
// Initialize with first category
displayCharacterSlots();
// Initialize counter
updateCounter(); ===================================================================
--- original.js
+++ change.js
@@ -46,8 +46,9 @@
});
}
self.nameText.setText(self.characterName.toUpperCase());
LK.getSound('correctGuess').play();
+ updateCounter();
}
};
self.checkGuess = function (guess) {
var normalizedGuess = guess.toLowerCase().replace(/\s+/g, '');
@@ -520,6 +521,33 @@
slot.y = 600 + row * rowSpacing;
game.addChild(slot);
}
}
+// Create counter text to show progress
+var counterText = new Text2('', {
+ size: 48,
+ fill: 0xFFFFFF
+});
+counterText.anchor.set(0.5, 0);
+counterText.x = 1024;
+counterText.y = 50;
+game.addChild(counterText);
+// Function to update counter display
+function updateCounter() {
+ var totalEntities = 0;
+ var guessedEntities = 0;
+ // Count total and guessed entities across all categories
+ for (var categoryName in characterSlots) {
+ var slots = characterSlots[categoryName];
+ totalEntities += slots.length;
+ for (var i = 0; i < slots.length; i++) {
+ if (slots[i].isRevealed) {
+ guessedEntities++;
+ }
+ }
+ }
+ counterText.setText(guessedEntities + '/' + totalEntities);
+}
// Initialize with first category
-displayCharacterSlots();
\ No newline at end of file
+displayCharacterSlots();
+// Initialize counter
+updateCounter();
\ No newline at end of file