As equipes vencedoras ganharam:
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.
https://www.inf.ufpr.br/maratona/bccchallenge/2/fotos/
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 |
Para rodar a versão 3D você precisa:
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 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.
Qualquer aluno da UFPR poderá participar do BCC Challenge
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.
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.
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 |
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.
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 |
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.
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.
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.
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.
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.
Imprima
crouch
para fazer uma criança agachar.
Imprima
stand
para fazer uma criança ficar em pé.
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 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).
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).
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).
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.
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.
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.
Tudo é feito pela Entrada e Saída padrão.
Cada round do jogo terá 180 turnos.
A implementação do jogo poderá ser feita em qualquer linguagem que consiga fazer comunicação pela entrada e saída padrão.
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.
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.
No dia 16/04/2010 13/05/2010 um telão no DInf mostrará a
competição entre os jogadores submetidos.
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
A submissão do código será feito pelo site de
SUBMISSÃO.
![]() |
1024x600 1024x768 |
--- {Bruno, Raphael} Ribas e Andre Guedes