Build an RPG Character - Build an RPG Character

Tell us what’s happening:

Im stuck on getting it to print the RPG stats, tests 18 and 19, and I am unsure what other methods to use

Your code so far

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

    if character_name == '':
            return ('The character should have a name')
                
    if len(character_name) > 10 :
            return ('The character name is too long')
        
    if ' ' in character_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')
    elif 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:
        return(f'{character_name}\nSTR {full_dot*strength} {(10-strength)*empty_dot}\nINT {full_dot*intelligence}{(10-intelligence)*empty_dot}\nCHA {full_dot*charisma} {(10-charisma)*empty_dot}')
    
create_character('ren', 4, 2, 1)




Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.3 Safari/605.1.15

Challenge Information:

Build an RPG Character - Build an RPG Character

GitHub Link: freeCodeCamp/curriculum/challenges/english/blocks/lab-rpg-character/67d83df6f82eda3868dd2a84.md at main · freeCodeCamp/freeCodeCamp · GitHub

Hi @Legion24,

Test your code like this so you can see what your function is returning in the console:

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

Happy coding

Thank you for the response. It actually prints the desired output, but still the last two tests won’t budge.

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

    if character_name == '':
            return ('The character should have a name')
                
    if len(character_name) > 10 :
            return ('The character name is too long')
        
    if ' ' in character_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')
    elif 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:
        return(f'{character_name}\nSTR {full_dot*strength} {(10-strength)*empty_dot}\nINT {full_dot*intelligence}{(10-intelligence)*empty_dot}\nCHA {full_dot*charisma} {(10-charisma)*empty_dot}')
    
print(create_character('ren', 4, 2, 1))

Close, but not quite. Try calling your function with this code to compare actual to expected:

print('Actual:   ',repr(create_character('ren', 4, 2, 1))) 
print('Expected: ',repr('ren\\nSTR ●●●●○○○○○○\\nINT ●●○○○○○○○○\\nCHA ●○○○○○○○○○'))

are you sure?

image

is this space present in the example?

Thank you, that was exactly the problem :sweat_smile: