• O jogo consiste de uma “arena”, com dimensões 30 por 80 (30 linhas por 80 colunas).
• O jogo também contará com 1 “canhão” representado pelo caracter da tabela ASCII cujo código é 219.
• Deve ser possível mover o canhão para a esquerda e para a direita dentro dos limites da arena, por meio das teclas de direção “SETA ESQUERDA” e “SETA DIREITA”;
• A velocidade máxima de deslocamento, tanto para a esquerda, quanto para à direita, de seu canhão deve poder ser configurada pelo usuário. Por exemplo, poder configurar para se mover com velocidade máxima de 1 coluna a cada pressionamento da tecla a cada 100 milisegundos, 1 coluna a cada pressionamento da tecla a cada 200 milisegundos, 1 coluna a cada pressionamento da tecla a cada 1 segundo, etc.;
• O seu canhão tem uma “mira”, representada pelo caracter ‘x’, que está sempre posicionada em alguma posição verticalmente alinhada ao seu canhão;
• Deve ser possível mudar a posição da mira do seu canhão para “cima” ou para “baixo”, por meio das teclas de direção “SETA PARA CIMA” e “SETA PARA BAIXO”.
Observação 1: o movimento “para cima” é limitado pela borda superior da arena e, o limite para baixo é de 3 linhas acima do seu canhão;
Observação 2: a velocidade máxima de deslocamento, tanto para cima, quanto para baixo, da mira de seu canhão deve poder ser configurada pelo usuário. Por exemplo, poder configurar para se mover com velocidade máxima de 1 linha a cada pressionamento da tecla a cada 100 milisegundos, 1 linha a cada pressionamento da tecla a cada 200 milisegundos, 1 linha a cada pressionamento da tecla a cada 1 segundo, etc.;
• Como é um canhão, ele é capaz de disparar balas. Seu programa deve permitir que ele dispare balas por meio do pressionamento da tecla ESPAÇO.
Observação 1: uma “bala” nada mais é do que a letra ‘o’;
Observação 2: a velocidade máxima de deslocamento da bala deve ser passível de ser definida pelo usuário. Por exemplo, poder configurar para se mover com velocidade máxima de 1 linha a cada pressionamento da tecla a cada 100 milisegundos, 1 linha a cada pressionamento da tecla a cada 200 milisegundos, 1 linha a cada pressionamento da tecla a cada 1 segundo, etc.;
Observação 3: a bala deve explodir no lugar em que a mira estava posicionada quando a bala foi disparada.
Nota 1: a explosão da bala de canhão, nada mais é do que, substituir o ‘o’ pela palavra ‘pow’, na posição adequada.
Nota 2: a explosão da bala deve afetar uma área equivalente a um quadrado 4x4, isto é, 4 linhas por 4 colunas. Isto é, caso haja alguma coisa nessa área da explosão, ela será eliminada.
• No jogo também deverá cair “mísseis” do “céu” (borda superior). Um míssil deve estar representado pelo caracter da tabela ASCII cujo código é 223;
• A quantidade de mísseis que vão caindo dos céus deve ir aumentando paulatinamente (o quanto e a taxa desse aumento ficam a seu critério);
• Podem estar caindo em um mesmo momento até 9 mísseis;
• A definição da posição inicial de onde um míssil vai começar a cair deve ser aleatória;
• A trajetória de queda de um míssil pode ser, ou esquerda, ou direita, ou reta para baixo;
• A velocidade de queda dos mísseis deve ser a mesma para todos e também deve ser possível de ser definida pelo usuário, do mesmo modo que já explicado anteriormente. Detalhe 1: a cada conjunto de 9 mísseis destruídos, a velocidade de queda deve ser aumentada automaticamente (fica a seu critério definir a quantidade desse aumento);
• Se um míssil estiver na área de alcance da explosão de uma bala do canhão ele deve desaparecer da tela;
• Se um míssil atingir o chão, ou o seu canhão, o jogo deve ser terminado;
• Se você tiver conseguido destruir 50 mísseis, o jogo deve encerrar e você deve ser declarado o campeão.
nossa!! que enorme....
Bom, enfim... já conseguir fazer a funçao para gerar os numeros aleatorios por onde os misseis cairão.... alem da leitura das setas e da montagem da arena!
Me resta uma dúvida para eu mapear essa "arena" tenho que definir a matriz de 30 por 80??
E em relaçao aos misseis vindo de qualquer direçao??? Como farei issow??
E sobre como fazer para que ao mesmo tempo eu mova o canhao e o missel que irei atirar também se mova??
Grato!