{"id":26398427,"url":"https://github.com/claudimf/python_game","last_synced_at":"2026-05-09T09:02:10.895Z","repository":{"id":86373994,"uuid":"344849773","full_name":"claudimf/python_game","owner":"claudimf","description":null,"archived":false,"fork":false,"pushed_at":"2021-03-08T19:53:59.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T12:39:55.907Z","etag":null,"topics":["alura","alura-cursos-online","docker","docker-compose","python-3","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/claudimf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-05T15:19:18.000Z","updated_at":"2021-03-08T19:54:02.000Z","dependencies_parsed_at":"2023-11-27T21:15:11.343Z","dependency_job_id":null,"html_url":"https://github.com/claudimf/python_game","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/claudimf/python_game","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fpython_game","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fpython_game/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fpython_game/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fpython_game/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/claudimf","download_url":"https://codeload.github.com/claudimf/python_game/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claudimf%2Fpython_game/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266483608,"owners_count":23936379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alura","alura-cursos-online","docker","docker-compose","python-3","python3"],"created_at":"2025-03-17T12:30:23.777Z","updated_at":"2026-05-09T09:02:05.848Z","avatar_url":"https://github.com/claudimf.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Game\n\n👋 Olá, Seja Bem-vindo(a) ao 'Python Game'.\n\n# Projeto 'Python Game' dos cursos:\n\n## [Python 3 parte 1: Introdução à nova versão da linguagem](https://cursos.alura.com.br/course/python-3-introducao-a-nova-versao-da-linguagem)\n\n### Aulas\n\n\u003cdetails\u003e\n    \u003csummary\u003eIntrodução e Instalação do Python 3\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eIntrodução\u003c/li\u003e\n        \u003cli\u003eInstalando o Python no Windows\u003c/li\u003e\n        \u003cli\u003eInstalando em outras plataformas\u003c/li\u003e\n        \u003cli\u003eUsar o Python sem instalá-lo\u003c/li\u003e\n        \u003cli\u003eFunção print e variáveis\u003c/li\u003e\n        \u003cli\u003eImprimindo uma mensagem na tela\u003c/li\u003e\n        \u003cli\u003ePersonalizando a saída\u003c/li\u003e\n        \u003cli\u003eImprimindo datas\u003c/li\u003e\n        \u003cli\u003eTipagem do Python\u003c/li\u003e\n        \u003cli\u003eQual o tipo da variável?\u003c/li\u003e\n        \u003cli\u003eTipagem de variáveis\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Snake_Case\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eLidando com a entrada do usuário\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eInstalando e conhecendo o PyCharm\u003c/li\u003e\n        \u003cli\u003eMão na massa: Primeiro projeto com PyCharm\u003c/li\u003e\n        \u003cli\u003eComparando variáveis\u003c/li\u003e\n        \u003cli\u003eImpossível acertar o número\u003c/li\u003e\n        \u003cli\u003eOnde foi que ela errou?\u003c/li\u003e\n        \u003cli\u003eComparação estranha\u003c/li\u003e\n        \u003cli\u003eO resultado da soma é...\u003c/li\u003e\n        \u003cli\u003eE o resultado agora?\u003c/li\u003e\n        \u003cli\u003eDiferenças entre o Python 2 e o Python 3\u003c/li\u003e\n        \u003cli\u003ePython 2 vs Python 3 - #1\u003c/li\u003e\n        \u003cli\u003ePython 2 vs Python 3 - #2\u003c/li\u003e\n        \u003cli\u003ePara saber mais: JavaScript vs Python\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eTestando valores\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eA condição elif\u003c/li\u003e\n        \u003cli\u003eFaixa Etária\u003c/li\u003e\n        \u003cli\u003eFaixa Etária - Variáveis\u003c/li\u003e\n        \u003cli\u003eIf..else. e nada funciona!\u003c/li\u003e\n        \u003cli\u003eMão na massa: Dando dicas\u003c/li\u003e\n        \u003cli\u003eQual é o tipo?\u003c/li\u003e\n        \u003cli\u003ePara saber mais: if sem ou com parênteses?\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eA sequência do jogo\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eO laço com while\u003c/li\u003e\n        \u003cli\u003eResultado do programa\u003c/li\u003e\n        \u003cli\u003eif e while\u003c/li\u003e\n        \u003cli\u003eFormatação de strings\u003c/li\u003e\n        \u003cli\u003eTestando formatação\u003c/li\u003e\n        \u003cli\u003eMão na massa: Usando while\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eIterando de maneira diferente\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eO laço com for\u003c/li\u003e\n        \u003cli\u003eDe while para for\u003c/li\u003e\n        \u003cli\u003eDe while para for #2\u003c/li\u003e\n        \u003cli\u003eEncerrando a interação e o loop\u003c/li\u003e\n        \u003cli\u003ebreak e continue\u003c/li\u003e\n        \u003cli\u003ewhile com break\u003c/li\u003e\n        \u003cli\u003efor com continue\u003c/li\u003e\n        \u003cli\u003eMão na massa: Usando for\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Formatação de strings\u003c/li\u003e\n        \u003cli\u003eAdaptando o Padrão Americano\u003c/li\u003e\n        \u003cli\u003eO resultado da interpolação\u003c/li\u003e\n        \u003cli\u003eInterpolação - Python 2 vs Python 3\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eGerando números aleatórios\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eGerando e arredondando um número aleatório\u003c/li\u003e\n        \u003cli\u003eImportar módulo\u003c/li\u003e\n        \u003cli\u003eDefinindo um intervalo para a geração de números aleatórios\u003c/li\u003e\n        \u003cli\u003eO menor e o maior\u003c/li\u003e\n        \u003cli\u003eMúltiplos aleatórios\u003c/li\u003e\n        \u003cli\u003eO grande sorteio\u003c/li\u003e\n        \u003cli\u003eMão na massa: Número secreto aleátorio\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Pseudo-Random\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eNível e Pontuação\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eAdicionando níveis ao jogo\u003c/li\u003e\n        \u003cli\u003eDefinindo uma pontuação para o usuário\u003c/li\u003e\n        \u003cli\u003eFunções built-in\u003c/li\u003e\n        \u003cli\u003eDividindo pontos\u003c/li\u003e\n        \u003cli\u003eMão na massa: Níveis e Pontuação\u003c/li\u003e\n        \u003cli\u003ePara saber mais: arredondar no Python 2 e no Python 3\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Divisão de float e integer\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eOrganizando ainda melhor o nosso código\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eImportando arquivos dentro de outros\u003c/li\u003e\n        \u003cli\u003eCriando funções para os nossos jogos\u003c/li\u003e\n        \u003cli\u003eDeclarando funções\u003c/li\u003e\n        \u003cli\u003eImportação de módulo\u003c/li\u003e\n        \u003cli\u003eImportação de módulo, mas um pouco diferente\u003c/li\u003e\n        \u003cli\u003eDiferenciando um arquivo executado de um importado\u003c/li\u003e\n        \u003cli\u003eUm módulo pode se chamar automaticamente?\u003c/li\u003e\n        \u003cli\u003eMão na massa: Modularizando o jogo\u003c/li\u003e\n        \u003cli\u003eDownload do jogo\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eComparando Python com C\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003ePython vs C\u003c/li\u003e\n        \u003cli\u003eInterpretado vs Compilado\u003c/li\u003e\n        \u003cli\u003ePython é interpretado ou compilado?\u003c/li\u003e\n        \u003cli\u003eDownload e considerações finais\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n## [Python 3 parte 2: Avançando na linguagem](https://cursos.alura.com.br/course/python-3-avancando-na-linguagem)\n\n### Aulas\n\n\u003cdetails\u003e\n    \u003csummary\u003ePreparando o jogo da forca\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eIntrodução\u003c/li\u003e\n        \u003cli\u003eSe você veio do Python 2...\u003c/li\u003e\n        \u003cli\u003eAjustando a infraestrutura\u003c/li\u003e\n        \u003cli\u003eArquivos do curso e IDE utilizada\u003c/li\u003e\n        \u003cli\u003eGame Loop\u003c/li\u003e\n        \u003cli\u003eQuantos erros tem...\u003c/li\u003e\n        \u003cli\u003eTipo Booleano\u003c/li\u003e\n        \u003cli\u003ePara saber mais: built-in\u003c/li\u003e\n        \u003cli\u003eMãos na massa\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eManipulando strings\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eEncontrando letras\u003c/li\u003e\n        \u003cli\u003eBuscando um caracter em uma string\u003c/li\u003e\n        \u003cli\u003eIterando em uma palavra\u003c/li\u003e\n        \u003cli\u003eRecordando...\u003c/li\u003e\n        \u003cli\u003eFunções importantes da String\u003c/li\u003e\n        \u003cli\u003eGrandes poderes trazem grandes responsabilidades\u003c/li\u003e\n        \u003cli\u003eMãos na massa\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Alterações com strings\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eConhecendo e trabalhando com listas\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eEstrutura de dados: List\u003c/li\u003e\n        \u003cli\u003eSistema para as frutas\u003c/li\u003e\n        \u003cli\u003eUm bom jeito de economizar\u003c/li\u003e\n        \u003cli\u003eContando os funcionários\u003c/li\u003e\n        \u003cli\u003eUm falso campeão\u003c/li\u003e\n        \u003cli\u003eGuardando as letras acertadas\u003c/li\u003e\n        \u003cli\u003eMãos na massa\u003c/li\u003e\n        \u003cli\u003ePara Saber Mais: Outros recursos com a lista\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eConhecendo e trabalhando com tuplas\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eO que são tuplas?\u003c/li\u003e\n        \u003cli\u003eTipos considerados sequências\u003c/li\u003e\n        \u003cli\u003eFunções importantes\u003c/li\u003e\n        \u003cli\u003eDiferenças entre sequências\u003c/li\u003e\n        \u003cli\u003eSequência imutável\u003c/li\u003e\n        \u003cli\u003eListas e tuplas juntas\u003c/li\u003e\n        \u003cli\u003eAjuda na conversão\u003c/li\u003e\n        \u003cli\u003eExemplos de sequências\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Set\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Dictionary\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eImplementando o encerramento do jogo\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eEstipulando tentativas de erros\u003c/li\u003e\n        \u003cli\u003eCalculando o total de caracteres em um loop\u003c/li\u003e\n        \u003cli\u003eSaindo do loop\u003c/li\u003e\n        \u003cli\u003eForca com teste de erros alternativo\u003c/li\u003e\n        \u003cli\u003eOpcional: quantas tentativas faltam?\u003c/li\u003e\n        \u003cli\u003ePara saber mais: outra maneira de sair do loop\u003c/li\u003e\n        \u003cli\u003eCompreensão de lista\u003c/li\u003e\n        \u003cli\u003eLoop relativo à List Comprehension\u003c/li\u003e\n        \u003cli\u003ePreenchendo uma lista com os quadrados de números inteiros\u003c/li\u003e\n        \u003cli\u003ePara saber mais: inicializando uma lista de números pares\u003c/li\u003e\n        \u003cli\u003eMãos na massa: encerrando o jogo\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eEscrita e leitura de arquivos\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eEscrevendo em um arquivo\u003c/li\u003e\n        \u003cli\u003eA função open\u003c/li\u003e\n        \u003cli\u003eOs modificadores de acesso\u003c/li\u003e\n        \u003cli\u003eUma boa prática com arquivos\u003c/li\u003e\n        \u003cli\u003eLendo um arquivo\u003c/li\u003e\n        \u003cli\u003eLendo a primeira linha\u003c/li\u003e\n        \u003cli\u003eLendo um arquivo por completo\u003c/li\u003e\n        \u003cli\u003eEscolhendo uma palavra\u003c/li\u003e\n        \u003cli\u003ePara saber mais: with\u003c/li\u003e\n        \u003cli\u003eMãos na massa: Palavras aleatórias no jogo\u003c/li\u003e\n        \u003cli\u003eArquivos do projeto atual\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eMelhorando o código e a apresentação\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003eOrganizando o código em funções\u003c/li\u003e\n        \u003cli\u003eSobre funções\u003c/li\u003e\n        \u003cli\u003eCriando mais funções\u003c/li\u003e\n        \u003cli\u003eSintaxe das funções\u003c/li\u003e\n        \u003cli\u003eMelhorando a apresentação da forca\u003c/li\u003e\n        \u003cli\u003eBoas práticas de código\u003c/li\u003e\n        \u003cli\u003eMãos na Massa: Exportando o código para funções\u003c/li\u003e\n        \u003cli\u003eMãos na Massa: Melhorando a apresentação do jogo\u003c/li\u003e\n        \u003cli\u003ePara saber mais: Parâmetros opcionais e nomeados\u003c/li\u003e\n        \u003cli\u003eConsiderações finais\u003c/li\u003e\n        \u003cli\u003eDownload e considerações finais\u003c/li\u003e\n        \u003cli\u003ePróximos passos\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n# Notas das aulas:\n\nPara executar um script python, faça conforme o exemplo abaixo:\n```sh\ndocker-compose run --rm app python aulas/01.py\n```\n\nPara abri o terminal interativo do Python:\n\n```sh\ndocker-compose run --rm app python\n```\n\n## Sobre o projeto:\n\n### Permissões de arquivos:\n\nAo se criar migrações, adicionar libs ou qualquer outro comando que crie arquivos dentro do contâiner Docker o proprietário para edição se torna o contâiner, sendo assim você precisará rodar o comando abaixo para alterar essas permissões e você poder editar:\n\n```sh\nsudo chown -R $USER:$USER .\n```\n\n# Exigências\n\n**:warning: Atenção:** É necessário que os desenvolvedores usem o Docker no seu ambiente de desenvolvimento.\n\n- **🛠 Modo Desenvolvimento Docker**\n    - :computer: [Linux Ubuntu LTS](https://ubuntu.com/download/desktop)\n    - 🐳 [Docker](https://docs.docker.com/engine/installation/) Deve estar instalado.\n    - 🐳 [Docker Compose](https://docs.docker.com/compose/) Deve estar instalado.\n    - **💡 Dica:** [Documentação do Docker](https://docs.docker.com/)\n\n# Instalando\n\n## 🐳 Modo Desenvolvimento com Docker\n\nApós instalar o docker e docker-compose, estando na pasta raiz do projeto, execute:\n\n```sh\ndocker-compose up\n```\n\nPara se certificar que os seus containers subiram corretamente, todos os containers deve estar com o status `UP`, execute:\n\n```sh\ndocker-compose ps -a\n```\n\nPara acessar o container da aplicação, execute:\n\n```sh\ndocker-compose run --rm app bash\n```\n\nPara derrubar e subir a instância do docker novamente, execute:\n\n```sh\ndocker-compose down \u0026\u0026 docker-compose up\n```\n\n# Referências utilizadas\n\n[1° Conteinerização de scripts em Python](https://github.com/claudimf/containerized_python)\n\n[2° Exemplos de formatação de strings](https://docs.python.org/3/library/string.html#formatexamples)\n\n[3° Built-in Functions](https://docs.python.org/3/library/functions.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaudimf%2Fpython_game","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclaudimf%2Fpython_game","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaudimf%2Fpython_game/lists"}