this post was submitted on 08 Nov 2024
6 points (100.0% liked)

Perchance - Create a Random Text Generator

446 readers
13 users here now

⚄︎ Perchance

This is a Lemmy Community for perchance.org, a platform for sharing and creating random text generators.

Feel free to ask for help, share your generators, and start friendly discussions at your leisure :)

This community is mainly for discussions between those who are building generators. For discussions about using generators, especially the popular AI ones, the community-led Casual Perchance forum is likely a more appropriate venue.

See this post for the Complete Guide to Posting Here on the Community!

Rules

1. Please follow the Lemmy.World instance rules.

2. Be kind and friendly.

  • Please be kind to others on this community (and also in general), and remember that for many people Perchance is their first experience with coding. We have members for whom English is not their first language, so please be take that into account too :)

3. Be thankful to those who try to help you.

  • If you ask a question and someone has made a effort to help you out, please remember to be thankful! Even if they don't manage to help you solve your problem - remember that they're spending time out of their day to try to help a stranger :)

4. Only post about stuff related to perchance.

  • Please only post about perchance related stuff like generators on it, bugs, and the site.

5. Refrain from requesting Prompts for the AI Tools.

  • We would like to ask to refrain from posting here needing help specifically with prompting/achieving certain results with the AI plugins (text-to-image-plugin and ai-text-plugin) e.g. "What is the good prompt for X?", "How to achieve X with Y generator?"
  • See Perchance AI FAQ for FAQ about the AI tools.
  • You can ask for help with prompting at the 'sister' community Casual Perchance, which is for more casual discussions.
  • We will still be helping/answering questions about the plugins as long as it is related to building generators with them.

6. Search through the Community Before Posting.

  • Please Search through the Community Posts here (and on Reddit) before posting to see if what you will post has similar post/already been posted.

founded 1 year ago
MODERATORS
 

I'm trying to create a character generator, and I'm currently stuck on an issue. I'm trying to assign s to a single value picked from the list of possible species, so I can then use that value later for the species displayed and for some species-specific traits. I feel like this should be possible, but I'm also not super knowledgeable in perchance

top 4 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 6 days ago* (last edited 3 days ago) (2 children)

The issue is this line in your lists editor:

s = [mob.selectOne]

This means that every time you use s it'll select a new random item from mob. The reason for that is because you've made s equal to [mob.selectOne] instead of mob.selectOne. The square brackets around it effectively make it "dynamically fetched" each time you access s.

(Aside: Also note that the lists editor isn't "executed" each time you click your generate button. It's not a list of instructions which get executed line-by-line. The square blocks in the HTML editor on the other hand do get executed line-by-line each time you click the generate button. Think of the code in your list editor as a "static" structure which can be used by the square blocks in your HTML editor.)

So you need to add [s = mob.selectOne, ""] in a place where it'll get "executed" with every generate button click, so a new s is generated with each click, but it stays the same when executing all of the other square blocks that come after it.

So you could add this line before [output] in your HTML editor:

[s = mob.selectOne, ""]

Each time your "Generate" button is clicked, the update() function is called, and that causes all the square blocks in the HTML code to be executed from top to bottom. So it ensures that we've randomly selected a mob item and put it in the s variable before the output list is executed (which uses the s variable).

Here's a fixed example: https://perchance.org/ylx7fmwpql#edit

(This issue has unfortunately been the source of a lot of problems for newbies learning Perchance, so you're not alone in being confused by this!)

[–] [email protected] 2 points 4 days ago

Thank you so much!! Good to know I'm not the only one though lol

[–] [email protected] 1 points 6 days ago

That's a great answer! I've never thought of these solutions in a while, maybe even add a warning for that so other newbies could know easily.

[–] [email protected] 2 points 6 days ago

You can use the shorthand exp ? if_true : if_false notation chained together instead of the if ... else notations. It's specially used for conditional inline value returns.

[s == "Wolf" ? wolf_gene : s == "Cat" ? cat_gene : s == "Fox" ? fox_gene : ""]

You can also do like this as well:

[({"Wolf": wolf_gene, "Cat": cat_gene, "Fox": fox_gene})[s]]