Dessa vez vieram 7 pessoas pra praticar no Dojo UFSC, algumas já conhecidas
O número de participantes foi muito bom, e conseguimos trabalhar bem em equipe…
Como ninguém trouxe sugestões próprias de problemas, apresentamos alguns “pré-selecionados” pelo mestre, e foi escolhido o Secret Santas (http://rubyquiz.com/quiz2.html). O problema requer que o nosso programa faça um sorteio “inteligente” de amigos secretos.
No jeito manual de se escolher pares de amigos secretos (com os papeizinhos) sempre tem a chatice de que alguém acaba se pegando, e daí todo mundo coloca de volta no saco – sem piadinhas por favor
Além disso, na hora de revelar, sempre acontece os tais “ciclos”: A pega B, B pega C e C pega A.
O nosso objetivo então era fazer um programa que, dada uma lista de nomes como entrada, fizesse a escolha dos pares de amigos secretos, sem que ninguém pegasse a si mesmo, e com o maior “ciclo” possível.
Exemplo válido:
Nomes: João, Maria, Marcos, Ana, Cláudia
Amigos: (João, Marcos), (Marcos, Cláudia), (Cláudia, Ana), (Ana, Maria), (Maria, João)
Exemplo inválido (Alguém se pega):
(João, Marcos), (Marcos, Marcos), …
Exemplo inválido (”ciclo” pequeno):
(João, Marcos), (Marcos, Cláudia), (Cláudia, João), …
Havia ainda mais um requisito no problema: ninguém pode pegar um amigo secreto da sua família, ou seja, pessoas que têm o mesmo sobrenome não podem se pegar – por favor, sem piadinhas aqui também.
Apesar de não termos conseguido resolver o problema, chegamos “quase lá”. Aí vaí o código:
Coding Dojo 2010-05-19: Secret Santas
No fim das quase duas horas de árdua programação e diversão fizemos a retrospectiva do encontro:
Bom:
- Problema desafiador
- Quantidade de pessoas adequada
- Terminou na hora
- Pessoas novas
Ruim:
- Falta de Monitor
- Problema não resolvido
- Um participante saiu no meio da reunião
- Atrasos
- Windows
Gostei desse problema. Vou sugerir aqui no DojoRio.
Vocês não preferem usar o Github pra colocar os códigos dos dojos?