1
0
Fork 0

novo Strings Projetos

This commit is contained in:
grz 2022-07-26 16:55:15 -03:00
parent 8b713f90d9
commit 230fbaefaa
2 changed files with 235 additions and 2 deletions

View File

@ -409,9 +409,33 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"text/html": [
"\n",
"<center>\n",
"<h2>Fim da rodada, Mestre dos Magos</h2>\n",
"<h3>\n",
"Você fez 41.1 pontos.\n",
"</h3>\n",
"<img src='img/mago-64px.png' />\n",
"<br />\n",
"Quer continuar ? <br />\n",
"(S)im / (N)ão\n",
"</center>\n"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import HTML\n",
"\n",

209
PY02.1-Projetos.ipynb Normal file
View File

@ -0,0 +1,209 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Projetos com Strings, variáveis e operadores"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Abaixo encontramos novamente trechos importantes dos códigos que trabalhamos anteriormente. Vamos usá-los como base para um novo programa, que vai apresentar uma tela de `final de partida` melhorada, com mais informações sobre a rodada.\n",
"\n",
"Para isso vamos dividir o projeto em `tarefas`. \n",
"\n",
"- Tarefa 1: Substituir o HTML por texto simples\n",
"- Tarefa 2: Separar a mensagem em cabeçalho, corpo e rodapé\n",
"- Tarefa 3: Acrescentar estatísticas da partida à mensagem\n",
"- Tarefa 4: Melhore as estatísticas mostrando os pontos de experiência, de magia e de bônus\n",
"\n",
"O objetivo desse projeto é treinar o uso de Strings e, variáveis e operadores e mostrar como tarefas complexas são implementadas aos poucos, incrementalmente - cada tarefa avança, melhora e se beneficia do trabalho que foi feito na tarefa anterior."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Código base para o projeto\n",
"\n",
"- Cálculo dos pontos ganhos em uma rodada"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"experiencia = 20\n",
"pts_experiencia = 0.05\n",
"pts_magia = 0.5\n",
"robos = 2\n",
"\n",
"resultado = (robos * pts_experiencia) + (robos * pts_magia) + (robos * experiencia)\n",
"\n",
"print(f'Você ganhou {resultado} pontos!')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Exibição dos pontos usando texto formatado"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from IPython.display import HTML\n",
"\n",
"jogador = 'Mestre dos Magos'\n",
"\n",
"experiencia = 20\n",
"pts_experiencia = 0.05\n",
"pts_magia = 0.5\n",
"robos = 2\n",
"\n",
"mensagem = '''\n",
"<center>\n",
"<h2>Fim da rodada, %s</h2>\n",
"<h3>\n",
"Você fez %s pontos.\n",
"</h3>\n",
"<img src='img/mago-64px.png' />\n",
"<br />\n",
"Quer continuar ? <br />\n",
"(S)im / (N)ão\n",
"</center>\n",
"'''\n",
"\n",
"resultado = (robos * pts_experiencia) + (robos * pts_magia) + (robos * experiencia)\n",
"\n",
"HTML(mensagem % (jogador, resultado))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tarefa 1: Substituir o HTML por texto simples\n",
"\n",
"Primeiros vamos voltar a usar texto simples e a função `print()` para exibir a saída do nosso programa.\n",
"\n",
"Retire todas as marcações HTML da string atribuída à variável `mensagem`, deixando apenas o texto. As marcações HTML são as que aparecem entre `<` e `>`, como `<center>` e `<img >`, etc.\n",
"\n",
"> Dica: A imagem do mago pode ser substituída por um `emoji`. Você pode colar este aqui 🧙 no texto ou usar um `caractere de escape` especial para isso. O caractere é `\\N{}` Entre as chaves você coloca o nome do caractere Unicode do Emoji que você quer escrever. Você pode consultar os Emojis e seus nomes na Emojipedia https://emojipedia.org/. (para mostrar o Mago, use o nome `mage`, assim: `\\N{mage}`)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tarefa 2: Separar a mensagem em cabeçalho, corpo e rodapé\n",
"\n",
"O objetivo desta tarefa é alterar o código que gera a mensagem para que fique mais fácil editar pedaços dela separadamente, sem afetar o restante da mensagem.\n",
"\n",
"Para isso, divida a mensagem em 3 partes, guardando cada parte em 1 variável diferente. \n",
"As partes são:\n",
"\n",
"- `cabeçalho`: Fim da rodada, %s\n",
"- `corpo`: Você fez %s pontos\n",
"- `rodapé`: Quer continuar? (S)im / (N)ão\n",
"\n",
"Ao final, imprima a mensagem completa.\n",
"\n",
"> Dica: Use 3 chamadas à função `print()` para imprimir a mensagem completa, uma para cada variável que você criou para o cabeçalho, corpo e rodapé. Lembre-se de continuar usando o operador `%` para fazer a susbtituição dos valores."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tarefa 3: Acrescentar estatísticas da partida à mensagem\n",
"\n",
"Acrescente uma nova parte à mensagem com estatísticas da partida. As estatísticas devem mostrar:\n",
"\n",
"- pontos de experiência do jogador\n",
"- quantos robôs foram capturados na rodada\n",
"\n",
"Imprima as estatísticas após o `corpo` da mensagem.\n",
"\n",
"> Dica: usa uma nova variável para guardar esta nota parte da mensagem."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tarefa 4: Melhore as estatísticas mostrando os pontos de experiência, de magia e de bônus\n",
"\n",
"Já calculamos os pontos de experiência ganhos por robô capturado e também os de magia e bônus. Porém, eles não estão aparecendo para o jogador. Eles estão apenas sendo usados no cálculo do total de pontos.\n",
"\n",
"Melhore as estatísticas apresentadas exibindo para o jogador quantos pontos de experiência, de magia e de bônus ele ganhou nesta rodada.\n",
"\n",
"> Dica: Altere a fórmula que calcula os pontos dividindo ela em partes, uma para cada componente do cálculo (xp, magia, bônus) e guarde cada parte em uma variável diferente. Assim você vai poder usar cada um desses valores mais facilmente para gerar a mensagem."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.10.5 64-bit (windows store)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.5"
},
"orig_nbformat": 4,
"vscode": {
"interpreter": {
"hash": "81d56cede9ef4caf6a61e146de670b37a2edead0ccb6294f4b93deebf2edb1a9"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}