Recomendações Importantes
Um vírus apocalíptico chegou à terra fazendo com que os seres humanos passassem a viver sentados alimentando-se somente de biscoitos com refrigerante, o que lhes proporciona uma vida de no máximo 40 anos e preguiça para estudar.
Devido a isto, nossos amigos e supremos seres de Beeblebrox (chamados inocentemente de ETs) vieram à terra para tentar salvar a espécie humana do declínio atual. Guilhermino, ultimo humano com bons hábitos e um eximio programador,
foi escolhido por eles para (re)transmitir os conhecimentos da humanidade para todos da terra. Para esta tarefa ele ganhou um 'Constelactus W9K', um robô que cabe dentro do ouvido e consegue armazenar todo o conhecimento do universo e transmitir
para a mente de quaisquer outra pessoa, contanto que Guilhermino cadastre os conhecimentos antes.
Guilhermino está encarregado de gerenciar os dados do 'Constelactus W9K' - ele quem cadastra e apaga itens do robô.
Mas, como nem tudo são flores, os Beeblebrox esqueceram o código-fonte do 'Constelactus W9K'. Então, você esta encarregado de programar o 'Constelactus W9K'. Ele terá as seguintes funções:
:add "Conhecimento" "Área" //Adiciona um conhecimento à área escolhida:remove "Conhecimento" "Área" //Remove o conhecimento da área escolhida:show "*" //Exibe todos os conhecimentos adicionados:show "área" //Exibe os conhecimentos da área escolhida:quit //Encerra o programaAtenção: O método de busca deve ser implementado recursivamente.
As áreas de conhecimento são:
Exemplo de uso:
:add "A matemática é a mãe das ciências" "Exatas" // Entrada do usuárioConhecimento adicionado à 'Exatas' // Saída:add "A água é formada por moléculas de H2O" "Natureza" // Entrada do usuárioConhecimento adicionado à 'Natureza' // Saída:remove "A matemática é a mãe das ciências" "Exatas" // Entrada do usuárioConhecimento removido de 'Exatas' // Saída:show "*" // Entrada do usuário1 - A água é formada por moléculas de H2O // Saída:quit // Fim do programaApós uma longa jornada levando os saberes da humanidade para os humanos perdidos em biscoitos e refrigerante, Guilhermino chega na cidade de Itaquimongo. As lendas sobre a cidade são reais, além da doença nos humanos, a cidade está cheia de Lobicodes, monstros que danificam os códigos ao tocarem em seu código-fonte. Isto quer dizer que, se tocarem no 'Constelactus W9K', este ficará com defeito - e Itaquimongo não será salva.
Sua tarefa é chegar no primeiro humano que conseguir sem tocar em um Lobicodes- se tocar em algum, perderá a missão. Para isto, você terá de criar um mapa de tamanho 6x6 com uma chance de 20% de aparecer um humano ('H') em cada posição e de 10% de aparecer um Lobicodes('L') em cada posição. "_" indica caminho livre (sem humano e sem Lobicodes). Guilhermino deve sempre iniciar no canto inferior direito do mapa.
Exemplo de mapa:
_ L _ _ H _
L _ _ H _ L
_ _ _ _ _ _
_ _ _ _ _ _
L _ _ H _ _
H _ _ _ L G
OBS.:
W - Anda para cima
S - Anda para baixo
A - Anda para a esquerda
D - Anda para a Direita
Bem vindo a ItaquimongoSalve a cidade, chegue até um humano_ L _ _ H _L _ _ H _ L_ _ _ _ _ __ _ _ _ _ _ L _ _ H _ _H _ _ _ L Ga \\Entrada
_ L _ _ H _L _ _ H _ L_ _ _ _ _ __ _ _ _ _ _ L _ _ H _ _H _ _ _ X _Que pena, você encontrou um Lobicode. A missão falhou! //Saída//Fim do programaEduardo, um grande desenvolvedor de jogos lhe convidou para desenvolver seu novo jogo: Epaminondas World. Como a grande empresa de Eduardo estava com o prazo atrasado, ele lhe alocou na área de desenvolvimento do sistema de players e equipamentos.
Esta é a sua tarefa:
Crie a classe arma com: nome, nível e poder.
Crie a classe armadura com: nome, nível e vida
Crie a classe jogador com: nome, nível, arma, armadura, ataque e vida
Crie um main que será um simulador de criação do personagem.
Deve ser possível a criação de armas, armaduras, e personagens equipados com esses equipamentos, logo em seguida o sistema deve imprimir todas as informações sobre o personagem para o usuário.
O que deseja fazer?1- Criar um jogador2- Criar arma3- Criar armadura 4- Sair //mensagem do sistema2 //entrada do usuarioDigite o nome da arma: //sistemaDragon PowerDigite o nível da arma //sistema3 //entrada do usuarioDigite o poder da arma //sistema15 //entrada do usuarioO que deseja fazer?1- criar um jogador2- criar arma3- criar armadura 4- sair //mensagem do sistema1 //entrada do usuarioDigite o nome do jogador //sistemaEpaminondas //usuarioDigite o nivel do jogador //sistema5 //usuarioDeseja equipar alguma arma? //sistemaSim //usuarioDigite o nome da arma //sistemaPower Dragon //usuarioDeseja equipar alguma armadura? //sistemaNao //usuarioNome: EpaminondasNivel: 5Arma: Power Dragon (Nivel: 3, Poder: 15)Armadura: vazioAtaque: 50Vida: 50//sistema//volta pro menu//O programa só encerra quando o usuário escolher a opção de sairPinho um jogador de dota muito habilidoso resolveu formar um time competitivo, porém após alguns desempenhos negativos ele resolveu criar um sistema onde ele pudesse cadastrar seus jogos passados para evitar de cometer os mesmo erros.
Implemente um sistema onde seja possível cadastrar uma partida, essa partida deve conter o nome dos dois times que participaram, um ID(numérico), a duração da partida, 5 personagens(heróis) de cada time e também os scores dos dois times(eliminações totais de heróis, gold adquirido de cada time).
Um personagem deve conter o nome do mesmo, seu level, sua função no jogo, número de eliminações, número de mortes, número de assistências, quantidades de creeps(unidades) eliminadas e creeps negadas, e a partir desses dados deve se calcular o valor estimado de gold desse personagem no fim da partida e seu gold por minuto(também se deve armazenar esse valor).
OBS: O valor médio adquirido ao se eliminar um creep é de 45 gold, caso se elimine um herói o gold adquirido será de aproximadamente 250 gold, desconsidere a perda de gold.
Sua parte no desenvolvimento desse programa é criar as classes necessárias para o desenvolvimento da questão, criando uma classe main onde essas classes possam ser testadas ou seja, onde se possa cadastrar uma partida e visualizar todos os dados da mesma.
Exemplo:
Olá cadastre sua partida:Digite o ID desta partida:144551//entradaQual foi a duração deste jogo?//inserir apenas o número45//entradaInforme o nome de um dos times:PinhoTeam//entradaCadastre os personagens membros deste time:Personagem 1 : qual o nome deste personagem?void//entradaQual a função deste personagem?carry//entradaQual level ele alcançou ao fim do jogo?23//entradainforme quantos inimigos(herois) ele abateu15//entradaQuantas vezes ele foi tirado de combate(morto)?5//entradaQuantas vezes ele contribui em eliminações(Assistências)?20//entradaQuantas unidades inimigas ele eliminou(creeps)?250//entradaQuantas unidades aliadas ele negou(creeps negadas)?50//entradaPersonagem 2 : qual o nome deste personagem?//repetir processo de cadastro até se complete os 5 membros do time...--PinhoTeam cadastrado com sucesso--//mensagem do sistemaInforme o nome do outro time:PinhoEnemies//entrada//repita o processo de cadastro da mesma maneira que ocorreu com o primeiro time....--PinhoEnemies cadastrado com sucesso--//mensagem do sistemaPinhoTeam x PinhoEnemies - xxx ID duração: minutos PinhoTeam - xx eliminações- xx.xxx gold -membros- --- Void -Carry - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Chen - Suporte - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Pudge - Ganker - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- DarkSeer - Offlaner- level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Mirana - Semi -Carry - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx PinhoEnemis - xx eliminações- xx.xxx gold -membros- --- Spectre - Carry - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Lion - Suporte - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Queen of Pain - Ganker - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Clock - Offlaner- level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxx --- Tuskar - Semi -Carry - level xx - eliminações xx - mortes xx - assistências xx - eliminações creeps xx - creeps negadas xx- gold total xxxxx - gold por minuto xxxPinho era um menino muito atrevido que resolveu se aventurar nas floresta de Peruño Annos. Infelizmente ele não imaginava os perigos que essa floresta escondia!! Após ser capturado pela bruxa Daniela, Pinho foi escravizado e
forçado a trabalhar cuidando dos monstros que Daniela capturava.
Pinho que alem de atrevido era desorganizado está precisando da sua ajuda, pois ele não está conseguindo catalogar todos os monstros no tempo certo e se ele continuar assim a bruxa vai mandar-lo para os "cuidados" de Eduardo, o lenhador. Eduardo gosta muito de lutas e por isso a bruxa Daniela patrocina um evento de UFC com seus monstros para ver Eduardo ficar feliz e tentar ganhar sua atenção.
Crie a classe monstro com: nome, idade, peso, especie, HP, MP, força e inteligencia.
Crie o main com as opções:
1 - Adicionar monstro //adiciona um novo monstro2 - Procurar monstro //retorna todas as informações (nome, idade, peso...)3 - Listar monstros //lista todos os monstros cadastrados no sistema até o momento
4 - Modificar monstro //modifica um monstro existente5 - Remover monstro //remove um monstro existente
6 - Promover luta //promove uma luta7 - Sair //encerra o programaObservações:
No modo de promover luta o usuário deve escolher 2 monstros registrados para que eles lutem entre si. (o usuário vai procurar o monstro pelo nome)
A luta é organizada em turnos, ou seja, só se executa uma ação por vez:
Ações:
Descrições:
Sobre a luta:
Estudando Matemática Discreta Dave aprendeu que pelo pequeno teorema de Fermat a^(p-1) == 1 (mod p) se p é primo e a e p são coprimos.
Dave é esperto e ele sabe que se: a == b (mod p) então a*x == b*x (mod p). Com esse conhecimento, Dave percebeu que ele poderia calcular o inverso modular de a mod p, sendo p primo e a e p coprimos, usando o pequeno teorema de Fermat.
a^(p-1) == 1 (mod p)
a^(p-1) * a^-1 == a^-1 (mod p)
a^(p-2) == a^-1 (mod p)
Ou seja, o inverso modular de a mod p é apenas a^(p-2) mod p sendo p um número primo e a e b coprimos.
O usuário deve dar entrada em 2 números separados por uma virgula, o primeiro sendo o A e o segundo sendo o P.
O programa só encerra quando o usuário digita sair.
Para cada caso:
Dica: Utilize o fato que (a*b)%m é igual a ((a%m)*(b%m))%m. a%b é o resto de a divido por b.
Exemplo
7, 100 //entrada do usuarioMuito difícil //saida do sistema19, 101 //entrada do usuario16 //saida do sistema1000, 29 //entrada do usuario23 //saida do sistema9, 3 //entrada do usuarioMuito difícil //saida do sistemaSair //entrada do usuario //encerra programa