Build an RPG Character - Build an RPG Character

Tell us what’s happening:

I got stack in last step and can not solve it. Pleas help me

Your code so far

full_dot = '●'
empty_dot = '○'

def create_character(name, STR, INT, CHA):
    if not isinstance(name, str):
        return 'The character name should be a string'
    if name == '':
        return 'The character should have a name'
    if len(name) > 10:
        return 'The character name is too long'
    if ' ' in name:
        return 'The character name should not contain spaces'
    if (not isinstance(STR,int))\
     or (not isinstance(INT,int))\
     or (not isinstance(CHA,int)):
        return 'All stats should be integers'
    if STR < 1\
     or INT < 1\
     or CHA < 1:
        return 'All stats should be no less than 1'
    if STR > 4 or INT > 4 or CHA > 4:
        return 'All stats should be no more than 4'
    if (STR + INT + CHA) != 7:
        return 'The character should start with 7 points'
    
    return f'ren\nSTR ●●●●○○○○○○\nINT ●●○○○○○○○○\nCHA ●○○○○○○○○○'

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/144.0.0.0 Safari/537.36

Challenge Information:

Build an RPG Character - Build an RPG Character

Welcome to the forum @m7zare !

It looks like you have hard-coded your return string. That is not solving this problem in the general case. Imagine if you were given different input values. Would your code be able to solve those problems?

To find out more about what hard-coding is or about why it is not suitable for solving coding questions, please read this post: Hard-coding For Beginners

Let us know if you have a question about how to make your code more flexible.

1 Like

Thank you
but I can’t pass step 12 yet:
12. When create_character is called with valid values it should output the character stats as required.

Please post your updated code.


When you enter a code block into a forum post, please precede it with three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add the backticks.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (').

1 Like
full_dot = '●'

empty_dot = '○'



def create_character(name, STR, INT, CHA):

    if not isinstance(name, str):

        return 'The character name should be a string'

    if name == '':

        return 'The character should have a name'

    if len(name) > 10:

        return 'The character name is too long'

    if ' ' in name:

        return 'The character name should not contain spaces'

    if (not isinstance(STR,int))\\

     or (not isinstance(INT,int))\\

     or (not isinstance(CHA,int)):

        return 'All stats should be integers'

    if STR < 1\\

     or INT < 1\\

     or CHA < 1:

        return 'All stats should be no less than 1'

    if STR > 4 or INT > 4 or CHA > 4:

        return 'All stats should be no more than 4'

    if (STR + INT + CHA) != 7:

        return 'The character should start with 7 points'

    

    return f'ren\\nSTR ●●●●○○○○○○\\nINT ●●○○○○○○○○\\nCHA ●○○○○○○○○○'



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

I tried to format your code correctly, but it still shows a lot of escape characters. That’s why we ask you to format your code for us when you post it.

I also don’t see that you have changed your hard-coded return statement..

1 Like

full_dot = ‘●’

empty_dot = ‘○’

def create_character(name, strength, intelligence, charisma):

if not isinstance(name, str):

    return 'The character name should be a string'

if name == '':

    return 'The character should have a name'

if len(name) > 10:

    return 'The character name is too long'

if ' ' in name:

    return 'The character name should not contain spaces'

if (not isinstance(strength,int))\\

 or (not isinstance(intelligence,int))\\

 or (not isinstance(charisma,int)):

    return 'All stats should be integers'

if strength < 1\\

 or intelligence < 1\\

 or charisma < 1:

    return 'All stats should be no less than 1'

if strength > 4 or intelligence > 4 or charisma > 4:

    return 'All stats should be no more than 4'

if (strength + intelligence + charisma) != 7:

    return 'The character should start with 7 points'

else:

    str_full_dot = strength \* full_dot

    int_full_dot = intelligence \* full_dot

    cha_full_dot = charisma \* full_dot



    str_empty_dot = (10 - strength) \* empty_dot

    int_empty_dot = (10- intelligence) \* empty_dot

    cha_empty_dot = (10 - charisma) \* empty_dot



    str_stat = str_full_dot + str_empty_dot

    int_stat = int_full_dot + int_empty_dot

    cha_stat = cha_full_dot + cha_empty_dot



    return f'ren\\nSTR {str_stat}\\nINT {int_stat}\\nCHA {cha_stat}'

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

print(create_character(‘ren’, 1, 4, 2))

Please format your code so we can test. What issue are you currently having?

1 Like