Recomendações Importantes
Questão 1 - Minha cobra, minha vida
Estava eu, pobre peregrino, vagando por estre as matas de Camarajibe. Após
horas sem ver alguém, e já me sentindo só, revolvi me alimentar de um congumelo
que estava ao "pé" de uma grande árvore. Foi então que um caboclo apareceu em
meu caminho. Perguntando o que eu procurava,
respondi:
- Vim em busca de dobrar meu ego, caboclo.Soube que por aqui isso é possível...
- Para isso deves salvar a minha cobra, jovem transeunte... Ela passa fome, e você deve guiá-la ao alimento...
Assim ele me disse o que devia fazer para conseguir o que buscava.
Não faço ideia da dificuldade desse desafio, então resolvi pedir sua ajuda, exímio programador...
Você deve criar um jogo para que eu possa treinar o suficiente até ir conseguir guiar, de verdade, uma cobra em busca de alimento.
(Sim, é o clássico "jogo da cobrinha" - Snake).
Crie um jogo com dois modos de dificuldades: Fácil e Difícil.
Você deve entrar com um valo X, que será o tamanho da área do jogo (Altura: X; Largura: X)
No modo fácil apenas é exibido o campo e um "alimento" por vez.
No modo difícil é colocado x "muros" na área do jogo, de forma que sempre tenha um caminho até o alimento (se tocar neles, perde).
ATENÇÃO: Uso o caractere M para o muro, o caractere A para o alimento, o caractere - para a área do jogo, um conjunto de * para o corpo da cobra.
Mara se mover use W (para cima), S (para baixo), A (esquerda) e D (direita).
Questão 2 - Politicagi
Um indivíduo quer calcular a popularidade de certas pessoas, apartir do seu conhecimento sobre elas e ele precisa da sua ajuda para isso.
faça um programa que cumpra as seguintes exigências:
-cada pessoa tem exatamente 4 características(uma String nome, uma Pessoa pai, uma Pessoa filho e um double popularidadeParcial)
-uma pessoa possui exatamente um pai e exatamente um filho
-popularidade parcial é considerada a popularidade individual da pessoa, já a popularidade total(citada mais abaixo) é a popularidade da pessoa mais
a de todos os seus descendentes.
-a única exceção para a segunda regra é para a primeira pessoa criada, já que ela é Primeiro. ela não possue pai(valor nulo), mas apartir do filho(que é
inicialmente nulo), tudo é decidido pelo usuário.
-a única exceção para a terceira regra é a popularidade de Primeiro. ela tem uma popularidade parcial pré definida de 10.000.000.000
- o programa tem as seguintes funcionalidades:
-adicionar um filho(que é uma pessoa) na ultima pessoa adicionada(que está com filho como nulo), dando um nome e uma propriedade para ele.
-dizer qual a popularidade parcial de uma pessoa pelo nome da pessoa
-dizer qual a popularidade total de uma pessoa pelo nome da pessoa
-a cada pessoa adicionada no programa, a popularidade parcial de Primeiro cai em um.
exemplo:
1. adicionar pessoa
2. mostrar popularidade parcial de alguem
3. mostrar popularidade total de alguem
//entrada
1
diga o nome
//entrada
fulano
diga a popularidade
//entrada
10
adicionado
1. adicionar pessoa
2. mostrar popularidade parcial de alguem
3. mostrar popularidade total de alguem
//entrada
2
diga o nome da pessoa
//entrada
fulano
a popularidade parcial de fulano é 10
1. adicionar pessoa
2. mostrar popularidade parcial de alguem
3. mostrar popularidade total de alguem
//entrada
3
diga o nome
//entrada
Primeiro
a popularidade total de Primeiro é 10.000.000.009
Questão 3 - Fatlascou
fatlascou é parecido com o fatorial... a diferença é que, no lugar de ser fatorial(n)=n*fatorial(n-1)(para todo n sendo inteiro positivo), o calculo é feito da seguinte forma:
fatlascou(n)= (n+ )*fatlascou(n-1)
(para todo n sendo inteiro positivo)
exemplos:
digite um numero para calcular o seu fatlascou
ex:
//entrada
3
O fatlascou de 3 é 90
//entrada
50
O fatlascou de 50 é 19246337653651600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Obs: n >0 e n < 105
Questão 4 - Blozz Cards
A Blozzard, editora e produtora de jogos de computador e de videojogos americana renomada, após experiências positivas com programadores do CIn, decidiu procurar o Centro mais uma vez em busca de ajuda. A empresa idealizou um jogo de cartas colecionáveis, BlozzCards, que possivelmente fará muito sucesso. Seu papel será a implementação de um programa para organizar melhor a coleção do usuário, mantendo nota de todas as cartas que possui. Além disso, o programa também deve ser capaz de organizar decks.
No jogo, um deck possui 20 cartas. Cada carta, no entanto, deve ser acompanhada de exatamente uma cópia, totalizando 10 cartas distintas. São três tipos básicos de cartas: criaturas, magias e equipamentos. Além disso, as criaturas podem ser do tipo comum ou especial, e as magias podem ser de ataque ou de efeito.
Toda carta possui ID X, nome N, custo C e descrição D. Criaturas e equipamentos possuem, além disso, ataque A e vida V. Criaturas especiais possuem também habilidade H. Magias de ataque possuem ataque A. Decks são ID K e possuem um nome N.
Comandos:
Obs: Inicialmente, são possíveis 10 cartas e 9 decks, mas sempre que o limite for excedido, a capacidade é dobrada.
Você pode assumir que a entrada estará no formato correto, com o número correto de entradas, sendo inteiro quando deve ser inteiro e String quando deve ser String, sem vírgulas no nome ou na descrição.
Restrições:
Vida de criatura > 0
Ataque de criatura >= 0
Bem vindo ao BlozzCard Collection Manager!
adde 1, Battle Axe, 20, Descrição, 200, -100 // Entrada do usuário
Carta adicionada com sucesso!
addcc 2, Gruntasd, 1, "Descrição", 0, 1 // Entrada do usuário
Carta adicionada com sucesso!
addce 3, Chieftain, 8000, "Descrição", 8001, 8002, "hue" // Entrada do usuário
Carta adicionada com sucesso!
addma 4, Shock Bolt, 8, "Descrição", 50 // Entrada do usuário
Carta adicionada com sucesso!
addme 5, Draw Cards, 5, "Descrição // Entrada do usuário
Carta adicionada com sucesso!
addme 6, TestCard, 10, Descrição // Entrada do usuário
Carta adicionada com sucesso!
dispc 6 // Entrada do usuário
ID: 6
Nome: TestCard
Custo: 10
Descrição: Descrição
dispallc // Entrada do usuário
Coleção:
-Criaturas:
Gruntasd [Custo=1] [ID=2]
Chieftain [Custo=8000] [ID=3]
-Equipamentos:
Battle Axe [Custo=20] [ID=1]
-Magias:
Draw Cards [Custo=5] [ID=5]
Shock Bolt [Custo=8] [ID=4]
TestCard [Custo=10] [ID=6]
rem 6 // Entrada do usuário
Carta removida com sucesso!
dispallc // Entrada do usuário
Coleção:
-Criaturas:
Gruntasd [Custo=1] [ID=2]
Chieftain [Custo=8000] [ID=3]
-Equipamentos:
Battle Axe [Custo=20] [ID=1]
-Magias:
Draw Cards [Custo=5] [ID=5]
Shock Bolt [Custo=8] [ID=4]
create 1, Agro Deck // Entrada do usuário
Deck adicionado com sucesso!
rename 1, Noob Deck // Entrada do usuário
Nome alterado com sucesso!
addd 1,1 // Entrada do usuário
Carta adicionada ao deck com sucesso!
addd 1,2 // Entrada do usuário
Carta adicionada ao deck com sucesso!
addd 1,3 // Entrada do usuário
Carta adicionada ao deck com sucesso!
addd 1,4 // Entrada do usuário
Carta adicionada ao deck com sucesso!
addd 1,5 // Entrada do usuário
Carta adicionada ao deck com sucesso!
dispd 1 // Entrada do usuário
Noob Deck
-Criaturas:
Gruntasd [Custo=1]
Chieftain [Custo=8000]
-Equipamentos:
Battle Axe [Custo=20]
-Magias:
Draw Cards [Custo=5]
Shock Bolt [Custo=8]
dispalld // Entrada do usuário
Decks:
Noob Deck [ID=1]
del 1 // Entrada do usuário
Deck removido com sucesso!
dispalld // Entrada do usuário
Nenhum deck na coleção.
clearall // Entrada do usuário
Programa resetado com sucesso!
dispallc // Entrada do usuário
Nenhuma carta na coleção
stop // Entrada do usuário
Fim de programa!
Questão 5 - Munchkin
Bem vindo ao mundo louco de Munchkin. Aqui, enfrentar bicho com nome estranho com armas desconhecidas ou receber maldições assustadoramente esquisitas é algo normal.
Nessa aventura, um herói desbrava uma masmorra, abrindo suas portas para enfrentar desafios. Esse é um clássico jogo do mundo dos cardgames e o seu criador Steve Jackson pede para você, mais novo programador do CIn, usar sua experiência em computação pra criar um jogo que se baseia nesse cardgame.
Essa jornada se inicia com um PERSONAGEM com as seguintes características:
O PERSONAGEM tem uma valor de FORÇA que será útil nas batalhas e essa tem a seguinte formula para ser calculada:
FORÇA = nível do personagem + força dos equipamentos + habilidades da classe
Obs:
O jogo é dividido em rodadas que será dividida na seguinte ordem:
O jogo só termina quando o PERSONAGEM atingir o Nível 10 ou ele morrer.
Obs:
Os MONSTROS tem as seguintes caracteristicas:
Os MONSTROS também possuem Habilidades e uma Coisa Ruim.
Os MONSTROS que existem nessa masmorra são os seguintes:
Obs:
As MALDIÇÕES tem os seguintes efeitos:
Obs:
Os Tesouros obtidos depois de se vencer um combate com o monstro podem ser um título de uma CLASSE, a modificação para uma nova RAÇA ou EQUIPAMENTOS para o personagem com a probabilidade de 20%, 20% e 60% respectivamente.
As possíveis RAÇAS que o personagem pode ser são as seguintes:
Anão
Elfo
Halfling
As possíveis CLASSES com suas respectiva habilidades que o personagem pode ser são as seguintes:
Clérigo
Mago
Guerreira
Obs:
Os EQUIPAMENTOS encontrados como tesouro tem as seguintes características:
Os Equipamentos disponíveis no jogo são:
Exemplo de Jogo
//Saída do programa - Menu de Inicio de Rodada
Nome Personagem: Calouro
Nível 1
O que deseja fazer?
//Entrada do jogador
1
//Saída do programa - Menu batalha
Você acaba de encontrar um Vaso de Planta, Nível 1
Sua força é igual 2.
Parabéns você conseguiu vencer o Vaso de Plantas.
Você conquistou 1 Tesouro e 1 Nível.
Você esta no Nível 2 agora.
O Tesouro foi: Armadura de Couro
Nome Personagem: Calouro
Nível 2
O que deseja fazer?
//Entrada do jogador
3
// Saída do programa
Mochila
O que deseja fazer?
//Entrada do jogador
1
//Saída do programa
Escolha o equipamento
//Entrada do jogador
1
--Voltando para o Menu de Início de Rodada
Nome Personagem: Calouro
Nível 2
O que deseja fazer?
//Entrada do jogador
1
//Saída do programa
MALDIÇÃO - Perca sua armadura
Nome Personagem: Calouro
Nível 2
O que deseja fazer?
//Entrada jogador
1
//Saída do programa
Você acaba de encontrar um Nerd Histérico, Nível 5
Sua força é de 3
Você vai ter que fugir.
Eita, você não conseguiu fugir, enfrente a Coisa Ruim do Nerd Histérico.
Você voltou a ser Humano e não tem mais Classe
Questão 6 - M4TR1X - DESAFIO
Em matemática, uma matriz m x n é conjunto retangular de números, símbolos ou expressões, organizados em m linhas e n colunas. Cada um dos itens de uma matriz é chamado de elemento. As matrizes também são muito utilizadas para a resolução de sistemas de equações lineares e transformações lineares.
José, aluno bastante curioso que começou a estudar matrizes agora, e fez dois jogos para se entreter. No primeiro, ele escolhia uma matriz aleatória e um inteiro aleatório. Ele tentava descobrir, então, se era possível formar esse inteiro com os elementos da matriz. No segundo, ele pegava a mesma matriz, e calculava a menor soma de um canto a outro da matriz, variando apenas a linha ou apenas a coluna em cada movimento.
Dados dois inteiros, L e C, uma matriz LxC de inteiros e um inteiro N, retorne:
Na primeira linha se é possível formar N como a soma de elementos da matriz, sem utilizar o mesmo elemento duas vezes.
Na segunda linha, o menor caminho do canto superior esquerdo ao canto inferior direito. (O caminho com a menor soma, movimentando-se para cima, baixo, esquerda ou direita, sem se movimentar para fora da matriz).
O programa termina com as entradas L = 0 e C = 0.
Limites da matriz M:
L*C <= 25
0 < L,C
-10^6 <= M(i,j) <= 10^6
2 3 // Entrada do usuário
1 2 3 // Entrada do usuário
4 5 6 // Entrada do usuário
10 // Entrada do usuário
Sim // Saída
12 // Saída
4 4 // Entrada do usuário
5 5 5 5 // Entrada do usuário
10 10 10 10 // Entrada do usuário
15 15 15 15 // Entrada do usuário
20 20 20 20 // Entrada do usuário
11 // Entrada do usuário
Não // Saída
65 // Saída
0 0 // Entrada do usuário (Fim de programa)