• Nenhum resultado encontrado

Na estrutura acima, você colocará todos os vídeos existentes na rede IpTube no vetor de vídeo e todas as tags no vetor de tag.

N/A
N/A
Protected

Academic year: 2021

Share "Na estrutura acima, você colocará todos os vídeos existentes na rede IpTube no vetor de vídeo e todas as tags no vetor de tag."

Copied!
8
0
0

Texto

(1)

Universidade Federal de Pernambuco Centro de Informática Lista 5 – Introdução a Programação Prof: Adriano Sarmento        Data: 09/01/14       Data de entrega: 21/01/14 Considerações: ● Leia a lista toda, o quanto antes, para evitar más interpretações e muitas dúvidas em cima da hora; ● Envie uma prévia da lista, pelo menos um dia antes da data final da entrega, para o caso de acontecer algum imprevisto; A lista é para ser feita individualmente. Qualquer tentativa de cópia acarretará o zeramento da lista de todos os envolvidos; ● Não é permitido o uso da biblioteca conio.h. ● Em caso de dúvida, envie email para duvidasip@googlegroups.com. ● Nos exemplos, as entradas estão em azul e as saídas em vermelho. ● Serão cobradas devidas verificações de entrada nos programas.

● É obrigatório o uso de estruturas (Structs) na resolução de todas as questões desta lista. A não utilização acarretará o zeramento da questão.

(2)

Você deve fazer uma rede de vídeos, a mais nova concorrente do Youtube, o IpTube. Dada a estrutura abaixo, você deve montar uma estrutura para os vídeos e uma estrutura para as tags. A estrutura Video contem o nome do vídeo, o nome de quem o upou, o seu tempo(em segundos) e a quantidade de visualizações que ele possui(começando de zero). A estrutura Tag contém o nome da tag, o numero de vídeos que possuem aquela tag e um array de vídeos que possuem aquela tag. typedef struct tube { Video* video; Tag* tag; int qtd_videos; int qtd_tags; }Tube; Na estrutura acima, você colocará todos os vídeos existentes na rede IpTube no vetor de vídeo e todas as tags no vetor de tag. Deve haver quatro opções no menu do IpTube, são elas: 'Upar Video', 'Procurar video', 'Mostrar Videos Recomendados' e 'Sair'. ●  Upar Vídeo: Esta opção é bem simples, você deve pedir ao usuário um nome para o vídeo, o nome de quem esta dando upload nele e seu tempo. Você também deve pedir as tags para este vídeo. Caso nenhuma tag seja colocada, automaticamente serão criadas tags com as palavras do nome do vídeo. ●  Procurar Vídeo: Nessa opção, você deve pedir ao usuário para digitar uma ou mais palavras­chave para serem procuradas.  O programa deverá checar quais destas palavras são tags, e mostrar em forma de menu os vídeos correspondentes a estas tags. Quando os vídeos encontrados forem mostrados, o usuário poderá visualizar algum, ou voltar ao menu principal. Se optar por visualizar, o programa deverá mostrar o nome do vídeo, o nome de quem upou, seu tempo (no formato xxminxxseg), a mensagem “Video Visualizado” e voltar ao menu principal. ●  Mostrar Vídeos Recomendados: Nesta opção, o programa deverá recomendar ao usuário alguns vídeos (0­5 vídeos), sendo estes os vídeos mais visualizados.

(3)

● Sair:

Ao selecionar esta opção, o programa será fechado.

Obs: Lembre­se de aumentar a qtd de visualizações de um vídeo após ser visualizado. Obs: Em caso de mesmo numero de visualizações, fica a seu critério qual deverá ser o vídeo recomendado.

(4)

 Dominó é o jogo formado por peças retangulares, dotadas normalmente de uma espessura que lhes dá a forma de paralelepípedo, em que uma das faces está marcada por pontos indicando valores numéricos. O jogo aparentemente surgiu na China e sua criação é atribuída a um santo soldado chinês chamado Hung Ming, que viveu de 243 a.C a 182 a.C. O conjunto tradicional de dominós, conhecido como sino­europeu, é formado por 28 peças, ou pedras. Cada face retangular de dominó é divida em duas partes quadradas, ou "pontas", que são marcadas por um número de pontos de 0 a 6, ou deixadas em branco. Um jogo de dominós é equivalente a um baralho de cartas ou jogo de dados, que podem ser jogados em uma diversidade indeterminada de maneiras. [fonte: Wikipedia] Faça um programa em C que simule uma partida de dominó. O jogo deve ser jogado entre dois usuários. Cada usuário possui um vetor de ponteiros com 4 posições para um tipo estruturado dominó, que possui dois inteiros que representam os seus números. O jogador que obtiver maior número de pontos somando cada número das peças que ele possui, deverá iniciar o jogo. Caso o jogador da vez não tenha uma peça apta para jogar, ele simplesmente passa a vez. A distribuição das peças entre os dois jogadores deve ser ALEATÓRIA. Mostre sempre na tela o número da rodada, as peças do jogador da vez e que valores ele pode jogar. Cuidado com o “gato­por­lebre” (quando um jogador joga uma peça indevida). OBS: não pode existir peças repetidas. OBS 2: caso nenhum jogador possa jogar, vencerá quem tiver um somatório de pontos menor. Caso sejá igual, é considerado um empate.

(5)

3) IPokémon Vendo o Sucesso que os jogos de pokémon fazem (e também pensando no dinheiro que vem com este sucesso) os monitores de IP resolveram criar um jogo baseado em pokémon. Contudo, já que eles não tinham tempo por causa da carga horária dos seus, respectivos, períodos, eles resolveram passar essa missão na forma de uma lista para vocês, Calouros de EC. (PS: o dinheiro obtido continha ficando com os monitores) Seu objetivo é simular uma batalha entre dois pokemons. O jogador vai colocar, para cada pokemon, os dados do pokemon e de seus movimentos. Depois da entrada ser lida, o jogo inicia, sendo em turnos até que um dos monstros “desmaie” (HP chegue em zero). Cada Pokémon possui um nome, pontos de vida (HP), um ataque (Atk) e defesa (Def) e um Tipo. Ele também sabe até 4 técnicas, que possuem uma quantidade de vezes que pode ser utilizado (PP) e também um tipo e uma força (Power). A formula de dano é: Dano = multiplicador x ((Power x Atk) / Def ) Onde: ● Atk é o ataque base de quem executa o golpe ● Def é a defesa base de quem recebe o golpe. ● O multiplicador depende do tipo do golpe e do pokémon que recebe o golpe. e é definido pela tabela abaixo:

Atk  \  Def Normal Fogo Água Grama

Normal

1

1

1

1

Fogo

1

½

½

2

Água

1

2

½

½

Grama

1

½

2

½

Formato de entrada: para Pokémon: para Tecnica (Ataque): Nome HP Atk Def num_movimentos Tipo Nome PP Power Tipo Em “Tipo” terá um caractere entre N,F,A,G (Normal, Fogo, Água e Grama, respectivamente)

(6)

● Se o PP de todas as técnicas chegar em zero. o pokémon perde a vez. caso contrário, ele é obrigado a fazer um movimento que ainda tenha PP. ● Toda vez que um movimento é usado. o seu PP é decrementado. ● Se nenhum pokémon desmaiou e ambos ficaram sem PP, então a partida é considerada um empate. ● Deve ser informado o nome e HP de ambos os pokémons, além da lista com os nomes dos movimentos do pokémon atual e o PP de cada um deles.

(7)

4) UNO Rebeca, Moisés e Artur são estudantes do CIn que gostam de jogar UNO, um popular jogo de cartas. Eles já pediram a ajuda dos estudantes de IP 2012.2, só que naquele tempo os programas ficaram insatisfatórios pois os alunos não poderiam usar Structs. Artur agora que é monitor quer um programa mais fiel ao jogo de cartas, por isso, ele pediu ajuda a vocês estudantes de IP de 2013.2, senão ele irá se atrasar para a sua querida aula de PLC. Moisés e Rebeca estão ocupados estudando Sinais e Sistemas e não poderão ajudar seu amigo Artur. O seu programa deverá conter as seguintes características: ● O número de jogadores é fixo (4 jogadores) ● Os jogadores começam com 7 cartas. ● Deverão haver 4 estruturas principais : Carta, Jogador e Deck ○ A estrutura Carta deverá ter os campos Numero(inteiro), Categoria(char) e Tipo(Enum). ○ A estrutura Jogador deverá ter um vetor dinâmico de ponteiros para Carta, e o número de cartas. ○ A estrutura Deck deverá ter um vetor dinâmico de ponteiros para Carta, e o número de cartas. ○ Uma estrutura Enum para os Tipos de carta ● Poderão existir mais atributos nas structs ou structs adicionais caso necessário, isso estará a critério do aluno. ● Deverá existir duas variáveis do tipo Deck, uma para o Deck mesmo, e outra para a Pilha de Descarte, para onde vão as cartas jogadas pelos jogadores. ● A estrutura Deck deverá ser inicializada com a quantidade de cartas: ○ 19 cartas A ­ de 0 a 9; (todas as cartas são duplicadas menos a carta 0) ○ 19 cartas B ­ de 0 a 9; ○ 19 cartas C ­ de 0 a 9; ○ 19 cartas D ­ de 0 a 9; ○  8 cartas +2 ­ duas de cada cor; ○  8 cartas “Bloquear” ­ duas de cada cor; ○  8 cartas “Inverter” ­ duas de cada cor; ○  4 cartas “Coringa (Muda de cor)”; ○  4 cartas +4 ● O Deck deverá ser inicializado no começo do programa e depois embaralhado ○ Você pode fazer uma função de embaralhar,  dando swap nas cartas por um número

(8)

● Todos os vetores (Deck, Pilha de Descarte e Mãos dos jogadores) devem ter o mínimo tamanho possível (quando o jogador pega/descarta uma carta) ● Quando as cartas do deck acabarem, a pilha de descarte deve ser passada para o Deck e então deve ser embaralhado. ● As cartas dos Decks podem ser inseridas ou retiradas no começo ou no final, mas somente um dos dois, para que sigam uma ordem. ○ Sugestão : Insira/Retire do final. ● O jogador que receber +2 ou +4 não joga, passando a vez. ● As cartas têm 3 informações, uma delas é a categoria (A,B,C,D) e a outra é o seu número (0~9) ou tipo (+2, +4, Bloquear, Inverter, Coringa). ● Após usar +4 e Coringa, o jogador escolhe a cor que será necessária para a próxima carta. ○ Essas cartas podem ser jogadas a qualquer momento, independente da carta que está no topo do Descarte. ● Para poder jogar uma carta, a carta da mesa deverá ter uma das informações igual a da carta que o jogador pretende jogar.  Exemplo: Carta da mesa : 9A Só se pode jogar cartas 9 ou cartas da categoria A. ● Se o jogador não tiver nenhuma carta para jogar, ele deve receber uma carta,e se esta carta puder ser jogada, isto acontece, caso contrário, o jogador passa a vez sem jogar nada. ● Ganha o jogo aquele jogador que descartar todas as suas cartas.

Referências

Documentos relacionados

Podemos realçar algumas justificativas para a aplicabilidade do empreendedorismo à gestão escolar, tais como: as exigências das esferas públicas, bem como de toda a

Com a mudança de gestão da SRE Ubá em 2015, o presidente do CME de 2012 e também Analista Educacional foi nomeado Diretor Educacional da SRE Ubá e o projeto começou a ganhar

The convex sets separation is very important in convex programming, a very powerful mathematical tool for, see [ ], operations research, management

Percebo que um objetivo esteve sempre presente desde o princípio, sendo notadamente insistente em muitos momentos do desenvolvimento do trabalho, destacável não só porque faz parte

O modelo matemático que representa o comportamento físico do VSA é composto por equações diferenciais ordinárias cujos principais coeficientes representam parâmetros

Para estudar as obras de José de Albuquerque e saber como e quais foram as influências na construção de seu discurso sobre a necessidade da educação sexual, vimos necessário

Com base na investigação prévia do TC em homens com sobrepeso na meia- idade (LIBARDI et al., 2011) e outras que utilizaram o treinamento aeróbio ou de força de moderada

elas expressam por excelência o espaço do sujeito na sua relação com alteridade, lutando para interpretar, entender e construir o mundo (JOVCHELOVITCH, 2002, p.82). Nesse processo