/**** 
* Classes
****/ 
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Mole class representing each mole that appears on the screen
var Mole = Container.expand(function () {
	var self = Container.call(this);
	// Attach a mole asset
	var moleGraphics = self.attachAsset('mole', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Mole's initial state
	self.isVisible = false;
	// Method to show the mole
	self.show = function () {
		self.isVisible = true;
		moleGraphics.alpha = 1;
	};
	// Method to hide the mole
	self.hide = function () {
		self.isVisible = false;
		moleGraphics.alpha = 0;
	};
	// Method to handle tap on the mole
	self.tap = function () {
		if (self.isVisible) {
			self.hide();
		}
	};
	// Initialize mole as hidden
	self.hide();
});
// Points class representing each point that appears on the screen
var Point = Container.expand(function () {
	var self = Container.call(this);
	// Attach a point asset
	var pointGraphics = self.attachAsset('point', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Point's initial state
	self.isVisible = false;
	// Method to show the point
	self.show = function () {
		self.isVisible = true;
		pointGraphics.alpha = 1;
	};
	// Method to hide the point
	self.hide = function () {
		self.isVisible = false;
		pointGraphics.alpha = 0;
	};
	// Method to handle tap on the point
	self.tap = function () {
		if (self.isVisible) {
			self.hide();
			if (LK.getScore() === 0) {
				LK.setScore(10);
			} else {
				LK.setScore(LK.getScore() + 10);
			}
		}
	};
	// Initialize point as hidden
	self.hide();
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 //Init game with black background 
});
/**** 
* Game Code
****/ 
// Add a large background image to the game
var background = LK.getAsset('backgroundImage', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 40,
	// Scale the background to be larger
	scaleY: 40,
	// Scale the background to be larger
	x: 1024,
	// Center of the screen
	y: 1366 // Center of the screen
});
game.addChild(background);
// Array to hold all moles
var moles = [];
// Function to randomly show moles
function showRandomMole() {
	if (moles.length > 0) {
		var randomIndex = Math.floor(Math.random() * moles.length);
		moles[randomIndex].show();
	}
}
// Array to hold all moles
var moles = [];
// Create moles and add them to the game
for (var i = 0; i < 9; i++) {
	var mole = new Mole();
	mole.x = i % 3 * 300 + 500; // Position moles in a grid
	mole.y = Math.floor(i / 3) * 300 + 800;
	moles.push(mole);
	game.addChild(mole);
}
// Array to hold all points
var points = [];
// Create points and add them to the game
for (var i = 0; i < 9; i++) {
	var point = new Point();
	point.x = i % 3 * 300 + 500; // Position points in a grid
	point.y = Math.floor(i / 3) * 300 + 800;
	points.push(point);
	game.addChild(point);
}
// Set interval to show moles at random
var moleInterval = LK.setInterval(function () {
	// Hide all moles first
	moles.forEach(function (mole) {
		mole.hide();
	});
	// Show a random mole
	showRandomMole();
}, 1000);
// Handle tap events on the game
game.down = function (x, y, obj) {
	var localPos = game.toLocal(obj.global);
	points.forEach(function (point) {
		if (point.isVisible && point.intersects(localPos)) {
			point.tap();
		}
	});
	moles.forEach(function (mole) {
		if (mole.isVisible && mole.intersects(localPos)) {
			mole.tap();
		}
	});
};
// Update function to handle game logic
game.update = function () {
	// Check for win condition
	if (LK.getScore() >= 20) {
		LK.showYouWin();
	}
}; /**** 
* Classes
****/ 
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Mole class representing each mole that appears on the screen
var Mole = Container.expand(function () {
	var self = Container.call(this);
	// Attach a mole asset
	var moleGraphics = self.attachAsset('mole', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Mole's initial state
	self.isVisible = false;
	// Method to show the mole
	self.show = function () {
		self.isVisible = true;
		moleGraphics.alpha = 1;
	};
	// Method to hide the mole
	self.hide = function () {
		self.isVisible = false;
		moleGraphics.alpha = 0;
	};
	// Method to handle tap on the mole
	self.tap = function () {
		if (self.isVisible) {
			self.hide();
		}
	};
	// Initialize mole as hidden
	self.hide();
});
// Points class representing each point that appears on the screen
var Point = Container.expand(function () {
	var self = Container.call(this);
	// Attach a point asset
	var pointGraphics = self.attachAsset('point', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	// Point's initial state
	self.isVisible = false;
	// Method to show the point
	self.show = function () {
		self.isVisible = true;
		pointGraphics.alpha = 1;
	};
	// Method to hide the point
	self.hide = function () {
		self.isVisible = false;
		pointGraphics.alpha = 0;
	};
	// Method to handle tap on the point
	self.tap = function () {
		if (self.isVisible) {
			self.hide();
			if (LK.getScore() === 0) {
				LK.setScore(10);
			} else {
				LK.setScore(LK.getScore() + 10);
			}
		}
	};
	// Initialize point as hidden
	self.hide();
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 //Init game with black background 
});
/**** 
* Game Code
****/ 
// Add a large background image to the game
var background = LK.getAsset('backgroundImage', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 40,
	// Scale the background to be larger
	scaleY: 40,
	// Scale the background to be larger
	x: 1024,
	// Center of the screen
	y: 1366 // Center of the screen
});
game.addChild(background);
// Array to hold all moles
var moles = [];
// Function to randomly show moles
function showRandomMole() {
	if (moles.length > 0) {
		var randomIndex = Math.floor(Math.random() * moles.length);
		moles[randomIndex].show();
	}
}
// Array to hold all moles
var moles = [];
// Create moles and add them to the game
for (var i = 0; i < 9; i++) {
	var mole = new Mole();
	mole.x = i % 3 * 300 + 500; // Position moles in a grid
	mole.y = Math.floor(i / 3) * 300 + 800;
	moles.push(mole);
	game.addChild(mole);
}
// Array to hold all points
var points = [];
// Create points and add them to the game
for (var i = 0; i < 9; i++) {
	var point = new Point();
	point.x = i % 3 * 300 + 500; // Position points in a grid
	point.y = Math.floor(i / 3) * 300 + 800;
	points.push(point);
	game.addChild(point);
}
// Set interval to show moles at random
var moleInterval = LK.setInterval(function () {
	// Hide all moles first
	moles.forEach(function (mole) {
		mole.hide();
	});
	// Show a random mole
	showRandomMole();
}, 1000);
// Handle tap events on the game
game.down = function (x, y, obj) {
	var localPos = game.toLocal(obj.global);
	points.forEach(function (point) {
		if (point.isVisible && point.intersects(localPos)) {
			point.tap();
		}
	});
	moles.forEach(function (mole) {
		if (mole.isVisible && mole.intersects(localPos)) {
			mole.tap();
		}
	});
};
// Update function to handle game logic
game.update = function () {
	// Check for win condition
	if (LK.getScore() >= 20) {
		LK.showYouWin();
	}
};