Build an RPG Character - Build an RPG Character

Tell us what’s happening:

I’m still failing tests 7 and 9 although the print function shows the correct result.
Tests 8 and 9 are very similar and I have applied the same principle to both tests. But test 8 passes and test 9 fails.

Your code so far

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"
    
    stats = [strength, intelligence, 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"     
        if sum(stats) != 7:
            return "The character should start with 7 points"     
    
    return f"{name}\nSTR {full_dot*strength}{empty_dot*(10-strength)}\nINT {full_dot*intelligence}{empty_dot*(10-intelligence)}\nCHA {full_dot*charisma}{empty_dot*(10-charisma)}"

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

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:147.0) Gecko/20100101 Firefox/147.0

Challenge Information:

Build an RPG Character - Build an RPG Character

1 Like

Should this be inside the loop?

Should there be a space before a function call?

  1. When create_character is called with a second, third or fourth argument that is not an integer it should return All stats should be integers.

When I test this there is an error message

print(create_character('ren', 4, '2', 1))
  1. When create_character is called with a second, third or fourth argument that is higher than 4 it should return All stats should be no more than 4.

When I test:

print(create_character('ren', 4, 6, 1))
>> The character should start with 7 points

For this one I’m not sure if there is a precedence, if test 9 or 10 should trigger first. Maybe 9 has precedence.

You can examine the loop there.

I think we have made tests so that’s not a thing to consider

oh, wait, I had missed one create_character('ren', 1, 1, 7) wants 'All stats should be no more than 4'

going to remove that, the instructions do not talk about precedence

1 Like

Thank you. That solved the problem.

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