https://github.com/claudimf/python_game
https://github.com/claudimf/python_game
alura alura-cursos-online docker docker-compose python-3 python3
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/claudimf/python_game
- Owner: claudimf
- Created: 2021-03-05T15:19:18.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-08T19:53:59.000Z (over 4 years ago)
- Last Synced: 2025-03-17T12:39:55.907Z (7 months ago)
- Topics: alura, alura-cursos-online, docker, docker-compose, python-3, python3
- Language: Python
- Homepage:
- Size: 33.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python Game
👋 Olá, Seja Bem-vindo(a) ao 'Python Game'.
# Projeto 'Python Game' dos cursos:
## [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)
### Aulas
Introdução e Instalação do Python 3
- Introdução
- Instalando o Python no Windows
- Instalando em outras plataformas
- Usar o Python sem instalá-lo
- Função print e variáveis
- Imprimindo uma mensagem na tela
- Personalizando a saída
- Imprimindo datas
- Tipagem do Python
- Qual o tipo da variável?
- Tipagem de variáveis
- Para saber mais: Snake_Case
Lidando com a entrada do usuário
- Instalando e conhecendo o PyCharm
- Mão na massa: Primeiro projeto com PyCharm
- Comparando variáveis
- Impossível acertar o número
- Onde foi que ela errou?
- Comparação estranha
- O resultado da soma é...
- E o resultado agora?
- Diferenças entre o Python 2 e o Python 3
- Python 2 vs Python 3 - #1
- Python 2 vs Python 3 - #2
- Para saber mais: JavaScript vs Python
- Arquivos do projeto atual
Testando valores
- A condição elif
- Faixa Etária
- Faixa Etária - Variáveis
- If..else. e nada funciona!
- Mão na massa: Dando dicas
- Qual é o tipo?
- Para saber mais: if sem ou com parênteses?
- Arquivos do projeto atual
A sequência do jogo
- O laço com while
- Resultado do programa
- if e while
- Formatação de strings
- Testando formatação
- Mão na massa: Usando while
- Arquivos do projeto atual
Iterando de maneira diferente
- O laço com for
- De while para for
- De while para for #2
- Encerrando a interação e o loop
- break e continue
- while com break
- for com continue
- Mão na massa: Usando for
- Para saber mais: Formatação de strings
- Adaptando o Padrão Americano
- O resultado da interpolação
- Interpolação - Python 2 vs Python 3
- Arquivos do projeto atual
Gerando números aleatórios
- Gerando e arredondando um número aleatório
- Importar módulo
- Definindo um intervalo para a geração de números aleatórios
- O menor e o maior
- Múltiplos aleatórios
- O grande sorteio
- Mão na massa: Número secreto aleátorio
- Para saber mais: Pseudo-Random
- Arquivos do projeto atual
Nível e Pontuação
- Adicionando níveis ao jogo
- Definindo uma pontuação para o usuário
- Funções built-in
- Dividindo pontos
- Mão na massa: Níveis e Pontuação
- Para saber mais: arredondar no Python 2 e no Python 3
- Para saber mais: Divisão de float e integer
- Arquivos do projeto atual
Organizando ainda melhor o nosso código
- Importando arquivos dentro de outros
- Criando funções para os nossos jogos
- Declarando funções
- Importação de módulo
- Importação de módulo, mas um pouco diferente
- Diferenciando um arquivo executado de um importado
- Um módulo pode se chamar automaticamente?
- Mão na massa: Modularizando o jogo
- Download do jogo
- Arquivos do projeto atual
Comparando Python com C
- Python vs C
- Interpretado vs Compilado
- Python é interpretado ou compilado?
- Download e considerações finais
## [Python 3 parte 2: Avançando na linguagem](https://cursos.alura.com.br/course/python-3-avancando-na-linguagem)
### Aulas
Preparando o jogo da forca
- Introdução
- Se você veio do Python 2...
- Ajustando a infraestrutura
- Arquivos do curso e IDE utilizada
- Game Loop
- Quantos erros tem...
- Tipo Booleano
- Para saber mais: built-in
- Mãos na massa
- Arquivos do projeto atual
Manipulando strings
- Encontrando letras
- Buscando um caracter em uma string
- Iterando em uma palavra
- Recordando...
- Funções importantes da String
- Grandes poderes trazem grandes responsabilidades
- Mãos na massa
- Para saber mais: Alterações com strings
- Arquivos do projeto atual
Conhecendo e trabalhando com listas
- Estrutura de dados: List
- Sistema para as frutas
- Um bom jeito de economizar
- Contando os funcionários
- Um falso campeão
- Guardando as letras acertadas
- Mãos na massa
- Para Saber Mais: Outros recursos com a lista
- Arquivos do projeto atual
Conhecendo e trabalhando com tuplas
- O que são tuplas?
- Tipos considerados sequências
- Funções importantes
- Diferenças entre sequências
- Sequência imutável
- Listas e tuplas juntas
- Ajuda na conversão
- Exemplos de sequências
- Para saber mais: Set
- Para saber mais: Dictionary
- Arquivos do projeto atual
Implementando o encerramento do jogo
- Estipulando tentativas de erros
- Calculando o total de caracteres em um loop
- Saindo do loop
- Forca com teste de erros alternativo
- Opcional: quantas tentativas faltam?
- Para saber mais: outra maneira de sair do loop
- Compreensão de lista
- Loop relativo à List Comprehension
- Preenchendo uma lista com os quadrados de números inteiros
- Para saber mais: inicializando uma lista de números pares
- Mãos na massa: encerrando o jogo
- Arquivos do projeto atual
Escrita e leitura de arquivos
- Escrevendo em um arquivo
- A função open
- Os modificadores de acesso
- Uma boa prática com arquivos
- Lendo um arquivo
- Lendo a primeira linha
- Lendo um arquivo por completo
- Escolhendo uma palavra
- Para saber mais: with
- Mãos na massa: Palavras aleatórias no jogo
- Arquivos do projeto atual
Melhorando o código e a apresentação
- Organizando o código em funções
- Sobre funções
- Criando mais funções
- Sintaxe das funções
- Melhorando a apresentação da forca
- Boas práticas de código
- Mãos na Massa: Exportando o código para funções
- Mãos na Massa: Melhorando a apresentação do jogo
- Para saber mais: Parâmetros opcionais e nomeados
- Considerações finais
- Download e considerações finais
- Próximos passos
# Notas das aulas:
Para executar um script python, faça conforme o exemplo abaixo:
```sh
docker-compose run --rm app python aulas/01.py
```
Para abri o terminal interativo do Python:
```sh
docker-compose run --rm app python
```
## Sobre o projeto:
### Permissões de arquivos:
Ao 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:
```sh
sudo chown -R $USER:$USER .
```
# Exigências
**:warning: Atenção:** É necessário que os desenvolvedores usem o Docker no seu ambiente de desenvolvimento.
- **🛠 Modo Desenvolvimento Docker**
- :computer: [Linux Ubuntu LTS](https://ubuntu.com/download/desktop)
- 🐳 [Docker](https://docs.docker.com/engine/installation/) Deve estar instalado.
- 🐳 [Docker Compose](https://docs.docker.com/compose/) Deve estar instalado.
- **💡 Dica:** [Documentação do Docker](https://docs.docker.com/)
# Instalando
## 🐳 Modo Desenvolvimento com Docker
Após instalar o docker e docker-compose, estando na pasta raiz do projeto, execute:
```sh
docker-compose up
```
Para se certificar que os seus containers subiram corretamente, todos os containers deve estar com o status `UP`, execute:
```sh
docker-compose ps -a
```
Para acessar o container da aplicação, execute:
```sh
docker-compose run --rm app bash
```
Para derrubar e subir a instância do docker novamente, execute:
```sh
docker-compose down && docker-compose up
```
# Referências utilizadas
[1° Conteinerização de scripts em Python](https://github.com/claudimf/containerized_python)
[2° Exemplos de formatação de strings](https://docs.python.org/3/library/string.html#formatexamples)
[3° Built-in Functions](https://docs.python.org/3/library/functions.html)