User prompt
üstteki işlemlerde her ayrı kenetlenme işlemini bir alt satırda oluştur ekrana sığdır
User prompt
kenetlenen tuğlaların bitiminin sağına işlemin sonucunu yaz
User prompt
şu an ekranda 70 yazan ve altında drag bircks yazan yazıları sil
User prompt
ayrı işlemleri farklı renklerde alt alta iki satırda yap
User prompt
tuğlaları orantılı olarak boyutunu büyüt
User prompt
2 , 3 ve 5 yazılı tuğlaların sayısını iki katına çıkar diğerleri aynı kalsın
User prompt
üzerinde 2,3,5,7 olan asal sayılardan ikişer tane daha yap
User prompt
ayrı kenetlenlemerin işlemlerini ayrı yerlerde yap aradaki toplama işlemini sil
User prompt
oyunu tam ekran yap
User prompt
biraz önce yaptığın işlemi geri al
User prompt
Tuğlalar birden fazla grupta kenetlenebilsin
User prompt
sayılar kenetlenince çevreleri kalın bir çizgi ile çevrilsin
User prompt
kenetlenen sayılar üst üste binmesin sayılar gözükebilsin
User prompt
üst üste gelen tüm tuğlalar kenetlensin, çarpımları ve sonuçları tabelada yazsın
User prompt
11 den büyük sayı yazan tüm tuğlaları sil
User prompt
tuğlaların her birinden üçer tane daha yap
User prompt
zaman sayacını kaldır
User prompt
tuğlalar üst üste gelince, iki tuğla da gözükecek şekilde birbirlerine kenetlensin
User prompt
temas eden tuğlalar teması bırakınca tabelada sıfır yazsın
User prompt
Eğer alt bölümdeki tuğlalar birbirlerine temas ederse, tuğlaların üzerindeki sayıları çarp. Çarpımı ve sonucunu üst bölümdeki tabelaya yaz.
User prompt
Ekranı üst ve alt ayrılacak şekilde ikiye böl. Üst bölümde sayı yazmak için bir tabela oluştur. Alt bölümde lego tuğlaları birbirine değdiğinde üzerlerinde yazılan sayıların çarpımlarını o tabelaya yaz.
User prompt
lego tuğlalarını hareket ettirebilmeliyim
Code edit (1 edits merged)
Please save this source code
User prompt
Prime Lego Builder
Initial prompt
Farklı renkte ve büyüklükte 10 lego tuğlaları olsun. Her farklı renkteki lego tuğlasının üzerinde en küçük 10 asal sayı yazsın. Bu lego tuğlalarını hareket ettirerek birbirleri ile birleştirmeliyim.
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var LegoBrick = Container.expand(function (primeNumber) {
var self = Container.call(this);
self.primeNumber = primeNumber;
self.isConnected = false;
self.connectedBricks = [];
self.snapDistance = 30;
// Create brick graphics
var brickGraphics = self.attachAsset('brick_' + primeNumber, {
anchorX: 0.5,
anchorY: 0.5
});
// Create number text
var numberText = new Text2(primeNumber.toString(), {
size: 40,
fill: 0xFFFFFF
});
numberText.anchor.set(0.5, 0.5);
self.addChild(numberText);
self.checkForConnections = function () {
for (var i = 0; i < allBricks.length; i++) {
var otherBrick = allBricks[i];
if (otherBrick === self) continue;
var distance = Math.sqrt(Math.pow(self.x - otherBrick.x, 2) + Math.pow(self.y - otherBrick.y, 2));
// Check if bricks are overlapping (more lenient for stacking)
var isOverlapping = distance < Math.max(self.snapDistance, 80);
var wasConnected = self.isConnectedTo(otherBrick);
if (isOverlapping && !wasConnected) {
// Bricks just started overlapping - show multiplication
var product = self.primeNumber * otherBrick.primeNumber;
multiplicationBoard.setText(self.primeNumber + ' × ' + otherBrick.primeNumber + ' = ' + product);
self.connectTo(otherBrick);
} else if (!isOverlapping && wasConnected) {
// Bricks separated - show zero
multiplicationBoard.setText('0');
self.disconnectFrom(otherBrick);
}
}
};
self.isConnectedTo = function (brick) {
return self.connectedBricks.indexOf(brick) !== -1;
};
self.connectTo = function (brick) {
if (self.isConnectedTo(brick)) return;
self.connectedBricks.push(brick);
brick.connectedBricks.push(self);
// Snap bricks together - position one on top of the other
var targetY = Math.min(self.y, brick.y) - Math.max(self.height, brick.height) / 4;
if (self.y > brick.y) {
// Self is lower, move it on top of brick
tween(self, {
y: brick.y - (self.height + brick.height) / 2 - 10
}, {
duration: 300,
easing: tween.easeOut
});
} else {
// Brick is lower, move it on top of self
tween(brick, {
y: self.y - (self.height + brick.height) / 2 - 10
}, {
duration: 300,
easing: tween.easeOut
});
}
// Visual feedback
tween(self, {
scaleX: 1.1,
scaleY: 1.1
}, {
duration: 200,
easing: tween.easeOut
});
tween(self, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 200,
easing: tween.easeOut
});
LK.getSound('connect').play();
// Award points
LK.setScore(LK.getScore() + 10);
scoreText.setText(LK.getScore());
};
self.disconnectFrom = function (brick) {
var index = self.connectedBricks.indexOf(brick);
if (index !== -1) {
self.connectedBricks.splice(index, 1);
}
var otherIndex = brick.connectedBricks.indexOf(self);
if (otherIndex !== -1) {
brick.connectedBricks.splice(otherIndex, 1);
}
LK.getSound('disconnect').play();
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
var primeNumbers = [2, 3, 5, 7, 11];
var allBricks = [];
var draggedBrick = null;
// Create display board for multiplication results
var multiplicationBoard = new Text2('Product: -', {
size: 80,
fill: 0xFFFFFF
});
multiplicationBoard.anchor.set(0.5, 0);
LK.gui.top.addChild(multiplicationBoard);
multiplicationBoard.y = 60;
// Create score display
var scoreText = new Text2('0', {
size: 60,
fill: 0xFFFFFF
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
scoreText.y = 160;
// Create instructions
var instructionText = new Text2('Drag bricks together to connect them!', {
size: 40,
fill: 0xFFFFFF
});
instructionText.anchor.set(0.5, 0);
LK.gui.top.addChild(instructionText);
instructionText.y = 220;
// Create Lego bricks in bottom half of screen (3 of each prime number)
for (var i = 0; i < primeNumbers.length; i++) {
for (var j = 0; j < 3; j++) {
// Create 3 of each brick
var brick = new LegoBrick(primeNumbers[i]);
// Position bricks randomly in bottom half
var margin = 200;
brick.x = margin + Math.random() * (2048 - 2 * margin);
brick.y = 1366 + Math.random() * (1366 - margin); // Bottom half: 1366-2732
allBricks.push(brick);
game.addChild(brick);
}
}
// Mouse/touch event handlers
game.down = function (x, y, obj) {
// Find the topmost brick at this position
for (var i = allBricks.length - 1; i >= 0; i--) {
var brick = allBricks[i];
// Simple distance-based hit detection
var distance = Math.sqrt(Math.pow(x - brick.x, 2) + Math.pow(y - brick.y, 2));
if (distance <= Math.max(brick.width, brick.height) / 2) {
draggedBrick = brick;
// Bring to front by removing and re-adding
game.removeChild(brick);
game.addChild(brick);
break;
}
}
};
game.move = function (x, y, obj) {
if (draggedBrick) {
draggedBrick.x = x;
draggedBrick.y = y;
// Keep brick within bounds and in bottom half
draggedBrick.x = Math.max(draggedBrick.width / 2, Math.min(2048 - draggedBrick.width / 2, draggedBrick.x));
draggedBrick.y = Math.max(1366 + draggedBrick.height / 2, Math.min(2732 - draggedBrick.height / 2, draggedBrick.y));
}
};
game.up = function (x, y, obj) {
if (draggedBrick) {
draggedBrick.checkForConnections();
draggedBrick = null;
}
};
game.update = function () {
// Update score display
scoreText.setText(LK.getScore());
}; ===================================================================
--- original.js
+++ change.js
@@ -113,9 +113,9 @@
/****
* Game Code
****/
-var primeNumbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29];
+var primeNumbers = [2, 3, 5, 7, 11];
var allBricks = [];
var draggedBrick = null;
// Create display board for multiplication results
var multiplicationBoard = new Text2('Product: -', {