Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

AMPLI
ENGENHARIA CIVIL EAD
Aluno: Luiz Guilherme Valério
Algoritmos e Lógica de Programação
Unidade: 3 – Conceitos de programação
Aula: 3 – Estruturas Condicionais em Linguagem C
Maringá/PR
2024
LUIZ GUILHERME VALÉRIO
MATRÍCULA - 2024016287
Algoritmos e Lógica de Programação
Unidade: 3 – Conceitos de programação
Aula: 3 – Estruturas Condicionais em Linguagem C
Maringá/PR
2024
1. Codificação Completa do Exercício:
Segue arquivo baixado realizado dentro do Portugol Webstudio: 
Além disso, segue descrição completa:
programa {
 // Biblioteca útil para utilização do timer para execução do código
 inclua biblioteca Util --> u
 funcao inicio() {
 inteiro labirinto[5][5]
 inteiro posX = 0
 inteiro posY = 0
 inteiro numA = 0
 inteiro numB = 0
 inteiro numC = 0
 inteiro numD = 0
 // LEGENDA:
 // número 0 = caminho livre
 // número 1 = parede
 // número 2 = tesouro
 // número 3 = armadilha
 // ENDEREÇOS DA MATRIZ
 labirinto[0][0] = 0
 labirinto[0][1] = 1
 labirinto[0][2] = 1
 labirinto[0][3] = 1
 labirinto[0][4] = 1
 labirinto[1][0] = 1
 labirinto[1][1] = 0
 labirinto[1][2] = 0
 labirinto[1][3] = 0
 labirinto[1][4] = 1
 labirinto[2][0] = 1
 labirinto[2][1] = 3
 labirinto[2][2] = 0
 labirinto[2][3] = 0
 labirinto[2][4] = 1
 labirinto[3][0] = 1
 labirinto[3][1] = 0
 labirinto[3][2] = 0
 labirinto[3][3] = 0
 labirinto[3][4] = 1
 labirinto[4][0] = 1
 labirinto[4][1] = 1
 labirinto[4][2] = 1
 labirinto[4][3] = 1
 labirinto[4][4] = 2
 escreva("DESCRIÇÃO DO JOGO \n \n")
 escreva("Suponha que você está em uma missão para encontrar um tesouro escondido no meio de um labirinto muito perigoso. \n")
 escreva("O labirinto é composto por uma séries de corredores estreitos, bifurcações e salas ocultas. \n")
 escreva("Sua missão é encontrar o caminho para o tesouro, evitando armadilhas e obstáculos ao longo do caminho.")
 escreva("DESCRIÇÃO DO LABIRINTO \n \n")
 escreva("- Existem caminhos que não têm saída, fazendo com que você precise voltar atrás e tentar outro caminho. \n")
 escreva("- Algumas portas podem levar de volta ao início do labirinto, obrigando-o a recomeçar sua busca. \n")
 escreva("- O tesouro está escondido em um local diferente a cada vez que o programa iniciar, tornando a exploração do labirinto desafiadora e imprevisível. \n \n")
 escreva("Boa sorte em sua busca pelo tesouro!")
 enquanto(labirinto[posX][posY] != 2) {
 escreva("Sua posição atual é a seguinte: (", posX,", ",posY,") \n")
 faca {
 escreva("Digite um valor de 0 a 4 para a posição X: ")
 leia(posX)
 }
 enquanto (posX 4)
 faca {
 escreva("Digite um valor de 0 a 4 para a posição Y: ")
 leia(posY)
 }
 enquanto (posY 4)
 se(labirinto[posX][posY] == 0) {
 escreva("YEAH!!! \nCaminho está livre! \n")
 }
 se(labirinto[posX][posY] == 1) {
 escreva("OPS! \nVocê atingiu uma parede! \n")
 }
 se(labirinto[posX][posY] == 2) {
 escreva("PARABÉNS!!! \nVocê encontrou o tesouro \n")
 }
 se(labirinto[posX][posY] == 3) {
 escreva("ARMADILHA! \nVolte ao início do labirinto! \n")
 posX = 0
 posY = 0
 // Retirar o tesouro do local anterior
 labirinto[4][4] = 1
 labirinto[numA][numB] = 0
 // Sortear 2 números aleatórios entre 0 e 4
 // Atribuir estes números às variáveis numA e numB
 numA = u.sorteia(0, 4)
 numB = u.sorteia(0, 4)
 labirinto[numA][numB] = 2
 // Retirar a armadilha do local anterior
 labirinto[2][1] = 1
 labirinto[numC][numD] = 0
 // Sortear 2 números aleatórios entre 0 e 4
 numC = u.sorteia(0, 4)
 numD = u.sorteia(0, 4)
 // Conferir se a nova posição da armadilha é igual à posição do tesouro
 se(numC == numA e numD == numB) {
 numC = u.sorteia(0, 4)
 numD = u.sorteia(0, 4)
 }
 labirinto[numC][numD] = 3
 }
 }
 }
}
A seguir a explicação dos blocos principais:
	Explicação
	Trecho de Código
	Declaração e inicialização da matriz do labirinto, que será usada para representar as posições de paredes, caminhos, armadilhas e o tesouro.
	inteiro labirinto[5][5]
	Definição de variáveis para posição e sorteios: posX e posY representam as coordenadas atuais do jogador, enquanto numA, numB, numC, e numD são usadas para armazenar as posições sorteadas do tesouro e das armadilhas.
	inteiro posX = 0 inteiro posY = 0 inteiro numA = 0 inteiro numB = 0 inteiro numC = 0 inteiro numD = 0
	Preenchimento manual da matriz labirinto: Aqui o código inicializa a matriz com valores representando o layout do labirinto. Os valores 0, 1, 2 e 3 representam caminhos, paredes, o tesouro e armadilhas, respectivamente.
	labirinto[0][0] = 0 labirinto[0][1] = 1 ... labirinto[4][4] = 2
	Mensagem inicial explicando o jogo: O jogador é informado sobre o objetivo e a estrutura do labirinto. Essa parte serve para orientar o jogador antes do início da interação.
	escreva("DESCRIÇÃO DO JOGO \n \n") ... escreva("Boa sorte em sua busca pelo tesouro!")
	Loop principal do jogo: Esse loop enquanto continua rodando até que o jogador encontre o tesouro, ou seja, quando labirinto[posX][posY] for igual a 2. O jogador insere novas coordenadas a cada rodada.
	enquanto(labirinto[posX][posY] != 2) { ... }
	Leitura da posição X e Y do jogador: Esse trecho coleta as coordenadas de movimento do jogador e garante que elas estejam dentro dos limites do labirinto (entre 0 e 4). Caso contrário, o jogador deve tentar novamente.
	faca { escreva("Digite um valor de 0 a 4 para a posição X: ") leia(posX) } enquanto (posX 4)
	Verificação da célula atual no labirinto: Dependendo do valor na célula labirinto[posX][posY], o jogador recebe um feedback: se o caminho está livre (0), se bateu em uma parede (1), se encontrou o tesouro (2), ou se caiu em uma armadilha (3).
	se(labirinto[posX][posY] == 0) { escreva("YEAH!!! Caminho está livre! \n") } ...
	Reseta a posição do jogador ao cair em uma armadilha: Se o jogador cair em uma armadilha (3), ele é enviado de volta para o início do labirinto (posição (0,0)), e o tesouro e as armadilhas são reposicionados.
	se(labirinto[posX][posY] == 3) { escreva("ARMADILHA! Volte ao início do labirinto!") posX = 0 posY = 0 ... }
	Reposicionamento aleatório do tesouro e da armadilha: Quando o jogador cai em uma armadilha, o código sorteia novas posições para o tesouro e para a armadilha, garantindo que eles não fiquem no mesmo local.
	numA = u.sorteia(0, 4) numB = u.sorteia(0, 4) labirinto[numA][numB] = 2 ...
image1.emf
Aula 3 f.por
Aula 3 f.por
programa {
 // Biblioteca útil para utilização do timer para execução do código
 inclua biblioteca Util --> u
 funcao inicio() {
 inteiro labirinto[5][5]
 inteiro posX = 0
 inteiro posY = 0
 inteiro numA = 0
 inteiro numB = 0
 inteiro numC = 0
 inteiro numD = 0
 // LEGENDA:
 // número 0 = caminho livre
 // número 1 = parede
 // número 2 = tesouro
 // número 3 = armadilha
 // ENDEREÇOS DA MATRIZ
 labirinto[0][0] = 0
 labirinto[0][1] = 1
 labirinto[0][2] = 1
 labirinto[0][3] = 1
 labirinto[0][4] = 1
 labirinto[1][0] = 1
 labirinto[1][1] = 0
 labirinto[1][2] = 0
 labirinto[1][3] = 0
 labirinto[1][4] = 1
 labirinto[2][0] = 1
 labirinto[2][1] = 3
 labirinto[2][2] = 0
 labirinto[2][3] = 0
 labirinto[2][4] = 1
 labirinto[3][0] = 1
 labirinto[3][1] = 0
 labirinto[3][2] = 0
 labirinto[3][3] = 0
 labirinto[3][4] = 1
 labirinto[4][0] = 1
 labirinto[4][1] = 1
 labirinto[4][2] = 1
 labirinto[4][3] = 1
 labirinto[4][4] = 2
 escreva("DESCRIÇÃO DO JOGO \n \n")
 escreva("Suponha que você está em uma missão para encontrar um tesouro escondido no meio de um labirinto muito perigoso. \n")
 escreva("Olabirinto é composto por uma séries de corredores estreitos, bifurcações e salas ocultas. \n")
 escreva("Sua missão é encontrar o caminho para o tesouro, evitando armadilhas e obstáculos ao longo do caminho.")
 escreva("DESCRIÇÃO DO LABIRINTO \n \n")
 escreva("- Existem caminhos que não têm saída, fazendo com que você precise voltar atrás e tentar outro caminho. \n")
 escreva("- Algumas portas podem levar de volta ao início do labirinto, obrigando-o a recomeçar sua busca. \n")
 escreva("- O tesouro está escondido em um local diferente a cada vez que o programa iniciar, tornando a exploração do labirinto desafiadora e imprevisível. \n \n")
 escreva("Boa sorte em sua busca pelo tesouro!")
 enquanto(labirinto[posX][posY] != 2) {
 escreva("Sua posição atual é a seguinte: (", posX,", ",posY,") \n")
 faca {
 escreva("Digite um valor de 0 a 4 para a posição X: ")
 leia(posX)
 }
 enquanto (posX 4)
 faca {
 escreva("Digite um valor de 0 a 4 para a posição Y: ")
 leia(posY)
 }
 enquanto (posY 4)
 se(labirinto[posX][posY] == 0) {
 escreva("YEAH!!! \nCaminho está livre! \n")
 }
 se(labirinto[posX][posY] == 1) {
 escreva("OPS! \nVocê atingiu uma parede! \n")
 }
 se(labirinto[posX][posY] == 2) {
 escreva("PARABÉNS!!! \nVocê encontrou o tesouro \n")
 }
 se(labirinto[posX][posY] == 3) {
 escreva("ARMADILHA! \nVolte ao início do labirinto! \n")
 posX = 0
 posY = 0
 // Retirar o tesouro do local anterior
 labirinto[4][4] = 1
 labirinto[numA][numB] = 0
 // Sortear 2 números aleatórios entre 0 e 4
 // Atribuir estes números às variáveis numA e numB
 numA = u.sorteia(0, 4)
 numB = u.sorteia(0, 4)
 labirinto[numA][numB] = 2
 // Retirar a armadilha do local anterior
 labirinto[2][1] = 1
 labirinto[numC][numD] = 0
 // Sortear 2 números aleatórios entre 0 e 4
 numC = u.sorteia(0, 4)
 numD = u.sorteia(0, 4)
 // Conferir se a nova posição da armadilha é igual à posição do tesouro
 se(numC == numA e numD == numB) {
 numC = u.sorteia(0, 4)
 numD = u.sorteia(0, 4)
 }
 labirinto[numC][numD] = 3
 }
 }
 }
}

Mais conteúdos dessa disciplina