From 230fbaefaa5daa8c6dba78236c3e7d669aed0461 Mon Sep 17 00:00:00 2001 From: grz Date: Tue, 26 Jul 2022 16:55:15 -0300 Subject: [PATCH] novo Strings Projetos --- PY02-Strings.ipynb | 28 +++++- PY02.1-Projetos.ipynb | 209 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 235 insertions(+), 2 deletions(-) create mode 100644 PY02.1-Projetos.ipynb diff --git a/PY02-Strings.ipynb b/PY02-Strings.ipynb index d0e268c..93e75fb 100644 --- a/PY02-Strings.ipynb +++ b/PY02-Strings.ipynb @@ -409,9 +409,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "

Fim da rodada, Mestre dos Magos

\n", + "

\n", + "Você fez 41.1 pontos.\n", + "

\n", + "\n", + "
\n", + "Quer continuar ?
\n", + "(S)im / (N)ão\n", + "
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from IPython.display import HTML\n", "\n", diff --git a/PY02.1-Projetos.ipynb b/PY02.1-Projetos.ipynb new file mode 100644 index 0000000..4995288 --- /dev/null +++ b/PY02.1-Projetos.ipynb @@ -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", + "
\n", + "

Fim da rodada, %s

\n", + "

\n", + "Você fez %s pontos.\n", + "

\n", + "\n", + "
\n", + "Quer continuar ?
\n", + "(S)im / (N)ão\n", + "
\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 `
` e ``, 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 +}