Fórum Jogo Robolandia #557183
15/06/2016
0
Galera meu professor pediu para fazer um joguinho mais não faço ideia de como fazer, alguem pode me ajudar, aqui as intruções:
Um dos esportes favoritos na Robolândia é o Rali dos Robôs. Este rali é praticado em uma arena retangular gigante de N linhas por M colunas de células quadradas. Algumas das células estão vazias, algumas possuem moedas e algumas são ocupadas por pilastras que sustentam o teto da arena. Em seu percurso, os robôs podem ocupar qualquer célula da arena, exceto as que contém pilastras, que bloqueiam o seu movimento.
O percurso do robô na arena durante o rali é determinado por uma sequência de instruções. Cada instrução é representada por um dos seguintes caracteres: 'D', 'E' e 'F', significando, respectivamente, "gire 90 graus para a direita", "gire 90 graus para a esquerda" e "ande uma célula para a frente". O robô começa o rali em uma posição inicial na arena e segue fielmente a sequência de instruções dada (afinal, eles são robôs!).
Sempre que o robô ocupa uma célula que contém uma moeda, ele a coleta. As moedas não são repostas, ou seja, cada moeda pode ser coletada uma única vez.
Quando um robô tenta andar para uma célula onde existe uma pilastra, ele patina, permanecendo na célula onde estava, com a mesma orientação. O mesmo também acontece quando um robô tenta sair da arena.
Dados o mapa da arena, descrevendo a posição de pilastras e moedas, e a sequência de instruções de um robô, você deve escrever um programa para determinar o número de moedas coletadas pelo robô.
FORMATO DE ENTRADA E DADOS
A entrada contém vários casos de teste. A primeira linha de um caso de teste contém três números inteiros N, M e S (1<=N<=100, 1<=M<=100, 1<=S<=50000), separados por espaços em branco, indicando respectivamente o número de linhas e o número de colunas da arena e o número de instruções para o robô. Cada uma das N linhas seguintes da entrada descreve uma linha de células da arena e contém uma cadeia com M caracteres. A primeira linha que aparece na descrição da arena é a que está mais ao norte; a primeira coluna que aparece na descrição da uma linha de células da arena é a que está mais a oeste.
Cada célula da arena pode conter um dos seguintes caracteres:
'.' - célula normal;
'*' - célula que contém uma moeda;
'#' - célula que contém uma pilastra;
'N', 'S', 'L', 'O' - célula onde o robô inicia o percurso (única na arena). A letra representa a
orientação inicial do robô (Norte, Sul, Leste e Oeste, respectivamente).
A última linha da entrada contém uma sequência de S caracteres dentre 'D', 'E' e 'F',
representando as instruções do robô.
O último caso de teste é seguido por uma linha que contém apenas três números zero separados por um espaço em branco.
FORMATO DE SAÍDA
Para cada rali descrito na entrada, seu programa deve imprimir uma única linha contendo um único inteiro, indicando o número de moedas que o robô colecionou durante o rali.
Um dos esportes favoritos na Robolândia é o Rali dos Robôs. Este rali é praticado em uma arena retangular gigante de N linhas por M colunas de células quadradas. Algumas das células estão vazias, algumas possuem moedas e algumas são ocupadas por pilastras que sustentam o teto da arena. Em seu percurso, os robôs podem ocupar qualquer célula da arena, exceto as que contém pilastras, que bloqueiam o seu movimento.
O percurso do robô na arena durante o rali é determinado por uma sequência de instruções. Cada instrução é representada por um dos seguintes caracteres: 'D', 'E' e 'F', significando, respectivamente, "gire 90 graus para a direita", "gire 90 graus para a esquerda" e "ande uma célula para a frente". O robô começa o rali em uma posição inicial na arena e segue fielmente a sequência de instruções dada (afinal, eles são robôs!).
Sempre que o robô ocupa uma célula que contém uma moeda, ele a coleta. As moedas não são repostas, ou seja, cada moeda pode ser coletada uma única vez.
Quando um robô tenta andar para uma célula onde existe uma pilastra, ele patina, permanecendo na célula onde estava, com a mesma orientação. O mesmo também acontece quando um robô tenta sair da arena.
Dados o mapa da arena, descrevendo a posição de pilastras e moedas, e a sequência de instruções de um robô, você deve escrever um programa para determinar o número de moedas coletadas pelo robô.
FORMATO DE ENTRADA E DADOS
A entrada contém vários casos de teste. A primeira linha de um caso de teste contém três números inteiros N, M e S (1<=N<=100, 1<=M<=100, 1<=S<=50000), separados por espaços em branco, indicando respectivamente o número de linhas e o número de colunas da arena e o número de instruções para o robô. Cada uma das N linhas seguintes da entrada descreve uma linha de células da arena e contém uma cadeia com M caracteres. A primeira linha que aparece na descrição da arena é a que está mais ao norte; a primeira coluna que aparece na descrição da uma linha de células da arena é a que está mais a oeste.
Cada célula da arena pode conter um dos seguintes caracteres:
'.' - célula normal;
'*' - célula que contém uma moeda;
'#' - célula que contém uma pilastra;
'N', 'S', 'L', 'O' - célula onde o robô inicia o percurso (única na arena). A letra representa a
orientação inicial do robô (Norte, Sul, Leste e Oeste, respectivamente).
A última linha da entrada contém uma sequência de S caracteres dentre 'D', 'E' e 'F',
representando as instruções do robô.
O último caso de teste é seguido por uma linha que contém apenas três números zero separados por um espaço em branco.
FORMATO DE SAÍDA
Para cada rali descrito na entrada, seu programa deve imprimir uma única linha contendo um único inteiro, indicando o número de moedas que o robô colecionou durante o rali.
Andrêy Ferraz
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)