Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught RangeError: Maximum call stack size exceeded' in or related to this line: 'candy1.x = candy2.x;' Line Number: 160
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught RangeError: Maximum call stack size exceeded' in or related to this line: 'candy1.x = candy2.x;' Line Number: 160
Code edit (1 edits merged)
Please save this source code
User prompt
mouse ile tıklanmaya başlanan şeker mousun kaydırılma yönüne hareket ederek diğer şeker ile yer değiştirsin
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'swapCandies')' in or related to this line: 'self.swapCandies = function (candy1, candy2) {' Line Number: 166
User prompt
mouse ile tıklanmaya başlanan şeker mousun kaydırılma yönüne hareket ederek diğer şeker ile yer değiştirsin
User prompt
şeker resimlerini biraz küçült
User prompt
şimdi bu aralıklarla şekerlerin olduğu kısmı ekran genişliğine uydur
User prompt
aralığı biraz daha arttır
User prompt
biraz daha arttır ve alt üst ile sağ sol aralığı eşit olsun
User prompt
şekerler arasını biraz daha aç
User prompt
şekerler arasında 2 piksel boşluk olsun
User prompt
şekerlerin olduğu yeri bir şeker boyu kadar aşağı al
User prompt
bir şeker boyutu kadar aşağı alabilirsin
User prompt
şekerlerin sayısını şu şekilde ayarla: 9 şeker X 9 şeker şekerler arasında çok az mesafe bırak
User prompt
şekerlerin olduğu bölüm alt taraftan biraz kısılsın ekstra kullanımlar görünecek şekilde ayrıca birkaç bonus hareket kullanımı ekle
User prompt
şekerlerin olduğu bölüm ekranı kaplasın
User prompt
Please fix the bug: 'Uncaught TypeError: extras.getCandyAtPosition is not a function' in or related to this line: 'var selectedExtra = extras.getCandyAtPosition(x, y);' Line Number: 118
User prompt
ekranın alt bölümünde kullanılabilir ekstalar yer alacak geri kalan kısımda ise oyun yer almalı
Code edit (1 edits merged)
Please save this source code
User prompt
3. Özel Güçler ve Güçlendiriciler Oyuncuya bazı özel güçler vererek zor seviyeleri geçmesini sağlayabilirsin. 🚀 Bomba Taş – Patladığında etrafındaki taşları yok eder. 🌈 Renk Değiştirici – Seçilen bir rengi başka bir renge çevirir. ⚡ Yıldırım Çizgisi – Bir satır veya sütunu tamamen temizler. 💣 Mega Patlayıcı – Bütün tahtayı etkileyen güçlü bir patlama.
User prompt
2. Seviye Zorluk Dengesi Seviyeler başlangıçta kolay başlamalı ve gittikçe zorlaşmalı. İşte bazı zorluk ayarlamaları: 🔹 Kolay Seviye: Fazla engel yok, bolca hamle var. Büyük kombolar yapmayı teşvik eden açık tahtalar. 🔹 Orta Seviye: Hedeflere ulaşmak için daha az hamle verilmiş. Buzlu / zincirli taşlar gibi ilk engeller eklenmiş. 🔹 Zor Seviye: Çok az hamle veya kısa zaman sınırı. Birkaç taş kilitli veya hareket edemeyen alanlar var.
User prompt
Temel Oyun Mekaniği Match-3 mantığı: Aynı türdeki 3 veya daha fazla öğeyi yatay veya dikey hizalayarak yok etme. Kombo sistemleri: 4'lü eşleşme → Satır/sütun patlatan özel taş. 5'li eşleşme → Patlama dalgası oluşturan güçlü taş. L veya T şeklinde eşleşme → Büyük çapta yok edici taş.
/**** * Classes ****/ // Board class to represent the game board var Board = Container.expand(function () { var self = Container.call(this); self.board = []; self.boardWidth = 9; self.boardHeight = 9; self.candySize = (game.width - (self.boardWidth - 1) * 2) / self.boardWidth; self.difficulty = 'easy'; self.selectedCandy = null; self.moves = 0; self.time = 0; // Initialize the board with candies self.initializeBoard = function (difficulty) { self.difficulty = difficulty; self.moves = difficulty === 'medium' ? 30 : 0; self.time = difficulty === 'hard' ? 60 : 0; for (var i = 0; i < self.boardWidth; i++) { self.board[i] = []; for (var j = 0; j < self.boardHeight; j++) { self.createCandyAt(i, j); } } // Initial check for matches to prevent starting with matches while (self.hasMatches()) { self.reshuffleBoard(); } }; // Create a candy at specific position self.createCandyAt = function (i, j) { var item; if (Math.random() < 0.1) { item = new PowerUp(); } else { item = new Candy(); if (self.difficulty === 'medium' && Math.random() < 0.1) { item.locked = true; } else if (self.difficulty === 'hard' && Math.random() < 0.2) { item.locked = true; item.immovable = true; } } item.x = i * (self.candySize + 2) + self.candySize / 2; item.y = j * (self.candySize + 2) + self.candySize / 2; item.boardX = i; item.boardY = j; self.board[i][j] = item; self.addChild(item); return item; }; // Check for matches on the board self.checkMatches = function () { var matches = []; // Check horizontal matches for (var j = 0; j < self.boardHeight; j++) { var count = 1; var type = null; for (var i = 0; i < self.boardWidth; i++) { var candy = self.board[i][j]; if (candy && candy.type) { if (type === candy.type) { count++; if (count >= 3) { matches.push({ x: i - 2, y: j, length: count, direction: 'horizontal' }); } } else { count = 1; type = candy.type; } } } } // Check vertical matches for (var i = 0; i < self.boardWidth; i++) { var count = 1; var type = null; for (var j = 0; j < self.boardHeight; j++) { var candy = self.board[i][j]; if (candy && candy.type) { if (type === candy.type) { count++; if (count >= 3) { matches.push({ x: i, y: j - 2, length: count, direction: 'vertical' }); } } else { count = 1; type = candy.type; } } } } return matches; }; // Check if there are any matches on the board self.hasMatches = function () { return self.checkMatches().length > 0; }; // Reshuffle the board when no moves are possible self.reshuffleBoard = function () { for (var i = 0; i < self.boardWidth; i++) { for (var j = 0; j < self.boardHeight; j++) { if (self.board[i][j]) { self.removeChild(self.board[i][j]); } } } for (var i = 0; i < self.boardWidth; i++) { for (var j = 0; j < self.boardHeight; j++) { self.createCandyAt(i, j); } } }; // Get the candy at a specific position self.getCandyAtPosition = function (x, y) { var i = Math.floor((x - self.x) / (self.candySize + 2)); var j = Math.floor((y - self.y) / (self.candySize + 2)); if (i >= 0 && i < self.boardWidth && j >= 0 && j < self.boardHeight) { return self.board[i][j]; } return null; }; // Swap two candies on the board self.swapCandies = function (candy1, candy2) { // Check if either candy is locked or immovable if (candy1.locked || candy2.locked || candy1.immovable || candy2.immovable) { return false; } // Check if candies are adjacent var dx = Math.abs(candy1.boardX - candy2.boardX); var dy = Math.abs(candy1.boardY - candy2.boardY); if (dx + dy !== 1) { return false; } // Perform the swap var tempX = candy1.x; var tempY = candy1.y; var tempBX = candy1.boardX; var tempBY = candy1.boardY; candy1.x = candy2.x; candy1.y = candy2.y; candy1.boardX = candy2.boardX; candy1.boardY = candy2.boardY; candy2.x = tempX; candy2.y = tempY; candy2.boardX = tempBX; candy2.boardY = tempBY; self.board[candy1.boardX][candy1.boardY] = candy1; self.board[candy2.boardX][candy2.boardY] = candy2; // Check if the swap created any matches if (!self.hasMatches()) { // Swap back if no matches were created self.swapCandies(candy1, candy2); return false; } return true; }; return self; }); // Candy class to represent each candy on the board var Candy = Container.expand(function () { var self = Container.call(this); var candyTypes = ['candy1', 'candy2', 'candy3', 'candy4', 'candy5']; self.type = candyTypes[Math.floor(Math.random() * candyTypes.length)]; self.attachAsset(self.type, { anchorX: 0.5, anchorY: 0.5, width: gameBoard.candySize * 0.8, height: gameBoard.candySize * 0.8 }); self.locked = false; self.immovable = false; self.pop = function () { self.destroy(); }; return self; }); // PowerUp class to represent the power-ups in the game var PowerUp = Container.expand(function () { var self = Container.call(this); var powerUpTypes = ['bomb', 'colorChanger', 'lightning', 'megaBomb']; self.type = powerUpTypes[Math.floor(Math.random() * powerUpTypes.length)]; self.attachAsset(self.type, { anchorX: 0.5, anchorY: 0.5, width: gameBoard.candySize, height: gameBoard.candySize }); self.use = function () { switch (self.type) { case 'bomb': // Destroy candies in a 3x3 area break; case 'colorChanger': // Change all candies of one color to another break; case 'lightning': // Destroy all candies in a row or column break; case 'megaBomb': // Destroy candies in a 5x5 area break; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var gameBoard = new Board(); game.addChild(gameBoard); gameBoard.initializeBoard('easy'); // Center the game board gameBoard.y = (game.height - gameBoard.candySize * gameBoard.boardHeight - 2 * (gameBoard.boardHeight - 1)) / 2; gameBoard.x = (game.width - gameBoard.candySize * gameBoard.boardWidth - 2 * (gameBoard.boardWidth - 1)) / 2; // Handle input events game.down = function (x, y, obj) { gameBoard.selectedCandy = gameBoard.getCandyAtPosition(x, y); if (gameBoard.selectedCandy instanceof PowerUp) { gameBoard.selectedCandy.use(); gameBoard.selectedCandy = null; } }; game.up = function (x, y, obj) { var candyAtMouse = gameBoard.getCandyAtPosition(x, y); if (gameBoard.selectedCandy && candyAtMouse && gameBoard.selectedCandy !== candyAtMouse) { gameBoard.swapCandies(gameBoard.selectedCandy, candyAtMouse); } gameBoard.selectedCandy = null; }; game.move = function (x, y, obj) { if (gameBoard.selectedCandy) { var candyAtMouse = gameBoard.getCandyAtPosition(x, y); if (candyAtMouse && gameBoard.selectedCandy !== candyAtMouse) { if (gameBoard.swapCandies(gameBoard.selectedCandy, candyAtMouse)) { gameBoard.selectedCandy = null; } } } }; // Update function called every game tick game.update = function () { var matches = gameBoard.checkMatches(); if (matches.length > 0) { matches.forEach(function (match) { for (var i = 0; i < match.length; i++) { var x = match.direction === 'horizontal' ? match.x + i : match.x; var y = match.direction === 'vertical' ? match.y + i : match.y; if (gameBoard.board[x][y]) { gameBoard.board[x][y].pop(); gameBoard.board[x][y] = null; } } }); } // Update game state based on difficulty if (gameBoard.difficulty === 'medium') { gameBoard.moves = Math.max(0, gameBoard.moves - 0.016); // Assuming 60 FPS } else if (gameBoard.difficulty === 'hard') { gameBoard.time = Math.max(0, gameBoard.time - 0.016); } };
===================================================================
--- original.js
+++ change.js
@@ -7,178 +7,275 @@
self.board = [];
self.boardWidth = 9;
self.boardHeight = 9;
self.candySize = (game.width - (self.boardWidth - 1) * 2) / self.boardWidth;
- self.difficulty = 'easy'; // Default difficulty
- // Initialize the board with candies
+ self.difficulty = 'easy';
self.selectedCandy = null;
+ self.moves = 0;
+ self.time = 0;
+ // Initialize the board with candies
self.initializeBoard = function (difficulty) {
- self.difficulty = difficulty; // Store difficulty level
+ self.difficulty = difficulty;
+ self.moves = difficulty === 'medium' ? 30 : 0;
+ self.time = difficulty === 'hard' ? 60 : 0;
for (var i = 0; i < self.boardWidth; i++) {
self.board[i] = [];
for (var j = 0; j < self.boardHeight; j++) {
- var candy = new Candy();
- candy.x = i * (self.candySize + 2) + self.candySize / 2;
- candy.y = j * (self.candySize + 2) + self.candySize / 2;
- self.board[i][j] = candy;
- self.addChild(candy);
- // Add power-ups and obstacles based on difficulty level
- if (Math.random() < 0.1) {
- var powerUp = new PowerUp();
- powerUp.x = candy.x;
- powerUp.y = candy.y;
- self.board[i][j] = powerUp;
- self.addChild(powerUp);
- } else if (difficulty === 'medium' && Math.random() < 0.1) {
- candy.locked = true; // Add a locked property to the candy
- } else if (difficulty === 'hard' && Math.random() < 0.2) {
- candy.locked = true;
- candy.immovable = true; // Add an immovable property to the candy
- }
+ self.createCandyAt(i, j);
}
}
+ // Initial check for matches to prevent starting with matches
+ while (self.hasMatches()) {
+ self.reshuffleBoard();
+ }
};
+ // Create a candy at specific position
+ self.createCandyAt = function (i, j) {
+ var item;
+ if (Math.random() < 0.1) {
+ item = new PowerUp();
+ } else {
+ item = new Candy();
+ if (self.difficulty === 'medium' && Math.random() < 0.1) {
+ item.locked = true;
+ } else if (self.difficulty === 'hard' && Math.random() < 0.2) {
+ item.locked = true;
+ item.immovable = true;
+ }
+ }
+ item.x = i * (self.candySize + 2) + self.candySize / 2;
+ item.y = j * (self.candySize + 2) + self.candySize / 2;
+ item.boardX = i;
+ item.boardY = j;
+ self.board[i][j] = item;
+ self.addChild(item);
+ return item;
+ };
// Check for matches on the board
self.checkMatches = function () {
- // Implement match checking logic here
+ var matches = [];
+ // Check horizontal matches
+ for (var j = 0; j < self.boardHeight; j++) {
+ var count = 1;
+ var type = null;
+ for (var i = 0; i < self.boardWidth; i++) {
+ var candy = self.board[i][j];
+ if (candy && candy.type) {
+ if (type === candy.type) {
+ count++;
+ if (count >= 3) {
+ matches.push({
+ x: i - 2,
+ y: j,
+ length: count,
+ direction: 'horizontal'
+ });
+ }
+ } else {
+ count = 1;
+ type = candy.type;
+ }
+ }
+ }
+ }
+ // Check vertical matches
+ for (var i = 0; i < self.boardWidth; i++) {
+ var count = 1;
+ var type = null;
+ for (var j = 0; j < self.boardHeight; j++) {
+ var candy = self.board[i][j];
+ if (candy && candy.type) {
+ if (type === candy.type) {
+ count++;
+ if (count >= 3) {
+ matches.push({
+ x: i,
+ y: j - 2,
+ length: count,
+ direction: 'vertical'
+ });
+ }
+ } else {
+ count = 1;
+ type = candy.type;
+ }
+ }
+ }
+ }
+ return matches;
};
+ // Check if there are any matches on the board
+ self.hasMatches = function () {
+ return self.checkMatches().length > 0;
+ };
+ // Reshuffle the board when no moves are possible
+ self.reshuffleBoard = function () {
+ for (var i = 0; i < self.boardWidth; i++) {
+ for (var j = 0; j < self.boardHeight; j++) {
+ if (self.board[i][j]) {
+ self.removeChild(self.board[i][j]);
+ }
+ }
+ }
+ for (var i = 0; i < self.boardWidth; i++) {
+ for (var j = 0; j < self.boardHeight; j++) {
+ self.createCandyAt(i, j);
+ }
+ }
+ };
// Get the candy at a specific position
self.getCandyAtPosition = function (x, y) {
- var i = Math.floor(x / self.candySize);
- var j = Math.floor(y / self.candySize);
+ var i = Math.floor((x - self.x) / (self.candySize + 2));
+ var j = Math.floor((y - self.y) / (self.candySize + 2));
if (i >= 0 && i < self.boardWidth && j >= 0 && j < self.boardHeight) {
return self.board[i][j];
}
return null;
};
+ // Swap two candies on the board
+ self.swapCandies = function (candy1, candy2) {
+ // Check if either candy is locked or immovable
+ if (candy1.locked || candy2.locked || candy1.immovable || candy2.immovable) {
+ return false;
+ }
+ // Check if candies are adjacent
+ var dx = Math.abs(candy1.boardX - candy2.boardX);
+ var dy = Math.abs(candy1.boardY - candy2.boardY);
+ if (dx + dy !== 1) {
+ return false;
+ }
+ // Perform the swap
+ var tempX = candy1.x;
+ var tempY = candy1.y;
+ var tempBX = candy1.boardX;
+ var tempBY = candy1.boardY;
+ candy1.x = candy2.x;
+ candy1.y = candy2.y;
+ candy1.boardX = candy2.boardX;
+ candy1.boardY = candy2.boardY;
+ candy2.x = tempX;
+ candy2.y = tempY;
+ candy2.boardX = tempBX;
+ candy2.boardY = tempBY;
+ self.board[candy1.boardX][candy1.boardY] = candy1;
+ self.board[candy2.boardX][candy2.boardY] = candy2;
+ // Check if the swap created any matches
+ if (!self.hasMatches()) {
+ // Swap back if no matches were created
+ self.swapCandies(candy1, candy2);
+ return false;
+ }
+ return true;
+ };
+ return self;
});
// Candy class to represent each candy on the board
var Candy = Container.expand(function () {
var self = Container.call(this);
var candyTypes = ['candy1', 'candy2', 'candy3', 'candy4', 'candy5'];
- var randomCandy = candyTypes[Math.floor(Math.random() * candyTypes.length)];
- self.attachAsset(randomCandy, {
+ self.type = candyTypes[Math.floor(Math.random() * candyTypes.length)];
+ self.attachAsset(self.type, {
anchorX: 0.5,
anchorY: 0.5,
width: gameBoard.candySize * 0.8,
height: gameBoard.candySize * 0.8
});
- self.type = randomCandy;
+ self.locked = false;
+ self.immovable = false;
self.pop = function () {
self.destroy();
};
+ return self;
});
-// Extras class to represent the extras in the game
-var Extras = Container.expand(function () {
- var self = Container.call(this);
- var extrasTypes = ['extra1', 'extra2', 'extra3', 'extra4', 'extra5', 'bonusMove'];
- var randomExtra = extrasTypes[Math.floor(Math.random() * extrasTypes.length)];
- self.attachAsset(randomExtra, {
- anchorX: 0.5,
- anchorY: 0.5
- });
- self.type = randomExtra;
- self.use = function () {
- if (self.type === 'bonusMove') {
- gameBoard.moves += 5; // Add 5 extra moves
- }
- };
- // Get the candy at a specific position
- self.getCandyAtPosition = function (x, y) {
- var i = Math.floor(x / self.candySize);
- var j = Math.floor(y / self.candySize);
- if (i >= 0 && i < self.boardWidth && j >= 0 && j < self.boardHeight) {
- return self.board[i][j];
- }
- return null;
- };
-});
// PowerUp class to represent the power-ups in the game
var PowerUp = Container.expand(function () {
var self = Container.call(this);
var powerUpTypes = ['bomb', 'colorChanger', 'lightning', 'megaBomb'];
- var randomPowerUp = powerUpTypes[Math.floor(Math.random() * powerUpTypes.length)];
- self.attachAsset(randomPowerUp, {
+ self.type = powerUpTypes[Math.floor(Math.random() * powerUpTypes.length)];
+ self.attachAsset(self.type, {
anchorX: 0.5,
anchorY: 0.5,
width: gameBoard.candySize,
height: gameBoard.candySize
});
- self.type = randomPowerUp;
self.use = function () {
- // Add power-up logic here
+ switch (self.type) {
+ case 'bomb':
+ // Destroy candies in a 3x3 area
+ break;
+ case 'colorChanger':
+ // Change all candies of one color to another
+ break;
+ case 'lightning':
+ // Destroy all candies in a row or column
+ break;
+ case 'megaBomb':
+ // Destroy candies in a 5x5 area
+ break;
+ }
};
+ return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
- backgroundColor: 0x000000 // Init game with black background
+ backgroundColor: 0x000000
});
/****
* Game Code
****/
-// Initialize the game board
var gameBoard = new Board();
game.addChild(gameBoard);
gameBoard.initializeBoard('easy');
-gameBoard.y = (game.height - gameBoard.candySize * gameBoard.boardHeight - 2 * (gameBoard.boardHeight - 1)) / 2; // Center the game board vertically
-gameBoard.x = (game.width - gameBoard.candySize * gameBoard.boardWidth - 2 * (gameBoard.boardWidth - 1)) / 2; // Center the game board horizontally
-// Initialize the extras
-var extras = new Extras();
-game.addChild(extras);
-extras.x = 0;
-extras.y = game.height - extras.height - gameBoard.candySize; // Move the extras up by the size of a candy
-// Handle swipe events to swap candies
+// Center the game board
+gameBoard.y = (game.height - gameBoard.candySize * gameBoard.boardHeight - 2 * (gameBoard.boardHeight - 1)) / 2;
+gameBoard.x = (game.width - gameBoard.candySize * gameBoard.boardWidth - 2 * (gameBoard.boardWidth - 1)) / 2;
+// Handle input events
game.down = function (x, y, obj) {
gameBoard.selectedCandy = gameBoard.getCandyAtPosition(x, y);
- var selectedItem = gameBoard.selectedCandy;
- var selectedExtra = extras.getCandyAtPosition(x, y);
- if (selectedItem) {
- if (selectedItem instanceof PowerUp) {
- selectedItem.use();
- } else {
- // Handle swipe logic to swap candies
- }
- } else if (selectedExtra) {
- selectedExtra.use();
+ if (gameBoard.selectedCandy instanceof PowerUp) {
+ gameBoard.selectedCandy.use();
+ gameBoard.selectedCandy = null;
}
};
-// Update function called every game tick
-game.update = function () {
- gameBoard.checkMatches();
- if (gameBoard.difficulty === 'medium') {
- gameBoard.moves = (gameBoard.moves || 30) - 0.5;
- } else if (gameBoard.difficulty === 'hard') {
- gameBoard.time = (gameBoard.time || 60) - 1;
- }
-};
-// Swap two candies on the board
-self.swapCandies = function (candy1, candy2) {
- var temp = self.board[candy1.x][candy1.y];
- self.board[candy1.x][candy1.y] = self.board[candy2.x][candy2.y];
- self.board[candy2.x][candy2.y] = temp;
- var tempX = candy1.x;
- var tempY = candy1.y;
- candy1.x = candy2.x;
- candy1.y = candy2.y;
- candy2.x = tempX;
- candy2.y = tempY;
-};
game.up = function (x, y, obj) {
var candyAtMouse = gameBoard.getCandyAtPosition(x, y);
- if (gameBoard.selectedCandy && candyAtMouse) {
+ if (gameBoard.selectedCandy && candyAtMouse && gameBoard.selectedCandy !== candyAtMouse) {
gameBoard.swapCandies(gameBoard.selectedCandy, candyAtMouse);
}
gameBoard.selectedCandy = null;
};
game.move = function (x, y, obj) {
if (gameBoard.selectedCandy) {
var candyAtMouse = gameBoard.getCandyAtPosition(x, y);
- if (candyAtMouse) {
- gameBoard.swapCandies(gameBoard.selectedCandy, candyAtMouse);
- gameBoard.selectedCandy = candyAtMouse;
+ if (candyAtMouse && gameBoard.selectedCandy !== candyAtMouse) {
+ if (gameBoard.swapCandies(gameBoard.selectedCandy, candyAtMouse)) {
+ gameBoard.selectedCandy = null;
+ }
}
}
+};
+// Update function called every game tick
+game.update = function () {
+ var matches = gameBoard.checkMatches();
+ if (matches.length > 0) {
+ matches.forEach(function (match) {
+ for (var i = 0; i < match.length; i++) {
+ var x = match.direction === 'horizontal' ? match.x + i : match.x;
+ var y = match.direction === 'vertical' ? match.y + i : match.y;
+ if (gameBoard.board[x][y]) {
+ gameBoard.board[x][y].pop();
+ gameBoard.board[x][y] = null;
+ }
+ }
+ });
+ }
+ // Update game state based on difficulty
+ if (gameBoard.difficulty === 'medium') {
+ gameBoard.moves = Math.max(0, gameBoard.moves - 0.016); // Assuming 60 FPS
+ } else if (gameBoard.difficulty === 'hard') {
+ gameBoard.time = Math.max(0, gameBoard.time - 0.016);
+ }
};
\ No newline at end of file