Archive for the ‘Problemas’ Category

Coding Dojo PHB – #3, #4 e #5 – Código Morse

abril 9, 2010

Aloha!

Depois de mais três encontros e um problema resolvido, decidimos atualizar o blog através deste post! Vale ressaltar que, mesmo sem atualizações semanais, as atividades continuam acontecendo com frequência normal (semanal) e que os estudos não param.

Datas: 15, 23 e 30 de Março de 2010.

Presentes: Houve um problema (de memória limitada) no registro dos participantes, mas podemos resgatar alguns através de fotos: Nécio Veras, Giovanni, Roniere, Sávio, Luan, Alan, Dener, William, Francisco Junior (o das Chagas), Márcio Brito, Thiagos (Barros e Costa), Leonardo e muitos alunos do Bloco I do curso Técnico em Informática.

Linguagem: Java

Problema: Codificar frases da língua portuguesa para o Código Morse. Obs: foram inseridos no alfabeto dígitos, caracteres (maiúsculos), ponto e vírgula.

Retrospectivas

Foi bom:

  • Problema interessante e repleto de requisitos;
  • Maturidade na codificação (evolução durante os três encontros);
  • Mais participantes ativos;

Pode melhorar:

  • Participação ativa (o número de espectadores ainda é muito alto);
  • Merenda (eita ano de 2010 magro!)
  • Lista de frequência;
  • Plateia dispersa em alguns momentos, principalmente quando o encontro se dá no laboratório;

Solução: no local de sempre: github.

Bom, fizemos ainda um DOJO bem rápido nesta semana (dia 06/04) realizando uma codificação simples e básica voltada para os alunos iniciantes em lógica de programação.

Para esta semana que se segue será um DOJO ESPECIAL, o Dojo Google Code Jam PHB, onde resolveremos um problema do Round de Qualificação do Google Code Jam Africa 2010, realizado no último dia 15.

Sejam todos bem-vindos à participar!

Até breve!

Problema para o Dojo Teresina 004 – Boliche

setembro 1, 2009

Conforme já foi discutido na lista o problema do 4º dojopi [em Teresina, já que agora temos também a contagem do dojopi de Parnaíba correndo em paralelo 🙂 ] deve ser um programa de pontuação de partidas de Boliche.

Como eu não entendo muito de boliche resolvi fazer uma pesquisa pra conhecer mais sobre o jogo. O resultado é um resumo das regras no tocante à pontuação. Ao final teremos um roteiro que irá guiar nossos testes e, consequentemente, nossa implementação.

Contagem dos pontos

O jogo de boliche consiste de dez frames. Um jogador tem direito a duas bolas em cada frame. A pontuação de uma partida varia de acordo com a quantidade de pinos e a forma como o jogador os derruba.

Em resumo, existem três formas de acumular pontos:

  1. pelos pinos derrubados, quando não fizer strike ou spare;
  2. pelos pinos derrubados, mais (bônus) os pinos derrubados nas DUAS bolas seguintes quando fizer strike;
  3. pelos pinos derrubados, mais (bônus) os pinos derrubados na BOLA seguinte quando fizer spare.

Strike: é marcado quando todos os pinos são derrubados no primeiro lançamento do frame, neste caso, o jogador não precisará fazer a segunda jogada do frame e a pontuação se dará conforme o item 2 acima. No quadro de pontuação o strike é simbolizado com um X.

Spare: acontece quando os pinos que não foram derrubados no primeiro lançamento são derrubados no segundo arremesso do mesmo frame. Os pontos obtidos são descritos no item 3 acima. No quadro de pontuação o spare é simbolizado com uma /.

O último frame é especial, ele “poderá” permitir uma jogada extra, caso o jogador obtenha um spare ou duas jogadas extras caso o jogador tenha obtido um strike.

No quandro de pontuação o símbolo ‘-‘ significa que não houve pinos derrubados na jogada. A pontuação máxima no boliche é de 300 pontos (12 strikes).

Simulação

Pontuação de uma partida de boliche

Pontuação de uma partida de boliche

Frame a frame

Frame 1: 30 pontos

10 pontos pelo strike + bônus das DUAS BOLAS jogadas na seqüência (10 + 10, já que o jogador fez dois strikes logo a seguir) por esse strike.

No primeiro frame o jogador do exemplo derrubou os 10 pinos na primeira bola jogada (strike), porém para marcar esses dez pontos do primeiro frame, antes é preciso jogar as duas bolas seguintes (porque o bônus pelo strike são os pontos das DUAS BOLAS seguintes)

Frame 2: 57 pontos

São os 30 acumulados do primeiro frame (veja acima) + os 10 pontos pelo strike que fez neste segundo frame + bônus das DUAS BOLAS jogadas na seqüência por esse strike (na primeira o jogador fez outro strike e na segunda derrubou apenas 7 pinos). Então: 30 + 10 + 10 + 7 é igual a 57 pontos (total até o segundo frame)

Frame 3: 76 pontos

São os 57 acumulados até o segundo frame + os 10 pontos pelo strike que fez neste terceiro frame + bônus das DUAS BOLAS jogadas na seqüência por esse strike (na primeira o jogador derrubou 7 pinos e na segunda apenas 2).

57 + 10 + 7 + 2 = 76

Frame 4: 85 pontos

São os 76 pontos acumulados até o terceiro frame + os 9 pontos (7+2) conseguidos nesse frame (sem bônus porque não fez strike nem spare).

76 + 9 = 85

Frame 5: 95 pontos

São os 85 pontos acumulados até o quarto frame + os 10 pontos (spare 8+2) conseguidos nesse frame + o bônus da BOLA SEGUINTE por esse spare (zero, porque o jogador cometeu falta e não marca ponto).

85 + 10 + 0 = 95

Frame 6: 104 pontos

São os 95 pontos acumulados até o quinto frame + os 9 pontos conseguidos nesse frame (0 + 9), sem bônus porque não fez strike nem spare).

95 + 0 + 9 = 104

Frame 7: 124 pontos

São os 104 pontos acumulados até o sexto frame + os 10 pontos pelo strike conseguido nesse frame + bônus das DUAS BOLAS jogadas na seqüência por esse strike (na primeira o jogador derrubou 7 pinos e na segunda 3 pinos).

104 + 10 + 7 + 3 = 124

Frame 8: 143 pontos

São os 124 pontos acumulados até o sétimo frame + os 10 pontos pelo spare conseguido nesse frame + o bônus da BOLA SEGUINTE por esse spare (o jogador derrubou 9 pinos).

124 + 10 + 9 = 143

Frame 9: 152 pontos

São os 143 pontos acumulados até o oitavo frame + os 9 pinos derrubados nesse frame (sem bônus porque não fez strike nem spare).

143 + 9 = 152

Frame 10: 180 pontos

São os 152 pontos acumulados até o nono frame + 10 pelo strike na primeira bola jogada nesse frame + bônus das DUAS BOLAS seguintes (outro strike e 8 pinos).

152 + 10 + 10 + 8 = 180

OBS: se fizer strike na primeira bola jogada no décimo frame ganha-se DUAS bolas extras para jogar como bônus. Se fizer spare nas duas primeira bolas jogadas no décimo frame ganha UMA bola extra para jogar como bônus.

Fontes: