Exercícios de Módulo Random - Lista de Exercícios Resolvida
Questão 1
Escreva um programa que implemente o jogo conhecido como pedra, papel, tesoura. Neste jogo, o usuário e o computador escolhem entre pedra, papel ou tesoura. Sabendo que pedra ganha de tesoura, papel ganha de pedra e tesoura ganha de papel, exiba na tela o ganhador: usuário ou computador. Para esta implementação, assuma que o número 0 representa pedra, 1 representa papel e 2 representa tesoura. O programa deve pedir para o usuário entrar com sua escolha, gerar aleatoriamente a escolha do computador, exibir a escolha e indicar o vencedor
Ver solução completaQuestão 2
Escreva um programa que pergunte nomes de alunos de uma sala de aula. O número de alunos é desconhecido, por isso o programa deve perguntar até que seja digitada a palavra “fim”. Depois, o programa deve sortear um aluno para apresentar o trabalho primeiro.
Exemplo:
Digite um nome: Yann
Digite um nome: Camilinha
Digite um nome: Richardneydson
Digite um nome: Claudiane
Digite um nome: fim
O primeiro aluno a apresentar será: Claudiane.
Ver solução completaQuestão 3
Elabore uma função, denominada geraExibe, para gerar e exibir uma lista contendo 30 sublistas, cada uma indicando o número do usuário, pertencente ao intervalo [0 a 100], e a sua senha (formada por duas letras maiúsculas, seguidas por 2 dígitos, seguidos por dois caracteres pertencente a uma lista denominada especiais. A lista especiais contém os caracteres: (‘!’, ‘@’, ‘#’, ‘$’, ‘%’). Tanto os números dos usuários quanto suas senhas devem ser gerados aleatoriamente. A função deve receber como parâmetro uma lista vazia e exibir a lista gerada.
Em seguida, elabore a função busca, que recebe como parâmetros a lista gerada e um número de usuário, e retorna em que posição da lista a primeira sublista relacionada ao usuário se encontra. Caso o usuário não pertença à lista a função deve retornar -1. Você deve, ainda, completar seu programa com as chamadas às funções. Chame a função geraExibe, verifique a lista gerada e teste a função busca, solicitando que seja informado, via teclado, um número de usuário.
Obs: Na geração de caracteres aleatórios use a função choice() do módulo random.
Ver solução completaQuestão 4
Mapas são matrizes quadradas compostas por bombas ("B") e tesouros ("T"). Implemente um programa que receba como entrada a dimensão dessa matriz quadrada e gere 3 mapas aleatórios e diferentes compostos por bombas e tesouros. A quantidade de tesouros existentes será a metade da dimensão. Um mapa é diferente do outro quando não possuem nenhum tesouro na mesma posição. Segue abaixo um exemplo:
Entrada: Entre com a dimensão do mapa: 4
Saída:
Ver solução completaQuestão 5
Implemente o jogo "A Máquina Adivinha". Neste jogo, o usuário entra com uma palavra e a máquina tenta descobrir a palavra escolhendo letra por letra. A quantidade máxima de letras que a máquina pode escolher pra tentar formar a palavra é o dobro do tamanho da palavra. O programa não memoriza as jogadas anteriores. Caso a máquina forme a palavra, ela ganha o jogo, caso contrário, o usuário é o vencedor!
Exemplo 1:
Entrada: dez
Saída:
Letra a? ["_","_","_"]
Letra d? ["d","_","_"]
Letra b? ["d","_","_"]
Letra a? ["d","_","_"]
Letra e? ["d","e","_"]
Letra z? ["d","e","z"]
Eu ganhei!
Exemplo 2:
Entrada: flu
Saída:
Letra x? ["_","_","_"]
Letra y? ["_","_","_"]
Letra b? ["_","_","_"]
Letra u? ["_","_","u"]
Letra q? ["_","_","u"]
Letra z? ["_","_","u"]
Você ganhou!
Ver solução completaQuestão 6
Luiz e Fernando decidem jogar par ou ímpar. Luiz escolheu par e Fernando escolheu ímpar. Ao
término de 11 jogadas aquele que ganhar mais será o vencedor do jogo.
Vamos simular o jogo de Luiz e Fernando gerando, em cada jogada, dois números inteiros aleatórios (n1 e n2) pertencentes ao intervalo [0 a 10]. Assim, se a soma (n1+n2) dos valores obtido por cada jogador, em uma jogada, for par, Luiz ganha a jogada, se for ímpar, Fernando ganha a jogada. Faça um programa que simule o jogo, exibindo, em cada uma das 11 jogadas, o número gerado para cada jogador e quem ganhou a jogada. Ao final das 11 jogadas o programa deve exibir quem ganhou o jogo, além do número de jogadas em que ele foi o vencedor.
Obs: Na geração de números inteiros aleatórios use a função randint( ) do módulo random.
Ver solução completaQuestão 7
Escreva um programa que receba o nome de uma sequência de times de futebol e exiba uma as partidas de um torneio com os times, de forma que:
- As partidas devem ser geradas de forma aleatória.
- O número de times digitados deve ser par.
- O programa deve pedir nomes até que seja digitado “fim”
Exemplo:
Entrada:
Digite um time: Flamengo
Digite um time: Vasco
Digite um time: Fluminense
Digite um time: Botafogo
Digite um time: Bangu 2
Digite um time: Barcelona
Digite um time: fim
Barcelona x Botafogo
Saída:
Fluminense x Vasco
Bangu 2 x Flamengo
Ver solução completaQuestão 8
O computador “escolhe” (gera aleatoriamente) um número entre 1 e 1024, e o usuário tenta adivinhar o número escolhido. Para cada tentativa do usuário, o programa deve exibir na tela:
- o número -1, se o número gerado for menor do que o número fornecido pelo usuário;
- o número 1, se o número gerado for maior do que o número fornecido pelo usuário;
- o número 0, se o número gerado for igual ao fornecido pelo usuário. Neste caso, o programa deve exibir o número de tentativas usadas pelo usuário para acertar a escolha do computador e finalizar a execução.
O usuário tem direito a um máximo de 20 tentativas. Quando se esgotarem, o programa deve imprimir “acabaram suas tentativas” e terminar.
Implemente e teste este jogo. Para implementar as repetidas tentativas, use recursão.
Ver solução completa