User prompt
Please fix the bug: 'ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.setText('Score: ' + LK.getScore());' Line Number: 188
Code edit (13 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: scoreText is not defined' in or related to this line: 'scoreText.anchor.set(0.5, 0);' Line Number: 127
Code edit (5 edits merged)
Please save this source code
User prompt
change background color to a sofr light blue
User prompt
change background color to a soft pink
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: tileSpacing is not defined' in or related to this line: 'hexTile.x = startX + j * tileSpacing + (Math.max.apply(Math, gridRows) - gridRows[i]) * tileSpacing / 2;' Line Number: 170
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: tileSpacing is not defined' in or related to this line: 'var startX = (2048 - Math.max.apply(Math, gridRows) * tileSpacing) / 2 + tileSpacing / 2;' Line Number: 155
User prompt
decrease tilespace for y position in 40 pixels but keep x tilespace the same
Code edit (4 edits merged)
Please save this source code
User prompt
do not change the x space between tiles but decrease the y space by 20 pixels
Code edit (11 edits merged)
Please save this source code
User prompt
reduce in half the space between rows of tiles
Code edit (1 edits merged)
Please save this source code
User prompt
reduce space between rows of tiles by 5 pixels
User prompt
reduce heigh between rows by half
User prompt
change score font to courier new
User prompt
change score font to gill sans
User prompt
change score font to impact
User prompt
change score font to Trebuchet MS
User prompt
Every time a tile is clicked selected it the number should be visible. But when they are de-selected they should be hidden again.
Code edit (2 edits merged)
Please save this source code
/**** * Classes ****/ // HexTile class for the hexagon tiles var HexTile = Container.expand(function (id, colorIndex) { var self = Container.call(this); self.id = id; var hexGraphics = self.attachAsset('hexTile', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: 2 }); var numberText = new Text2('', { size: 100, fill: '#000000' }); numberText.anchor.set(0.5, 0.5); self.addChild(numberText); self.setNumber = function (number) { self.number = number; numberText.setText(number.toString()); }; self.isSelected = false; self.toggleSelect = function () { self.isSelected = !self.isSelected; hexGraphics.alpha = self.isSelected ? 0.5 : 1; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 // Init game with electric green background }); /**** * Game Code ****/ // Hexagon tile for matching function resetGameForNextLevel() { // Reset hexTiles numbers for (var i = 0; i < hexTiles.length; i++) { // Number generation and assignment removed from here to be handled inside initializeHexTiles function. } // Reset goal var randomTile1 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; var randomTile2 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; while (randomTile1 === randomTile2) { randomTile2 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; } goalNumber = randomTile1.number + randomTile2.number; goalText.setText('Sum: ' + goalNumber); // Reset combinations correctCombinations = 0; for (var i = 0; i < hexTiles.length; i++) { for (var j = i + 1; j < hexTiles.length; j++) { if (hexTiles[i].number + hexTiles[j].number === goalNumber) { correctCombinations++; } } } combinationsText.setText('Answers: ' + correctGuess + '/' + correctCombinations); } var level = 1; var levelText = new Text2('Level: ' + level, { size: 75, fill: '#ffffff' }); levelText.anchor.set(1, 0); LK.gui.topRight.addChild(levelText); correctGuess = 0; var correctGuess = 0; var lives = 3; var lifeIcons = []; for (var i = 0; i < lives; i++) { var lifeIcon = LK.getAsset('lifeIcon', { anchorX: 1, anchorY: 0, x: -i * 90, y: 100 }); LK.gui.topRight.addChild(lifeIcon); lifeIcons.push(lifeIcon); } var countdown = 15; if (hexTiles) { for (var i = 0; i < hexTiles.length; i++) { hexTiles[i].interactive = false; } } var countdownText = new Text2('Memorize: ' + countdown, { size: 100, fill: '#ffffff' }); countdownText.anchor.set(0.5, 1); LK.gui.top.addChild(countdownText); var countdownInterval = LK.setInterval(function () { countdown--; if (countdown <= 0) { for (var i = 0; i < hexTiles.length; i++) { hexTiles[i].interactive = true; } countdownText.alpha = 0; goalText.visible = true; combinationsText.visible = true; LK.clearInterval(countdownInterval); for (var i = 0; i < hexTiles.length; i++) { hexTiles[i].getChildAt(1).setText(''); } } else { countdownText.setText('Memorize: ' + countdown); } }, 1000); countdownText.y += 400; var scoreText = new Text2('Score: 0', { size: 75, fill: '#ffffff' }); scoreText.anchor.set(0.5, 0); LK.gui.top.addChild(scoreText); // Create goal number and display it below the score if (hexTiles && hexTiles.length > 1) { sumOfNeighbours = hexTiles[hexTiles.length - 2].number + hexTiles[hexTiles.length - 1].number; } // sumText initialization moved to after hexTiles initialization var sumOfNeighbours = 0; var hexTiles = []; var selectedTiles = []; var guessedPairs = {}; var gridRows = []; function initializeHexTiles() { function initializeHexTiles() { // Define gridRows based on the current game level var gridRows; if (level <= 2) { gridRows = [2, 3, 2]; } else if (level === 3) { gridRows = [3, 4, 3]; } else if (level === 4) { gridRows = [4, 5, 4]; } else { // Default to the highest defined grid for levels beyond those explicitly defined gridRows = [3, 4, 5, 4, 3]; } var tileSpacingX = 250; var tileSpacingY = 250; var startX = (2048 - Math.max.apply(Math, gridRows) * tileSpacingX) / 2 + tileSpacingX / 2; var startY = (2732 - gridRows.length * tileSpacingY) / 2 + tileSpacingY / 2; // Initialize hex tiles for (var i = 0; i < gridRows.length; i++) { for (var j = 0; j < gridRows[i]; j++) { var hexTile = new HexTile(i * gridRows.length + j); var numberRange; if (level <= 2) { numberRange = 3; } else if (level <= 5) { numberRange = 9; } else { numberRange = 12; } hexTile.setNumber(Math.floor(Math.random() * numberRange) + 1); hexTile.x = startX + j * tileSpacingX + (Math.max.apply(Math, gridRows) - gridRows[i]) * tileSpacingX / 2; hexTile.y = startY + i * tileSpacingY; game.addChild(hexTile); hexTiles.push(hexTile); (function (hexTile) { hexTile.on('down', function (obj) { if (countdown > 0) { return; } if (selectedTiles.length < 2) { hexTile.toggleSelect(); if (hexTile.isSelected) { selectedTiles.push(hexTile); if (selectedTiles.length == 2) { if (selectedTiles[0].number + selectedTiles[1].number === goalNumber) { var pairId = [selectedTiles[0].id, selectedTiles[1].id].sort().join('-'); if (!guessedPairs[pairId]) { LK.setScore(LK.getScore() + 1); scoreText.setText('Score: ' + LK.getScore()); guessedPairs[pairId] = true; correctGuess++; combinationsText.setText('Answers: ' + correctGuess + '/' + correctCombinations); } LK.setTimeout(function () { if (selectedTiles.length > 0) { selectedTiles[0].toggleSelect(); } if (selectedTiles.length > 1) { selectedTiles[1].toggleSelect(); } selectedTiles = []; }, 200); if (correctGuess === correctCombinations) { level++; correctGuess = 0; guessedPairs = {}; combinationsText.setText('Answers: ' + correctGuess + '/' + correctCombinations); levelText.setText('Level: ' + level); countdown = 15; goalText.visible = false; combinationsText.visible = false; countdownText.alpha = 1; countdownText.setText('Memorize: ' + countdown); LK.clearInterval(countdownInterval); countdownInterval = LK.setInterval(function () { countdown--; if (countdown <= 0) { countdownText.alpha = 0; goalText.visible = true; combinationsText.visible = true; LK.clearInterval(countdownInterval); for (var i = 0; i < hexTiles.length; i++) { hexTiles[i].getChildAt(1).setText(''); } } else { countdownText.setText('Memorize: ' + countdown); } }, 1000); LK.effects.flashScreen(0x00FF00, 500); // Remove previous hex tiles for (var i = 0; i < hexTiles.length; i++) { hexTiles[i].destroy(); } hexTiles = []; initializeHexTiles(); // Update goal and guesses with new numbers on the new grid var randomTile1 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; var randomTile2 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; while (randomTile1 === randomTile2) { randomTile2 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; } goalNumber = randomTile1.number + randomTile2.number; goalText.setText('Sum: ' + goalNumber); // Reset combinations correctCombinations = 0; for (var i = 0; i < hexTiles.length; i++) { for (var j = i + 1; j < hexTiles.length; j++) { if (hexTiles[i].number + hexTiles[j].number === goalNumber) { correctCombinations++; } } } combinationsText.setText('Answers: ' + correctGuess + '/' + correctCombinations); } } else { lives--; lifeIcons[lives].destroy(); if (lives <= 0) { LK.showGameOver(); } else { LK.effects.flashScreen(0xFF0000, 500); } LK.setTimeout(function () { if (selectedTiles.length > 0) { selectedTiles[0].toggleSelect(); } if (selectedTiles.length > 1) { selectedTiles[1].toggleSelect(); } selectedTiles = []; }, 200); } } } else { var index = selectedTiles.indexOf(hexTile); if (index > -1) { selectedTiles.splice(index, 1); } } } }); })(hexTile); } } } initializeHexTiles(); } initializeHexTiles(); var randomTile1 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; var randomTile2 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; while (randomTile1 === randomTile2) { randomTile2 = hexTiles[Math.floor(Math.random() * hexTiles.length)]; } var goalNumber = randomTile1.number + randomTile2.number; var goalText = new Text2('Sum: ' + goalNumber, { size: 100, fill: '#ffffff', alpha: 0 // Make invisible initially }); goalText.visible = false; goalText.anchor.set(0.5, 1); goalText.y += 400; LK.gui.top.addChild(goalText); // Calculate the number of unique correct combinations var correctCombinations = 0; for (var i = 0; i < hexTiles.length; i++) { for (var j = i + 1; j < hexTiles.length; j++) { if (hexTiles[i].number + hexTiles[j].number === goalNumber) { correctCombinations++; } } } // Display the number of unique correct combinations below the goal var combinationsText = new Text2('Answers: ' + correctGuess + '/' + correctCombinations, { size: 100, fill: '#ffffff', alpha: 1 // Make visible }); combinationsText.visible = false; combinationsText.anchor.set(0.5, 0); combinationsText.y += 1400; LK.gui.top.addChild(combinationsText); // Game tick function LK.on('tick', function () { // Game logic that needs to be executed every frame });
===================================================================
--- original.js
+++ change.js
@@ -144,9 +144,9 @@
// Default to the highest defined grid for levels beyond those explicitly defined
gridRows = [3, 4, 5, 4, 3];
}
var tileSpacingX = 250;
- var tileSpacingY = 230;
+ var tileSpacingY = 250;
var startX = (2048 - Math.max.apply(Math, gridRows) * tileSpacingX) / 2 + tileSpacingX / 2;
var startY = (2732 - gridRows.length * tileSpacingY) / 2 + tileSpacingY / 2;
// Initialize hex tiles
for (var i = 0; i < gridRows.length; i++) {
@@ -160,10 +160,10 @@
} else {
numberRange = 12;
}
hexTile.setNumber(Math.floor(Math.random() * numberRange) + 1);
- hexTile.x = startX + j * tileSpacing + (Math.max.apply(Math, gridRows) - gridRows[i]) * tileSpacing / 2;
- hexTile.y = startY + i * tileSpacing;
+ hexTile.x = startX + j * tileSpacingX + (Math.max.apply(Math, gridRows) - gridRows[i]) * tileSpacingX / 2;
+ hexTile.y = startY + i * tileSpacingY;
game.addChild(hexTile);
hexTiles.push(hexTile);
(function (hexTile) {
hexTile.on('down', function (obj) {