Build an RPG Character - Build an RPG Character

Tell us what’s happening:

step 8 appears as an error any tip ? i want to understand why not direct answer ..

Your code so far

full_dot = '●'
empty_dot = '○'
def create_character(char_name, strength, intelligence, charisma):
    
    if not isinstance(char_name, str):
        return('The character name should be a string')

    if not char_name:
        return('The character should have a name')    

    if len(char_name) > 10:
        return('The character name is too long')

    if  ' ' in char_name:
        return('The character name should not contain spaces')
   
    stats = {'STR':strength, 'INT':intelligence, 'CHA':charisma}
    for stat in stats:
        if not isinstance(stat, int):
            return('All stats should be integers')
    
        if  stat < 1:
            return('All stats should be no less than 1')
    
        if stat > 4:
             return('All stats should be no more than 4')
    
    sum_stats = strength + intelligence + charisma

    if sum_stats != 7:
        return('The character should start with 7 points')
    
    str_bar = full_dot * strength + empty_dot * (10 - strength)
    int_bar = full_dot * intelligence + empty_dot * (10 - intelligence)
    cha_bar = full_dot * charisma + empty_dot * (10 - charisma)
    
    return (f"{name}\nSTR {str_bar}\nINT {int_bar}\nCHA {cha_bar}")

print(create_character('ren',  4, 2, 1))


    





Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 OPR/127.0.0.0

Challenge Information:

Build an RPG Character - Build an RPG Character

Hi there,

What is stat when you loop over a dictionary like this?

Happy coding!

if not isinstance(stats, int):

        return 'All stats should be integers'



if stats < 1:

        return 'All stats should be no less than 1'



if stats > 4:

        return 'All stats should be no more than 4'

thanks for your help . the truth is i tried this code that i wrote. after i searched and i saw that they used it like that. i didnt understand why and how the stat alone was relevant

How can you structure an if statement using what you already know to check if each of the stats is an integer?

If you’re overwhelmed by doing all of them, start with an if statement that just checks if strength is an int.

1 Like

did separately worked thanks. but i have 2 questions. First if i wanted to combine them what i did wrong? Secondly, i dont understand where in our instructions says or step that i have to create the bar of each argument

To combine separate related conditions, you would use and and/or or, whichever applies to the logic.

For example:

if (something is true) or(something else is true)or (another thing is true) could be used if you want to check if ANY ONE of the expressions fail.

if (something is true) and(something else is true)and (another thing is true) could be used if you want to check if ALL of the expressions fail.

If I’m understanding you correctly, User Story #5 explains how to build the final string to return from your function.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.