That's quite the catch there.You must be registered to see attachmentsYou must be registered to see attachments
12000 message her C=
sorry man =cYou must be registered to see attachmentsYou must be registered to see attachments
be the 12 000 message here C=
sorry man =c
nah, it is the BEST catch! it comes with this nice clinic with some sexy midget ladies i keep trying to impregnateThat's quite the catch there.
You must be registered to see attachments
what do I have to do ? D=You must be registered to see attachments
nah, it is the BEST catch! it comes with this nice clinic with some sexy midget ladies i keep trying to impregnate
Don't tell me you forgot to wear the whole armor before play with tools!Yeah but mummy won't let me play with the big tools now after what happened last time
Just mingle into the conversation. And happy to see you here.what do I have to do ? D=
![]()
![]()
Goodmorningafternoonevening everyone!
Is there anyone here who hasn't successfully survived monday?
It is interesting, though I've tried something similar on a javascript AI and immediately realized a whole lot of implementation problems.
It works well as a piece limited, but in the greater whole, the AI chooses implementation versions that do not really work.
For instance, I had it generate a 3x3 gameboard with card objects created based on a prototype object that is supposed to have 4 random values from 1-9 and functions to access its neighbors dynamically based on the current position.
JavaScript:// Prototype object for the card const cardPrototype = { values: Array.from({ length: 4 }, () => Math.floor(Math.random() * 9) + 1), top: function() { return gameboard[this.row - 1][this.col]; }, bottom: function() { return gameboard[this.row + 1][this.col]; }, left: function() { return gameboard[this.row][this.col - 1]; }, right: function() { return gameboard[this.row][this.col + 1]; } }; // Create a 3x3 gameboard with card objects const gameboard = Array.from({ length: 3 }, () => Array.from({ length: 3 }, () => Object.create(cardPrototype)) ); // Assign row and column properties to each card gameboard.forEach((row, i) => { row.forEach((card, j) => { card.row = i; card.col = j; }); });
While this isn't wrong, that's not really dynamic. It works if you make sure that you tell the card it's new position every time you change on what tile it is,
but it cannot dynamically detect the neighbors.
A dynamic solution would be to use a function to access the gameboard, find the current row & column indexes and then use those to calculate the neighbors. This also only works on a fixed gameboard size with fixed dimensions, since the gameboard is automatically divided into rows and columns.
This also fixes how the gameboard's tiles are accessible, because it predefines the size of the gameboard during creation.
Instead, a different and more flexible solution would've been to have the gameboard creates as containing an array of x tiles, giving the gameboard a width & height and rather than using direct +/- operations on fixed tiles, using modulo to dynamically access the correct neighbors even if the size & width change.
So it's a correct solution that might not work in the actual project, due to restrictions in what choices it has made for the implementation.
I think it's a nifty thing for simple and straightforward operations, but I don't think it can, in the solution, correctly account of implentation-based restrictions in how it's going to have to interact in the greater whole. The particular choice made by the AI does provide the fastest solution (predefined values, even less math) but it's not necessarily giving the solution that would actually work with the project.
I wonder if anyone managed to get it to work with something like PixiJS and create a simple visual game - because I wonder if the AI would detect the necessary restrictions in rendering hierarchy.![]()
// Prototype object for the card
const cardPrototype = {
init: function(row, col) {
this.row = row;
this.col = col;
this.values = Array.from({ length: 4 }, () => Math.floor(Math.random() * 9) + 1);
},
top: function() {
return this.row > 0 ? gameboard[this.row - 1][this.col] : null;
},
bottom: function() {
return this.row < gameboard.length - 1 ? gameboard[this.row + 1][this.col] : null;
},
left: function() {
return this.col > 0 ? gameboard[this.row][this.col - 1] : null;
},
right: function() {
return this.col < gameboard[this.row].length - 1 ? gameboard[this.row][this.col + 1] : null;
}
};
// Create a 3x3 gameboard with card objects
const gameboard = Array.from({ length: 3 }, (_, row) =>
Array.from({ length: 3 }, (_, col) => {
const card = Object.create(cardPrototype);
card.init(row, col);
return card;
})
);
// For demonstration: log the gameboard and one card's neighbors
console.log(gameboard);
console.log('Neighbors of card at (1,1):', gameboard[1][1].top(), gameboard[1][1].bottom(), gameboard[1][1].left(), gameboard[1][1].right());
// Card constructor function
function Card(row, col, gameboard) {
this.row = row;
this.col = col;
this.gameboard = gameboard;
this.values = Array.from({ length: 4 }, () => Math.floor(Math.random() * 9) + 1);
}
Card.prototype.getNeighbour = function (dRow, dCol) {
const newRow = this.row + dRow;
const newCol = this.col + dCol;
if (newRow >= 0 && newRow < this.gameboard.length && newCol >= 0 && newCol < this.gameboard[0].length) {
return this.gameboard[newRow][newCol];
}
return null;
};
Card.prototype.top = function () {
return this.getNeighbour(-1, 0);
};
Card.prototype.bottom = function () {
return this.getNeighbour(1, 0);
};
Card.prototype.left = function () {
return this.getNeighbour(0, -1);
};
Card.prototype.right = function () {
return this.getNeighbour(0, 1);
};
// Function to create a gameboard
function createGameboard(rows, cols) {
const gameboard = Array.from({ length: rows }, (_, row) =>
Array.from({ length: cols }, (_, col) => new Card(row, col, gameboard))
);
// Assign the gameboard reference after creation
gameboard.forEach(row => row.forEach(card => card.gameboard = gameboard));
return gameboard;
}
// Create a 3x3 gameboard
const gameboard = createGameboard(3, 3);
// Example: Access neighbours of the card at (1, 1)
const card = gameboard[1][1];
console.log('Top:', card.top());
console.log('Bottom:', card.bottom());
console.log('Left:', card.left());
console.log('Right:', card.right());
what do I have to do ? D=
I participate, I participate, as best I can, but what's the point :vJust mingle into the conversation. And happy to see you here.
i dont know this dance, show me !You must be registered to see attachments
You'll put a bun in their ovens.. I'm quite sure of that. Oh god.. I just typed that out. I'm asking myself..You must be registered to see attachments
nah, it is the BEST catch! it comes with this nice clinic with some sexy midget ladies i keep trying to impregnate
lambada I already know betterWhy not Lambada?
![]()
C = 1tb ssdbe the 12 000 message here C=
If I just send @Slumdum your way.. can I collect the coins right now? I mean, game over.. I win all the coins.OK, I'm sitting on 2475 LC coins that needs new owners!
Want some of these coins? We're having a lightning bounty in my DMs.
You must be registered to see attachments
I'll be awarding the first 5 whose images I really like!
Images should be DMed to Me to me.
As always, follow the site rules.
but I come to this thread, and I see that you are at 11,999 messages it was too temptingC = 1tb ssd
You must be registered to see attachments
You must be registered to see attachments
high chance your posts will get deleted anyway cause
This site provides links to other sites/services, and does not store any files