-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from erichideki/master
Add coding dojo at CT NOVATEC
- Loading branch information
Showing
6 changed files
with
211 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
Dojo Python 2015-03-05 @ CT da Novatec | ||
|
||
Problema: | ||
http://dojopuzzles.com/problemas/exibe/lampadas-no-corredor/ | ||
|
||
Linha para rodar os testes com o dose: | ||
dose.py py.test dojo.py | ||
|
||
Instalação dose: | ||
sudo apt-get install python-wxgtk2.8 python-pip | ||
sudo pip install dose | ||
|
||
Retrospectiva: | ||
|
||
*** =) *** | ||
|
||
- Didática/Explicação (+++) | ||
- Python (+++) | ||
- Motivou próximos dojos! | ||
- DojoPuzzles (+) | ||
- git | ||
- Semáforo dose.py (++) | ||
- Lugar novo | ||
- Sala confortável | ||
- Balas, café e kitutz! (+) | ||
- Fácil acesso (próximo do metrô) (+) | ||
- Aprendizado coletivo / solução de dúvidas / pessoal atencioso (++) | ||
- Tema (+) | ||
- Ambiente acolhedor/descontraído (++) | ||
- Boa iluminação | ||
- Babysteps! | ||
- Exercício/problema | ||
- Não perdemos tempo (setup, decisões, etc.) | ||
- Modo de seleção da linguagem | ||
- Conhecer como funciona um dojo (gente nova) | ||
|
||
*** =( *** | ||
|
||
- Teve gente que chegou atrasado | ||
- Podia vir mais gente | ||
- Nem todos ficaram até o final | ||
|
||
- Nem todos conseguiram contribuir | ||
- Acabou rápido (-) | ||
- Problema aproveitou poucos recursos da linguagem | ||
- Bugs do dose.py (-) | ||
|
||
- Até aqui o vestido foi comentado | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#!/bin/sh | ||
|
||
git filter-branch --env-filter ' | ||
OLD_EMAIL="[email protected]" | ||
CORRECT_NAME="Dojo SP" | ||
CORRECT_EMAIL="[email protected]" | ||
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] | ||
then | ||
export GIT_COMMITTER_NAME="$CORRECT_NAME" | ||
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" | ||
fi | ||
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] | ||
then | ||
export GIT_AUTHOR_NAME="$CORRECT_NAME" | ||
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" | ||
fi | ||
' --tag-name-filter cat -- --branches --tags |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"last_check":"2015-03-05T21:39:26Z","pypi_version":"6.0.8"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
#!/usr/bin/env python | ||
# coding: utf-8 | ||
# | ||
# Um homem chamado José é o responsável por ligar e desligar as luzes de um | ||
# corredor. Cada lâmpada tem seu próprio interruptor que liga e a desliga. | ||
# Inicialmente todas as lâmpadas estão desligadas. | ||
# José faz uma coisa peculiar: se existem n lâmpadas no corredor, ele caminha | ||
# até o fim do corredor e volta n vezes. Na iésima caminhada, ele aperta | ||
# apenas os interruptores aos quais sua posição é divisível por i. Ele não | ||
# aperta nenhum interruptor na volta à sua posição inicial, apenas na ida. A | ||
# iésima caminhada é definida como ir ao fim do corredor e voltar. | ||
# Determine qual é o estado final de cada lâmpada. Está ligada ou desligada? | ||
# Exemplo: | ||
# Entrada: 3 | ||
# Saída: [on, off, off] | ||
# 1 TTTTTTTTTTT | ||
# 2 TFTFTFTFTFT | ||
# 3 TFFFTTTFFFT | ||
# 4 TFFTTTTTFFT | ||
# 5 TFFTFTTTFTT | ||
# 6 TFFTFFTTFTT | ||
# 7 TFFTFFFTFTT | ||
# 8 TFFTFFFFFTT | ||
# 9 TFFTFFFFTTT | ||
# 10 TFFTFFFFTFT | ||
# 11 TFFTFFFFTFF # 1, 4, 9 | ||
|
||
def corredor(n): | ||
lampadas = [True] * n | ||
for i in range(2, n + 1): | ||
for j in range(i - 1, n, i): | ||
lampadas[j] = not lampadas[j] | ||
return lampadas | ||
|
||
def test_55_lampadas(): | ||
n = 55 | ||
assert corredor(n) == [int(i ** .5) ** 2 == i for i in range(1, n + 1)] | ||
|
||
def test_11_lampadas(): | ||
assert corredor(11) == [True,False,False,True,False,False,False,False, | ||
True,False,False] | ||
|
||
def test_8_lampadas(): | ||
assert corredor(8) == [True,False,False,True,False,False,False,False] | ||
|
||
def test_7_lampadas(): | ||
assert corredor(7) == [True,False,False,True,False,False,False] | ||
|
||
def test_6_lampadas(): | ||
assert corredor(6) == [True,False,False,True,False,False] | ||
|
||
def test_5_lampadas(): | ||
assert corredor(5) == [True, False, False, True, False] | ||
|
||
def test_4_lampadas(): | ||
assert corredor(4) == [True, False, False, True] | ||
|
||
def test_3_lampadas(): | ||
assert corredor(3) == [True, False, False] | ||
|
||
def test_2_lampadas(): | ||
assert corredor(2) == [True, False] | ||
|
||
def test_1_lampada(): | ||
assert corredor(1) == [True] | ||
|
||
def test_nenhuma_lampada(): | ||
entrada = 0 | ||
obtido = corredor(entrada) | ||
assert obtido == [] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
#!/usr/bin/env python | ||
# coding: utf-8 | ||
# | ||
# Um homem chamado José é o responsável por ligar e desligar as luzes de um | ||
# corredor. Cada lâmpada tem seu próprio interruptor que liga e a desliga. | ||
# Inicialmente todas as lâmpadas estão desligadas. | ||
# José faz uma coisa peculiar: se existem n lâmpadas no corredor, ele caminha | ||
# até o fim do corredor e volta n vezes. Na iésima caminhada, ele aperta | ||
# apenas os interruptores aos quais sua posição é divisível por i. Ele não | ||
# aperta nenhum interruptor na volta à sua posição inicial, apenas na ida. A | ||
# iésima caminhada é definida como ir ao fim do corredor e voltar. | ||
# Determine qual é o estado final de cada lâmpada. Está ligada ou desligada? | ||
# Exemplo: | ||
# Entrada: 3 | ||
# Saída: [on, off, off] | ||
# 1 TTTTTTTTTTT | ||
# 2 TFTFTFTFTFT | ||
# 3 TFFFTTTFFFT | ||
# 4 TFFTTTTTFFT | ||
# 5 TFFTFTTTFTT | ||
# 6 TFFTFFTTFTT | ||
# 7 TFFTFFFTFTT | ||
# 8 TFFTFFFFFTT | ||
# 9 TFFTFFFFTTT | ||
# 10 TFFTFFFFTFT | ||
# 11 TFFTFFFFTFF # 1, 4, 9 | ||
|
||
def corredor(n): | ||
lampadas = [True] * n | ||
for i in range(2, n + 1): | ||
for j in range(i - 1, n, i): | ||
lampadas[j] = not lampadas[j] | ||
return lampadas | ||
|
||
def test_55_lampadas(): | ||
n = 55 | ||
assert corredor(n) == [int(i ** .5) ** 2 == i for i in range(1, n+1)] | ||
|
||
def test_11_lampadas(): | ||
assert corredor(11) == [True,False,False,True,False,False,False,False, | ||
True,False,False] | ||
|
||
def test_8_lampadas(): | ||
assert corredor(8) == [True,False,False,True,False,False,False,False] | ||
|
||
def test_7_lampadas(): | ||
assert corredor(7) == [True,False,False,True,False,False,False] | ||
|
||
def test_6_lampadas(): | ||
assert corredor(6) == [True,False,False,True,False,False] | ||
|
||
def test_5_lampadas(): | ||
assert corredor(5) == [True, False, False, True, False] | ||
|
||
def test_4_lampadas(): | ||
assert corredor(4) == [True, False, False, True] | ||
|
||
def test_3_lampadas(): | ||
assert corredor(3) == [True, False, False] | ||
|
||
def test_2_lampadas(): | ||
assert corredor(2) == [True, False] | ||
|
||
def test_1_lampada(): | ||
assert corredor(1) == [True] | ||
|
||
def test_nenhuma_lampada(): | ||
entrada = 0 | ||
obtido = corredor(entrada) | ||
assert obtido == [] | ||
|