Instruções
Construir um personagem de RPG
Neste laboratório, você praticará o básico de Python construindo um pequeno app que cria um personagem para uma aventura de RPG.
Objetivo: Cumprir as user stories abaixo e fazer todos os testes passarem para completar o laboratório.
Histórias de usuário:
1. Você deve ter uma função chamada
create_character.
1. A função deve aceitar, na ordem, um nome de personagem seguido por três atributos: força, inteligência e carisma.
1. O nome do personagem deve ser validado:
- Se o nome do personagem não for uma string, a função deve retornar
The character name should be a string. - Se o nome do personagem for uma string vazia, a função deve retornar
The character should have a name. - Se o nome do personagem tiver mais de 10 caracteres, a função deve retornar
The character name is too long. - Se o nome do personagem contiver espaços, a função deve retornar
The character name should not contain spaces.
- Se uma ou mais estatísticas não forem inteiros, a função deve retornar
All stats should be integers. - Se uma ou mais estatísticas forem menores que 1, a função deve retornar
All stats should be no less than 1. - Se uma ou mais estatísticas forem maiores que 4, a função deve retornar
All stats should be no more than 4. - Se a soma de todas as estatísticas for diferente de 7, a função deve retornar
The character should start with 7 points.
- a primeira linha deve conter o nome do personagem
- as linhas 2-4 devem começar com a abreviação da característica,
STR,INTouCHA(nessa ordem), seguida de um espaço e depois um número de pontos cheios (●) igual ao valor da característica, e um número de pontos vazios (○) para completar 10. Exemplo: se o valor de força for 3, deve haver 3 pontos cheios seguidos de 7 pontos vazios. Os pontos são fornecidos no editor.
create_character('ren', 4, 2, 1):
ren
STR ●●●●○○○○○○
INT ●●○○○○○○○○
CHA ●○○○○○○○○○
NOTA: enquanto str e int são abreviações comuns para as estatísticas, lembre-se de que esses são palavras-chave reservadas em Python e não devem ser usados como nomes de variáveis.
O que fazer:
Testes:
- Você deve ter uma função chamada `create_character`.
- Quando `create_character` é chamado com um primeiro argumento que **não** é uma string, ele deve retornar `The character name should be a string`.
- Quando `create_character` é chamado com um primeiro argumento que é uma string, ele **não deve** retornar `The character name should be a string`.
- Quando `create_character` é chamado com um primeiro argumento que é uma string vazia, ele deve retornar `The character should have a name`.
- Quando `create_character` é chamado com um primeiro argumento que **não** é uma string vazia, ele **não deve** retornar `The character should have a name`.
- Quando `create_character` é chamado com um primeiro argumento que possui mais de 10 caracteres, ele deve retornar `The character name is too long`.
- A função `create_character` **não deve** informar que o personagem é muito longo quando ele não tem mais de 10 caracteres.
- Quando `create_character` é chamado com um primeiro argumento que contém um espaço, ele deve retornar `The character name should not contain spaces`.
- Quando `create_character` é chamado com um primeiro argumento que *não* contém um espaço, ele *não deve* retornar `The character name should not contain spaces`.
- Quando `create_character` é chamado com um segundo, terceiro ou quarto argumento que **não** seja um inteiro, ele deve retornar `All stats should be integers`.
- Quando `create_character` é chamado com um segundo, terceiro e quarto argumento que são todos inteiros, ele **não deve** retornar `All stats should be integers`.
- Quando `create_character` é chamado com um segundo, terceiro ou quarto argumento menor que `1`, ele deve retornar `All stats should be no less than 1`.
- Quando `create_character` é chamado com um segundo, terceiro e quarto argumento que são todos não menores que `1`, ele **não deve** retornar `All stats should be no less than 1`.
- Quando `create_character` é chamado com um segundo, terceiro ou quarto argumento que seja maior que `4`, ele deve retornar `All stats should be no more than 4`.
- Quando `create_character` é chamado com um segundo, terceiro e quarto argumento que são todos no máximo `4`, ele **não deve** retornar `All stats should be no more than 4`.
- Quando `create_character` é chamado com um segundo, terceiro ou quarto argumento que **não somam** `7`, ele deve retornar `The character should start with 7 points`.
- Quando `create_character` é chamado com um segundo, terceiro e quarto argumento que somam `7`, ele **não deve** retornar `The character should start with 7 points`.
- `create_character('ren', 4, 2, 1)` deve retornar `ren\nSTR ●●●●○○○○○○\nINT ●●○○○○○○○○\nCHA ●○○○○○○○○○`.
- Quando `create_character` é chamado com valores válidos, ele deve exibir as estatísticas do personagem conforme necessário.
Preview