BCC CHALLENGE 2

Tue May 18 22:01:24 2010

RESULTADO

As equipes vencedoras ganharam:

  1. Camiseta do CEI + 1x Caixa de Bombom LACTA
  2. Camiseta do CEI + 2x Chocolate Marilan Max
  3. Camiseta do CEI + 1x Chocolate Marilan Max

A imagem abaixo mostra a chave de eliminacao dupla. Clique na partida que deseje ver e a luta aparecerá para você.

Ou se você quiser, pode BAIXAR o vídeo completo do BCC Challenge.

Fotos do Evento

https://www.inf.ufpr.br/maratona/bccchallenge/2/fotos/

Robôs participantes do evento (download)

Equipe Robô
Reira Cafeh Sungja 2.0
The Others Mr. Eko VIII
gv gv player
Du Dudu e Edu robãozão
Identidade Roscoche rambo
Bulldozer4 Dusty4
A abominável equipe das neves Megazord Quebra-neve
Laranja Mecânica HAL 1000
Duff Beer Racing HoMeR_v6.6.6
Baixo Nível Sucker19
PET-Force Golimar

Versão 3D

Para rodar a versão 3D você precisa:

Executando

Você deverá definir as variáveis:

  export CLASSPATH=icypc.jar:/usr/share/java/jogl.jar:/usr/share/java/gluegen-rt.jar
  export LD_LIBRARY_PATH=/usr/lib/jni/
  

Agora basta:

  LC_ALL=C LANG=C java icpc.challenge.view.TracePlayer -trace <arquivo.trace> -view 3D

A versão 3D consegue rodar o jogo normalmente, mas é recomando usar o tracefile (como acima), e para gerar o trace file basta (com o icypcy sem 3D):

  java -jar icypcy.jar -view trace <arquivo.trace> -player XXX XXX -player YYY YYY


O Jogo

O jogo do BCC Challenge é simulado num campo semelhante a figura abaixo. Um jogador vermelho e outro azul competem num campo coberto de NEVE. Cada jogador controla um grupo de crianças, que podem pegar a neve, andar pelo terreno, fazer bolas de neve, jogar nos outros e fazer homens de neve. Os jogadores ganham pontos colocando os homens de neve estrategicamente, e acertando o oponente com bolas de neve.

Quem pode Participar

Qualquer aluno da UFPR poderá participar do BCC Challenge

Como se inscrever

Regras

O campo de batalha

O BCC Challange 2 será jogado em um campo de 31 x 31 espaços. Os espaços são indexados por X e Y, sendo que X varia da esquerda para a direita, e Y varia de baixo para cima, ambos de 0 até 30.

Alguns espaços contém árvores. Espaços que contém árvores não podem conter neve, e bloqueiam o movimento tanto de crianças quanto de bolas de neve. A quantidade e posição das árvores variam de jogo para jogo, mas o número de árvores sempre será menor que 10 por cento do número de espaços. Além disso, árvores nunca irão fazer com que regiões sem árvores não sejam alcançadas, e nunca irão ocupar a posição incial de uma criança. Para tornar o jogo justo, as árvores sempre serão simétricas em uma rotação de 180 graus do campo, isto é, se houver uma árvore na posição (x,y), também haverá uma árvore na posição (30-x, 30-y).

No início do jogo, espaços sem árvores irão conter neve solta cuja altura é de 3 unidades (digamos, 3 decímetros). Durante o jogo, a neve pode ser pega por crianças, movida, comprensada em bolas de neve de 3 tamanhos diferentes e postas no chão.

Altura da neve e capacidade dos espaços

Cada espaço pode conter alguma quantidade de neve na forma de neve solta, e, possívelmente, algumas bolas de neve no topo. A altura da neve em um espaço é definida tanto pela neve solta quanto pelas bolas de neve. Uma bola de neve pequena representa 1 unidade de altura; Uma bola média representa 2 unidades de altura; e uma bola grande representa 3 unidades de altura. Por exemplo, se uma bola de neve média for posta em um espaço que já continha 3 unidades de altura de neve solta, então o espaço terá agora uma altura de 5 unidades. As bolas de neve sempre estarão em cima de qualquer neve solta, mesmo se a neve solta fora adicionada depois.

Cada espaço pode conter neve de 0 a 9 unidades de altura, inclusive. Um jogador não pode colocar neve (seja solta ou bolas) em um espaço se a altura do mesmo exceder 9 unidades. Além disso, um jogador não pode se mover através de espaços contendo neve com altura 6 ou mais. Uma criança, por exemplo, pode se mover através de um espaço contendo 3 unidades de neve solta e uma bola de neve médias, mas não pode se mover em espaços com 3 unidades de neve solta e uma bola de neve grande.

Pilhas de bolas de neve e o conteúdo dos espaços

Bolas de neve postas em cima de um mesmo espaço podem ser empilhadas. Se uma bola menor é posta em um espaço contendo uma bola maior, a menor fica empilhada em cima da maior. Se 3 bolas são empilhadas, um boneco de neve é formado, cujo dono será a equipe que colocou a última bola.

Se uma bola é colocada em cima de outra de mesmo tamanho ou menor, todas as bolas de tamanho menor ou igual naquele espaço voltarão a ser neve solta. O mesmo ocorre se uma criança se mover através de um espaço contendo uma ou mais bolas. Se um boneco de neve for atingido na cabeça por uma bola de neve que foi jogada por alguém, a última bola na pilha volta a ser neve solta, e o espaço volta a ser formado por uma bola grande e outra média.

A tabela a seguir é uma relação entre um possível estado de um espaço (além da quantidade de neve solta) e a representação usada na descrição do jogo para o jogador.

Conteúdo Símbolo
Vazio a
Árvore b
Bola pequena c
Bola média d
Bola pequena em cima de uma média e
Bola grande f
Bola média em cima de uma grande g
Bola pequena em cima de uma grande h
Boneco de neve vermelho i
Boneco de neve azul j

Jogando

Cada jogador controla uma equipe de 4 crianças.

O jogo dura 180 turnos. No começo de cada turno, cada jogador deverá ler o estado do campo da entrada padrão, processar as ações e imprimí-las na saída padrão. As ações das crianças são independentes, isto é, uma criança pode, por exemplo, pegar neve do chão, enquanto outra faz uma bola de neve e uma outra pode se mover entre espaços do campo.

Atributos de crianças

As crinaças poderam estar agachadas ou em pé. Enquanto estiver agachada, uma crinaça pode pegar neve do chão. Além disso, bolas de neve jogdas por outras crianças não irão atingir crianças agachadas. Em pé, uma criança poderá se mover mais rápido, e atirar bolas de neve mais longe. Uma criança agachada ocupa 6 unidades de altura, enquanto uma criança em pé ocupa 9.

As crianças também podem segurar neve ou bolas enquanto se movimentam. A tabela a seguir descreve o estado das mãos de uma criança e sua representação:

Estado da criança Símbolo
Mãos vazias a
1 unidade de neve solta b
2 unidades de neve solta c
3 unidades de neve solta d
1 bola pequena e
2 bolas pequenas f
3 bolas pequenas g
1 bola média h
1 bola grande i

Domínio e visibilidade dos bonecos

O domínio de um jogador A é formado pelos espaços do campo cujo boneco mais próximo pertence a A e cuja distancia euclidiana do espaço até este boneco é menor que 8.

Um jogador A não terá a descrição de todo o campo, mas sim apenas dos espaços que estão em sua visibilidade. Esses espaços são formados pelo domínio do jogador, além dos espaços cuja distância euclidiana deles até uma criança de A é menor que 8.

Atingindo crianças e ganhando pontos

Um jogador A ganha 10 pontos quando uma bola de neve atirada por uma criança de A atinge uma criança da outra equipe. O jogador também ganha 1 ponto para cada espaço de seu domínio.

Quando uma criança é atingida por uma bola, ela fica tonta e fica impossibilitada de jogardurante 4 turnos. Se uma criança tonta for atingida denovo, fica sem jogar por mais 4 turnos, contando a patir do turno em que foi atingida por último.

Vencendo

No fim do jogo, o vencedor é o jogador com maior score. Se houver empate, vence quem fez mais pontos através de bolas de neve. Se ainda há empate, a soma do domínio dos jogadores em todos os turnos decide a vitória.

Direcionando a equipe

Em cada turno, cada criança pode fazer 10 ações diferentes. O jogador deverá imprimir a ação de cada criança a cada turno, uma por linha.

A figura a seguir mostra a posição inicial das crianças. A primeira ação a ser impressa corresponde à criança 0, a segunda à criança 1, etc. Crianças de 4 a 7 são do oponente.

Não fazendo nada

Imprima

idle

como ação de uma criança para que a mesma não faça nada. Esta ação é a única que pode ser tomada por uma criança tonta.

Agachar

Imprima

crouch

para fazer uma criança agachar.

Ficar em pé

Imprima

stand

para fazer uma criança ficar em pé.

Correr

Se uma criança está em pé, ela poderá correr para qualquer espaço cuja distancia euclidiana até a criança seja no máximo 2, em apenas um turno. A criança não poderá atravessar espaços cuja altura da neve seja maior ou igual a 6 ou que contenha árvores. Imprima

run 31 10

, por exemplo, para correr para o espaço cuja coordenada é (31, 10).

Se arrastar

Se uma criança está agachada, poderá se arrastar para o espaço imediatamente cima, abaixo, à esquerda ou à direita em um turno. As regras são as mesmas para as corridas. Imprima

crawl 21 0

, por exemplo, para se arrastar para o espaço cuja coordenada é (21, 0).

Pegar algo

Se uma criança está agachada, pode pegar algo do chão de qualquer um dos 8 espaços adjacentes ao que se encontra, caso ainda haja capacidade em suas mãos (ver tabela acima). Se há apenas neve solta, a criança irá pegar 1 unidade de altura de neve. Se há bolas de neve empilhadas, ela irá pegar a bola no topo da pilha. Imprima

pickup 11 13

, por exemplo, para pegar algo do espaço cuja coordenada é (11, 13).

Colocar algo

Se a criança está segurando neve, pode colocá-la em qualquer um dos 8 espaços adjacentes ao que se encontra, desde que a nova altura do espaço não ultrapasse 9 unidades. Se uma bola de neve for posta em cima de outra maior, elas serão empilhadas. Imprima

drop 21 4

, por exemplo, para colocar algo no espaço (21,4).

Fazer bolas de neve

Se uma criança está segurando neve solta, poderá transformá-la em bolas de neve, imprimindo

crush

. 1 unidade de altura de neve solta produz uma bola pequena; 2 unidades produzem uma média; e 3 unidades produzem uma grande.

Atirar bolas de neve

Uma criança segurando bolas de neve pequenas pode atirá-las. Durante o trajeto, a bola irá reduzir sua altura linearmente. A altura da bola começa em 9 se a criança está em pé, ou em 6 se a criança está agachada. Imprima

throw 16 24

, por exemplo, para atirar uma bola na direção do espaço (16,24). O alvo não pode ter uma distância euclidiana da criança maior que 24.

Pegando bolas no ar

Se uma criança está com as mãos vazias ou está segurando apenas algumas bolas pequenas, ela poderá pegar bolas que forem atiradas pelo oponente em sua direção no ar. Para tal, imprima

catch 30 29

, por exemplo, para pegar a bola que foi atirada pela criança situada no espaço (30,29). Se a criança nesse espaço não atirou nenhuma bola em sua direção, ou se não há crianças nesse espaço, a pegada irá falhar e a bola poderá atingi-lo.

Entrada e Saída de Dados

Tudo é feito pela Entrada e Saída padrão.

Tempo de cada Partida

Cada round do jogo terá 180 turnos.

Implementação

A implementação do jogo poderá ser feita em qualquer linguagem que consiga fazer comunicação pela entrada e saída padrão.

Partidas Preliminares

Toda segunda-feira acontecerá partidas entre os jogadores já submetidos e os jogos não serão disponibilizados, será apenas contabilizado a quantidade de vitórias preliminares para cada equipe.

Tabela de Preliminares

Equipe Robô Vitórias
Reira Cafeh Sungja 1.5 16
The Others Mr. Eko V 13
gv gv player 0.2 10
Du Dudu e Edu robão 7
Identidade Roscoche rambo 5
Bulldozer4 bravo_charlie 4
A abominável equipe das neves Megazord Esquimó 4
Laranja Mecânica HAL 1000 3
Duff Beer Racing HoMeR_v6.6.6 1
Baixo Nível* - -
Butterfinger* - -
Migdi* - -
PET-Force* - -
Snowgoritmos* - -

* ainda não submeteu nenhuma versão

Lembrando que as vitórias são somadas as vitórias da preliminar anterior. E todas as equipes fizeram 3 jogos (nessa rodada), exceto a "Identidade Roscoche" que fez apenas 2 jogos.

Quem são os times

Material de Apoio

Competição Final

No dia 16/04/2010 13/05/2010 um telão no DInf mostrará a competição entre os jogadores submetidos.

Submissão

A submissão poderá ocorrer múltiplas vezes e a última submissão feita até o dia 14/04/2010 19/04/2010 09/05/2010 é a que será utilizada na competição oficial.

Todos os arquivos necessários para compilar o código deverá estar dentro de um arquivo .tar.

A compilação será feita pela equipe julgadora e para isso cada aplicação deverá possuir um Makefile

Onde será feito a submissão

A submissão do código será feito pelo site de SUBMISSÃO.

Wallpaper

1024x600 1024x768

FAQ

Como tiro alguma dúvida que tenho em relação ao BCC Challenge?

Qual java precisa?

  --- 
  {Bruno, Raphael} Ribas e Andre Guedes