Skip to content

Instantly share code, notes, and snippets.

@AndreyArthur
Last active May 16, 2024 13:06
Show Gist options
  • Select an option

  • Save AndreyArthur/c78c5a9b03b034030117476b5520b67f to your computer and use it in GitHub Desktop.

Select an option

Save AndreyArthur/c78c5a9b03b034030117476b5520b67f to your computer and use it in GitHub Desktop.
Algoritmos
Algoritmo "forca"
// Disciplina : Algoritmos
// Professor : João Alfredo
// Descrição : Programa que simula o jogo da forca.
// Autor(a) : Andrey Arthur Sousa e Silva
// Data atual : 14/05/2024
Var
// Seção de Declarações das variáveis
palavra, chute_anterior, chute, letra : caractere
e_posicao, foi_usada : logico
erros, comprimento, indice, posicao : inteiro
posicoes : vetor[1..12] de inteiro
letras_usadas : vetor[1..27] de caractere
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
comprimento <- 13
chute <- "____________"
posicao <- 1
enquanto posicao <= 27 faca
letras_usadas[posicao] <- "_"
posicao <- posicao + 1
fimenquanto
enquanto comprimento > 12 faca
escreva("Insira a palavra: ")
leia(palavra)
comprimento <- compr(palavra)
se comprimento > 12 entao
escreval("Palavra muito longa, o máximo são 12 caracteres!")
fimse
fimenquanto
enquanto (chute <> palavra) e (erros < 5) faca
escreva("Insira uma letra ou seu chute: ")
leia(letra)
se compr(letra) > 1 entao
se letra = palavra entao
chute <- letra
senao
erros <- erros + 1
escreval("Seu chute estava errado! Restam", 5 - erros, " vidas.")
fimse
senao
foi_usada <- falso
posicao <- 1
enquanto letras_usadas[posicao] <> "_" faca
se letras_usadas[posicao] = letra entao
foi_usada <- verdadeiro
fimse
posicao <- posicao + 1
fimenquanto
se foi_usada = falso entao
posicao <- 1
enquanto posicao <= 26 faca
se letras_usadas[posicao] = "_" entao
letras_usadas[posicao] <- letra
interrompa
fimse
posicao <- posicao + 1
fimenquanto
fimse
posicao <- 1
enquanto posicao <= 12 faca
posicoes[posicao] <- 0
posicao <- posicao + 1
fimenquanto
indice <- 1
posicao <- 1
enquanto indice <= comprimento faca
se copia(palavra, indice, 1) = letra entao
posicoes[posicao] <- indice
posicao <- posicao + 1
fimse
indice <- indice + 1
fimenquanto
se posicoes[1] = 0 entao
erros <- erros + 1
escreval("Seu chute estava errado! Restam", 5 - erros, " vidas.")
senao
indice <- 1
chute_anterior <- chute
chute <- ""
enquanto indice <= comprimento faca
e_posicao <- falso
posicao <- 1
enquanto posicao <= 12 faca
se posicoes[posicao] = indice entao
e_posicao <- verdadeiro
interrompa
fimse
posicao <- posicao + 1
fimenquanto
se e_posicao = verdadeiro entao
chute <- chute + letra
senao
chute <- chute + copia(chute_anterior, indice, 1)
fimse
indice <- indice + 1
fimenquanto
se chute <> palavra entao
escreval("Ainda restam", 5 - erros, " vidas: ", chute, ".")
escreva("Letras usadas: ")
posicao <- 1
enquanto letras_usadas[posicao] <> "_" faca
escreva(letras_usadas[posicao])
posicao <- posicao + 1
fimenquanto
escreval(".")
fimse
fimse
fimse
fimenquanto
se chute <> palavra entao
escreval("Parabéns, você foi enforcado! A palavra era '", palavra, "'.")
senao
escreval("Você venceu! A palavra era '", palavra, "' mesmo!")
fimse
Fimalgoritmo
Algoritmo "semnome"
// Disciplina : [Linguagem e Lógica de Programação]
// Professor : Antonio Carlos Nicolodi
// Descrição : Aqui você descreve o que o programa faz! (função)
// Autor(a) : Nome do(a) aluno(a)
// Data atual : 15/05/2024
Var
// Seção de Declarações das variáveis
vez, vencedor : caractere
posicao, i, j, contador : inteiro
jogo : vetor[1..3,1..3] de caractere
terminou, jogada_valida, esta_completo : logico
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
i <- 1
enquanto i <= 3 faca
j <- 1
enquanto j <= 3 faca
jogo[i,j] <- " "
j <- j + 1
fimenquanto
i <- i + 1
fimenquanto
vencedor <- " "
vez <- ""
enquanto (vez <> "X") e (vez <> "O") faca
escreva("Escolha X ou O: ")
leia(vez)
se vez = "x" entao
vez <- "X"
senao
se vez = "o" entao
vez <- "O"
fimse
fimse
fimenquanto
terminou <- falso
enquanto terminou = falso faca
// Mostra o jogo
contador <- 1
i <- 1
enquanto i <= 3 faca
j <- 1
enquanto j <= 3 faca
se (jogo[i,j] <> "X") e (jogo[i,j] <> "O") entao
escreva(contador)
senao
escreva(" ", jogo[i,j])
fimse
contador <- contador + 1
j <- j + 1
fimenquanto
escreval()
i <- i + 1
fimenquanto
jogada_valida <- falso
enquanto jogada_valida = falso faca
// Valida a posição
posicao <- 0
enquanto (posicao > 9) ou (posicao < 1) faca
escreva("Insira a posição que quer jogar (", vez, "): ")
leia(posicao)
se (posicao > 9) ou (posicao < 1) entao
escreval("Posição inválida, precisa estar entre 1 e 9.")
fimse
fimenquanto
// Valida se a posição está ocupada e insere
contador <- 1
i <- 1
enquanto i <= 3 faca
j <- 1
enquanto j <= 3 faca
se (contador = posicao) entao
se (jogo[i,j] <> "X") e (jogo[i,j] <> "O") entao
jogo[i,j] <- vez
jogada_valida <- verdadeiro
fimse
fimse
contador <- contador + 1
j <- j + 1
fimenquanto
i <- i + 1
fimenquanto
se jogada_valida = falso entao
escreval("Jogada inválida, posição já ocupada.")
senao
se vez = "X" entao
vez <- "O"
senao
vez <- "X"
fimse
fimse
fimenquanto
i <- 1
enquanto i <= 3 faca
se (jogo[i,1] = "X") e (jogo[i,2] = "X") e (jogo[i,3] = "X")entao
terminou <- verdadeiro
vencedor <- "X"
interrompa
fimse
se (jogo[i,1] = "O") e (jogo[i,2] = "O") e (jogo[i,3] = "O")entao
terminou <- verdadeiro
vencedor <- "O"
interrompa
fimse
i <- i + 1
fimenquanto
j <- 1
enquanto j <= 3 faca
se (jogo[1,j] = "X") e (jogo[2,j] = "X") e (jogo[3,j] = "X")entao
terminou <- verdadeiro
vencedor <- "X"
interrompa
fimse
se (jogo[1,j] = "O") e (jogo[2,j] = "O") e (jogo[3,j] = "O")entao
terminou <- verdadeiro
vencedor <- "O"
interrompa
fimse
j <- j + 1
fimenquanto
se (jogo[1,1] = "X") e (jogo[2,2] = "X") e (jogo[3,3] = "X")entao
terminou <- verdadeiro
vencedor <- "X"
fimse
se (jogo[1,1] = "O") e (jogo[2,2] = "O") e (jogo[3,3] = "O")entao
terminou <- verdadeiro
vencedor <- "O"
fimse
se (jogo[1,3] = "X") e (jogo[2,2] = "X") e (jogo[3,1] = "X")entao
terminou <- verdadeiro
vencedor <- "X"
fimse
se (jogo[1,3] = "O") e (jogo[2,2] = "O") e (jogo[3,1] = "O") entao
terminou <- verdadeiro
vencedor <- "O"
fimse
se terminou = verdadeiro entao
escreval("O jogo acabou, o vencedor foi ", vencedor, ".")
senao
esta_completo <- verdadeiro
i <- 1
enquanto i <= 3 faca
j <- 1
enquanto j <= 3 faca
se jogo[i,j] = " " entao
esta_completo <- falso
fimse
j <- j + 1
fimenquanto
i <- i + 1
fimenquanto
se esta_completo = verdadeiro entao
terminou <- verdadeiro
escreval("O jogo acabou, deu velha.")
fimse
fimse
se terminou = verdadeiro entao
contador <- 1
i <- 1
enquanto i <= 3 faca
j <- 1
enquanto j <= 3 faca
se (jogo[i,j] <> "X") e (jogo[i,j] <> "O") entao
escreva(contador)
senao
escreva(" ", jogo[i,j])
fimse
contador <- contador + 1
j <- j + 1
fimenquanto
escreval()
i <- i + 1
fimenquanto
fimse
fimenquanto
Fimalgoritmo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment