Archive for the ‘Python’ Category

Dojo 7 – Campo Minado

quinta-feira, abril 22nd, 2010
  • Data: 18/04/2010
  • Horário: 10:30 hrs
  • Participantes: Leandro, Joacir, Renato,  João e Fagner
  • Problema: Campo Minado
  • Linguagem: Python
  • Formato: Randori

No último encontro Dojo Marília, o problema proposto foi um popular jogo de computador. Um verdadeiro clássico nativo de  um S.O. formado por janelinhas… Quem nunca jogou “Campo Minado”?

campo-minado

Regras do jogo:

Tomamos a liberdade de mudar um pouco a regra do jogo:

  • A área do jogo consiste em um quadrado de 4 x 4, onde 8 posições contém uma mina (nível Avançado);
  • Se o jogador selecionar um campo que possui mina “game over”;
  • O jogado é vencedor quando todos os quadrados que não têm minas forem revelados.

Retrospectiva

Ruim:

  • Pontualidade dos participantes;
  • Falta de Harmônia;
  • Correu com o TDD;
  • Requisito Falho;
  • Planejamento Falho;
  • Participante sempre com a mesma camisa do “curintia”.

Bom

  • Listas em Python;
  • Python;
  • Tamanho do problema;
  • Letra légivel no planejamento;
  • Legenda para identificar status do jogo.

Considerações:

A linguagem Python para maioria dos participantes era novidade, destaco aqui um ponto positivo que foi a passagem de conhecimento de alguns participantes para o restante do grupo.

Até o próximo Dojo Marília,

Abraços!

Dojo 5 – Poker

quarta-feira, fevereiro 3rd, 2010

Nesse sábado contamos com dois iniciantes no dojo, os senhores Rodrigo (programador em C e Java) e Cássio (Publicitário, nunca programou uma linha na vida), esse encontro serviu principalmente pra exemplificar como um Dojo, além de ampliar e qualificar as skills em Python dos programadores, também é interessante a quem quer aprimoramento em lógica.

O desafio escolhido foi relacionado a poker, o usuário entraria com as 5 cartas que possui e o sistema retornaria qual é o valor da sua mão, seguindo a sequência:

RoyalFlush: sequência com o mesmo naipe de 10, J, Q, K e A;

StraightFlush: cinco cartas em sequência com o mesmo naipe;

Quadra: Quatro cartas do mesmo valor;

FullHouse: Uma trinca (três cartas do mesmo valor) e um par (duas cartas do mesmo valor);

Flush: Cinco cartas do mesmo naipe;

Straight: Sequência de 5 cartas com qualquer valor ou naipe;

Trinca: Três cartas do mesmo valor

Dois pares: dois pares de cartas do mesmo valor

Um par: duas cartas do mesmo valor

Carta mais alta: Caso o usuário não tenha nenhuma das combinações acima a carta mais alta segue a sequência: A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3, 2.

O sistema executaria a ação a partir do RoyalFlush, e ao encontrar o valor desejado retornaria ao usuário sem precisar passar pelos outros métodos.

Retrospectiva

Ruim:
Planejamento mal executado;
Novas regras são ruins;
Problemas na organização.

Bom:
TDD
Skill em Python

Graças ao João, não temos as fotos desse Dojo. : (

Dojo 2 – Média Ponderada

sábado, novembro 28th, 2009
  • Data: 28/11/2009
  • Horário: 10:00 hrs
  • Participantes: Leandro, Joacir, João, Fábio e Renato
  • Problema: Média ponderada de notas
  • Linguagem: Python
  • Formato: Randori

Ráaaaaaaa! Segundo Dojo!

Apesar de 2 convidados não comparecerem, o dojo foi bem legal, o problema dessa vez foi:

“Escreva um algoritmo/programa que leia o código de um aluno e suas três notas. Calcule a média ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem “APROVADO” se a média for maior ou igual a 5 e “REPROVADO” se a média for menor que 5. Repita a operação até que o código lido seja negativo.”

Coisas ruins: =(

  • TDD – Ainda somos newbies
  • Poucos comentários no código
  • Problemas em definir nomes de métodos e variáveis
  • Ninguém consegue ficar quieto

Coisas boas: =)

  • As discussões  foram boas
  • PYTHON!
  • TDD – Aprendemos mais
  • Aprendemos calcular média ponderada
  • Resolvemos o problema
  • Planejamento foi melhor que o anterior
  • Cronômetro
  • Ambiente preparado com antecedência

O próximo vai ser em Ruby!