Theme editor

  • RequestStream Movies, TV shows and anime streaming • 1 week trial
  • LewdCorner Update
    For now, mime and apollo have full control over LC and will be handling site decisions going forward. I’m stepping back from making site changes for now and letting them decide how to move LC forward. - Jack Of Blades
    Read More

Anti-Social & Lurker - Hideout spot

  • Thread starter Thread starter Axois
  • Start date Start date
  • Replies Replies 172K
  • Views Views 5M
You must be registered to see attachments


I'll be back later tonight. We'll see if anyone goes for the last 2 bounty hunt spots.

Still got 1000 coins up for grabs!
 

Attachments

You must be registered for see attachments list
Only...like...21,000L₵ to go!
You must be registered to see attachments

At this rate, I'll be like...this old!
You must be registered to see attachments
 

Attachments

You must be registered for see attachments list
Bonki!
You must be registered to see attachments

Hi heartbreaker 💔 , i mean Slumster

You must be registered to see attachments


great, slowly building my quote wall, cleaning some thrash here and there :p


Brother Guz !!! great to see you, hopefully everyone is recycling



Bonky got out of his straightjacket again.. come here. Don't make me ask you twice. You know my temper!


Perhaps you should check where your keys are.....silly Doc, getting distracted like that



And gone !!!



slow and slower and it's hot!! :bndr0019:

Hi Trip, considering the alternative.....i'll gladly be closer to the sun



And to brother @micmitja , hi and thanks for keeping the degenerates cup filled

 

Attachments

You must be registered for see attachments list
Off for the time. See you all in the uncertain future that may bring us joy.
You must be registered to see attachments


I'll be back later tonight. We'll see if anyone goes for the last 2 bounty hunt spots.

Still got 1000 coins up for grabs!
till later
You must be registered to see attachments
 

Attachments

You must be registered for see attachments list
You must be registered to see attachments


Hello my lustful lewdians, how goes the monday ?
alright-im-gonna-cry.gif

it was great until I remembered I have to go back to work tomorrow. How's yours going?
 
Only...like...21,000L₵ to go!
You must be registered to see attachments

At this rate, I'll be like...this old!
You must be registered to see attachments
Keep posting and engaging here and you'll get there. I've gone from 4-6 LC per day in interest to 80 LC per day in the space of a week pretty much just due to posting in this thread.
 

Attachments

You must be registered for see attachments list
alright-im-gonna-cry.gif

it was great until I remembered I have to go back to work tomorrow. How's yours going?
monday-morning-messy-hair-just-woke-up-cat-ze4o8e8jo5fd7fdk.gif

Im fine, i swear.... i swear a lot......
 
You must be registered to see attachments


Hello my lustful lewdians, how goes the monday ?
Hiya bonky!
You must be registered to see attachments

Bonki!


Wanna borrow the SlumShark? :unsure:
Dang it. I knew this would happen as soon as I pushed you into that pool...

get-out-of-the-water-jill-riley.gif




Hmm.. what's this? Something's vibrating in my pocket!


Attack hug! MRARGH!

 

Attachments

You must be registered for see attachments list
Time to set off
You must be registered to see attachments

In case I dont see ya
https://media.tenor.com/_YqPtdYifY4AAAAM/good-afternoon-good-evening-and-good-n-ight-truman-show.gif
You must be registered to see attachments

sleep well
 

Attachments

You must be registered for see attachments list
Hiya bonky!
You must be registered to see attachments


Dang it. I knew this would happen as soon as I pushed you into that pool...

get-out-of-the-water-jill-riley.gif




Hmm.. what's this? Something's vibrating in my pocket!
You must be registered to see attachments


Attack hug! MRARGH!

How am I gonna give you a jumping high five with several broken ribs now??

 

Attachments

You must be registered for see attachments list
Only...like...21,000L₵ to go!
You must be registered to see attachments

At this rate, I'll be like...this old!
You must be registered to see attachments



And invest in Bonkcoin, soon to be the dominant currency globally




alright-im-gonna-cry.gif

it was great until I remembered I have to go back to work tomorrow. How's yours going?

I had to go back today after having 7 of the last 9 days off. Hang in there man
 

Attachments

You must be registered for see attachments list
I always pictured @Guz89 like this... but, maybe that's just me.

You must be registered to see attachments
don't mind me, just yoinking another gif
OI, who's recording me doing my mod things? DAMN YOU MIME
 
don't mind me, just yoinking another gif
OI, who's recording me doing my mod things? DAMN YOU MIME
Well then..

You must be registered to see attachments
 

Attachments

You must be registered for see attachments list
Dang it. I knew this would happen as soon as I pushed you into that pool...

get-out-of-the-water-jill-riley.gif
I mean, I had to use the time down there on something useful... :unsure:
And dooon't worry, she's... friieendly?...
 
@LUVGAMZ23 is officially my Favourite French
So, just a little joke about you saying "We don't do that here"

You must be registered to see attachments



Don't worry, he'll soon turn up to explain everything in a very long-winded, but very well stylised, reply!
Well... yeah.

It's what I do. Though I did get this image. Not sure how to take it:
You must be registered to see attachments

Although lemme tell ya about pencils...
second report? we didn't announce a second report to our host.
I'm just curious and I want to be open and honest about the situation as much as I'm allowed to, but no one asks me questions, they're just assuming everything :/
I'd say it's not personal.

I'm not speaking for anybody but me and (dipping my baby toe into IRL/politics), but because there's so much: "Can't talk about it because:
-It's an active investigation.
-There's a gag order.
-It's privileged corporate information, etc..

in the world, that some people might start to expect that ANYBODY in charge can't talk about anything anymore, even if they say otherwise.

Fuck. My best friend in my youth had a checkered past. Never saw him again after a point. Decades later, I heard (so could be bullshit) that a judge gave him a gag order. He told them the French version of Fuck Off. Paid the price.

The point re: this website's situation?
Personally, I'm assuming the team can't talk much about it because they can't, or they think it'll make it worse.


And then... the bullshit speculation begins... because that's happens when human nature meets a secret...
 

Attachments

You must be registered for see attachments list
I used and you're probably right that there's better AI code generation platforms. But I don't know them, so I just used what came up. It wasn't meant to be a definitive test either.
It does what it's supposed to do well enough, but the main problem I'm thinking of are always A. Readability and B. Integration into overall code. Using RPG Maker MZ's "specific" code I'm pretty used to run into the weird ways how code that I have to integrate & alias into works.
So since implementation of one thing often mandates specific implementation elsewhere, that's always a key worry for me.

The code the AI has generated has me a little stumped. It's first of all not working. The issue seems to be that it's actually trying to hand over the gameboard itself *during* the construction process.

JavaScript:
// 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;
}

As the "new Card" is created, the function tries to pass the gameboard to that card, which is impossible, because the new card is created during the construction process of the gameboard, so it doesn't exist yet.
Likewise, the gameboard still creates rows into seperate arrays.

Here's the solution how I'd design it (plus an added Wall)
JavaScript:
class Wall {
  constructor() {
  }

  values() {
    return [9,9,9,9]
  }
}

class Card {
  constructor(values) {
    this._values = values;
  }

  values() {
    return this._values;
  }

  getOwnPosition() {
    const index = $GameBoard.tiles().findIndex(card => card === this);
    const row = Math.floor(index / $GameBoard.width);
    const column = index % $GameBoard.width;
    return {row, column, index}
  }

  leftNeighbor() {
    const pos = this.getOwnPosition();
    if (pos.column === 0) {
      return new Wall();
    }
    return $GameBoard.tiles()[pos.index - 1];
  }

  rightNeighbor() {
    const pos = this.getOwnPosition();
    if (pos.column === $GameBoard.width - 1) {
      return new Wall();
    }
    return $GameBoard.tiles()[pos.index + 1];
  }

  topNeighbor() {
    const pos = this.getOwnPosition();
    if (pos.row === 0) {
      return new Wall();
    }
    return $GameBoard.tiles()[pos.index - $GameBoard.width];
  }

  bottomNeighbor() {
    const pos = this.getOwnPosition();
    if (pos.row === $GameBoard.height - 1) {
      return new Wall();
    }
    return $GameBoard.tiles()[pos.index + $GameBoard.width];
  }
}

class Gameboard {
  constructor(width, height) {
    this.width = width;
    this.height = height;
    this.createTiles();
  }

  tiles() {
    return this._tiles;
  }

  createTiles() {
    this._tiles = [];
    for (let i = 1; i <= this.width * this.height; i++) {
      this.addCardToSlot();
    }
  }

  addCardToSlot() {
    const min = 1;
    const max = 9;
    const values = Array.from({ length: 4 }, () => this.createRandomNumber(min, max))
    this._tiles.push(new Card(values));
  }

  createRandomNumber(min, max) {
    return Math.floor((Math.random() * (max - min + 1))) + min;
  }
}

// Create Board
const $GameBoard = new Gameboard(3, 3);

// Neighbor example

// retrieves the values of the card above the fourth card (row 2, column 1)
console.log($GameBoard.tiles()[3].topNeighbor().values)
I create a Wall object which will be returned with predefined values whenever we don't have a neighbor. (Can be used for Wall mechanics, e.g. Triple Triad).
This is basically just a gimmick addition, the computer should in the prompt always return "null" (meaning no tile), whereas I decided to hand over the wall.

Then I create the Card Object. This is created with external values, so if I instead of random values wanted to retrieve values from a DB (e.g. a Card Database) I can integrate this easily.
Values is used to always get the cards values (.e.g Triple Triad Card Attack values).
getOwnPosition hands back an object with this card's location data that is dynamically generated. If I simply switch to cards in the main array, the position will automatically update without any further input from me.
The Neighbor checks simply get my own tile's data from the gameboard, then check if there cannot be a Neighbor. (In which case I hand back the Wall)
If it's not a wall, it calculates the correct card index based on the width of the game board and hands me those values.

The Gameboard is pretty simple in its generation.
Some of the advantages present here is that I can access all of the boards tiles through the $GameBoard.tiles() method and don't have to deal with multiple subarrays inside an array.
The Gameboard's position data is always right, the Neighbors always correct, even should the Board for some reason change in size.
While this version is slower (due to retrieving values & doing calculations instead of just picking up pre-defined values), it's very robust. Parameters can be changed easily, and everything still works. It also has a, in my opinion, much more coherent and readable structure, which means the code is much easier to edit & maintain.

Haha. I am sure it'd also be better if you were talking to it directly, ratherr than second-hand through me. Because you'd explain the needs a lot better, I guess.
But still, I decided to share your message to 4o to see what it says!

JavaScript:
class Wall {
  constructor() {}

  values() {
    return [9, 9, 9, 9];
  }
}

class Card {
  constructor(values) {
    this._values = values;
  }

  values() {
    return this._values;
  }

  getPosition() {
    const index = $GameBoard.tiles().indexOf(this);
    const row = Math.floor(index / $GameBoard.width);
    const column = index % $GameBoard.width;
    return { row, column, index };
  }

  neighbor(direction) {
    const { row, column, index } = this.getPosition();
    switch (direction) {
      case 'left':
        return column > 0 ? $GameBoard.tiles()[index - 1] : new Wall();
      case 'right':
        return column < $GameBoard.width - 1 ? $GameBoard.tiles()[index + 1] : new Wall();
      case 'top':
        return row > 0 ? $GameBoard.tiles()[index - $GameBoard.width] : new Wall();
      case 'bottom':
        return row < $GameBoard.height - 1 ? $GameBoard.tiles()[index + $GameBoard.width] : new Wall();
      default:
        return null;
    }
  }

  leftNeighbor() {
    return this.neighbor('left');
  }

  rightNeighbor() {
    return this.neighbor('right');
  }

  topNeighbor() {
    return this.neighbor('top');
  }

  bottomNeighbor() {
    return this.neighbor('bottom');
  }
}

class Gameboard {
  constructor(width, height) {
    this.width = width;
    this.height = height;
    this._tiles = this.createTiles();
  }

  tiles() {
    return this._tiles;
  }

  createTiles() {
    return Array.from({ length: this.width * this.height }, () => this.createCard());
  }

  createCard() {
    const values = Array.from({ length: 4 }, () => this.createRandomNumber(1, 9));
    return new Card(values);
  }

  createRandomNumber(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }
}

// Create Board
const $GameBoard = new Gameboard(3, 3);

// Neighbor example
// Retrieves the values of the card above the fourth card (row 1, column 0)
console.log($GameBoard.tiles()[3].topNeighbor().values());

Changes Made:​

  1. Consistent Method Naming: Renamed getOwnPosition to getPosition and addCardToSlot to createCard for consistency and clarity.
  2. Optimised getPosition: Used indexOf directly to find the card's position without iterating through the tiles twice.
  3. Simplified Neighbour Methods: Combined the boundary check and neighbour fetching logic into a single neighbor method to reduce redundancy.
  4. Array Creation Simplification: Used Array.from to create the tiles array directly in the createTiles method.


Took me a awhile to respond. 😅
AI is much faster, that's true. The most useful cases I can imagine is when a programmer wants to know the method of how something is done, rather than a specific complete implementation of a part of the code.
The second version of the AI you posted is at least a lot more readable, and the use of the Array.from method is pretty curious enough that I used it myself rather than creating a for loop iteration & pushing values.

AI is definitely quicker! 4o is SO fast. But, a case of Slow and Steady, I think. Speed is definitely good sometimes, but not if it has errors inside.
All this said, I'm still very much an amateur coder - but my friend, who makes a (very good) living as a developer. Recently used 4o for the first time and was really impressed by what he got out of it. So, it could all just come down to utilisation. At the end of the day, I think it's a tool and a resource like so many others. It's also quite good at optimisation - when you give it some code you've already written and it says "You're wasting a lot of time doing this..." .... Or maybe that's just the way I code.... haha
 
Back
Top Bottom