void main() {
// --- ATLETA AUGUSTO ---
Atleta augusto = Atleta(
nome: 'Augusto',
esporte: 'Futebol Americano',
idade: 30,
isPcd: false,
peso: 104,
);
augusto.cadastrarAtleta();
Competicao competicao = Competicao(
true,
augusto.idade,
augusto.esporte,
nome: augusto.nome,
);
competicao.podeParticiparDaCompeticao(
augusto.idade!,
augusto.esporte!,
);
Categoria categoria = Categoria(
nome: augusto.nome,
peso: augusto.peso,
idade: augusto.idade,
esporte: augusto.esporte,
);
print(categoria.classificarCategoria());
}
class Atleta {
String? nome;
double? peso;
int? idade;
String? esporte;
bool? isPcd;
Atleta({this.nome, this.peso, this.idade, this.esporte, this.isPcd});
void cadastrarAtleta() {
print(
'O atleta de nome: $nome | idade: $idade | peso: $peso | esporte: $esporte está cadastrado com sucesso.',
);
}
}
class Competicao extends Atleta {
bool? aceitaMaiorDeIdade;
Competicao(
this.aceitaMaiorDeIdade,
int? idade,
String? esporte, {
super.nome,
}) : super(idade: idade, esporte: esporte);
bool podeParticiparDaCompeticao(int idade, String esporte) {
if (idade >= 18 && (esporte == 'Futsal' || esporte == 'Boxe')) {
print('O atleta $nome está permitido a participar da competição.');
return true;
}
print(
'O atleta $nome NÃO está permitido a participar da competição (idade: $idade, esporte: $esporte).',
);
return false;
}
}
class Categoria extends Atleta {
Categoria({super.nome, super.peso, super.idade, super.esporte, super.isPcd});
String classificarCategoria() {
if (esporte != 'Boxe') {
return 'O atleta $nome não pratica Boxe, portanto não possui categoria de peso definida.';
}
if (peso == null) {
return 'Peso não informado para o atleta $nome.';
}
if (peso! < 60) {
return 'O atleta $nome está na categoria Peso Leve.';
} else if (peso! >= 60 && peso! < 80) {
return 'O atleta $nome está na categoria Peso Médio.';
} else {
return 'O atleta $nome está na categoria Peso Pesado.';
}
}
}