Olá pessoal, sou programador nível intermediário, faço Ciência da Computação na UEL, porém sou novo no fórum....
Gostaria de ter uma ideia do conhecimento dos usuários que frequentam a área de programação e tive a ideia de criar um tópico para que cada usuário que "manje" de programação, faça um jogo e poste-o aqui.
Porque VisualG?
R:Bom o visualg, para ingressantes na área de programação que não possuem base e não faziam ideia do que significava uma linguagem de programação é uma ótima linguagem para aprender
Dicas:Para você que vai participar, utilize vetores, matrizes, laços de iterações, condições, procedimentos, funções, variáveis e sempre, sempre comentando seu código e edentando ele.
OBS:Use sua criatividade, você pode fazer até mesmo um rpg.
Bom trabalho!
Vejam alguns exemplos de sources existentes na internet:
Jogo da Forca - Edilson Spalaor
algoritmo "Jogo da Forca"
// Autor : Edilson Spalaor
// Data : 3/3/2011 à 04/03/2011
var
palavra:vetor[0..2] de caractere
elemento:vetor[1..20] de caractere
posicao:vetor[1..3] de inteiro
restante:vetor[1..3] de caractere
qtdrestante:vetor[1..2] de inteiro
acao:vetor[1..2] de caractere
info:caracter
tentativas,chances:inteiro
escolhida,letra:caractere
aleat,qtdcaracteres,i,pontos,pontosperdidos:inteiro
inicio
palavra[0]<-"oftalmologia"
palavra[1]<-"elemento"
palavra[2]<-"batata"
aleat<- RandI(3)
escolhida<-palavra[aleat]
qtdcaracteres<-compr (escolhida)
chances<-15
para i de 1 ate qtdcaracteres faca
elemento<-"_ "
fimpara
enquanto (pontos<qtdcaracteres) e (tentativas<chances) faca
limpatela
escreval("":35,"A FORCA")
escreval("")
escreva("Palavra: ")
para i de 1 ate qtdcaracteres faca
escreva("":1,Maiusc (elemento) )
fimpara
escreval("")
escreva("Tente uma letra: ")
tentativas<-tentativas+1
leia(letra)
letra<-Minusc (letra)
acao[1]<-"on"
acao[2]<-"on"
para i de 1 ate qtdcaracteres faca
se (letra = (Copia (escolhida ; i, 1))) e (acao[1]="on") entao
acao[1]<-"off"
posicao[1]<-(Pos (letra, escolhida))
se (elemento[posicao[1]]="_ ") entao
elemento[posicao[1]]<-letra
pontos<-pontos+1
fimse
restante[1]<-(Copia (escolhida ; posicao[1]+1, qtdcaracteres-posicao[1]) )
qtdrestante[1]<-compr (restante[1])
para i de 1 ate qtdrestante[1] faca
se (letra = (Copia (restante[1] ; i, 1) )) e (acao[2]="on") entao
acao[2]<-"off"
posicao[2]<-(Pos (letra, restante[1]))
se (elemento[posicao[1]+posicao[2]]="_ ") entao
elemento[posicao[1]+posicao[2]]<-letra
pontos<-pontos+1
fimse
fimse
fimpara
restante[2]<-(Copia (escolhida ; posicao[1]+posicao[2]+1, qtdcaracteres-posicao[2]) )
qtdrestante[2]<-compr (restante[2])
para i de 1 ate qtdrestante[2] faca
se letra = (Copia (restante[2] ; i, 1) ) entao
posicao[3]<-(Pos (letra, restante[2]))
se (elemento[posicao[1]+posicao[2]+posicao[3]]="_ ") entao
elemento[posicao[1]+posicao[2]+posicao[3]]<-letra
pontos<-pontos+1
fimse
fimse
fimpara
fimse
fimpara
fimenquanto
limpatela
escrevaL("":35,"A FORCA")
escreval("")
escreva("Palavra: ")
para i de 1 ate qtdcaracteres faca
escreva("":1,Maiusc (elemento) )
fimpara
se tentativas<chances entao
escreval("")
escreval("Parabens!Você acertou!")
senao
escreval("")
escreval("")
escreval("Você excedeu o número de tentativas! =(")
fimse
escreval("")
escrevaL("FIM DO JOGO")
escreval("")
fimalgoritmo
Jogo da Forca - Thiago Aguiar
algoritmo "Jogo da Forca"
// Autor : Thiago Aguiar
// Data : 12/9/2009
var
frases,respostas: vetor [0..9] de caractere
tamanho,ind,pergunta,erros,qtd: inteiro
letra,achou,novojogo,opcao,chute,sexo: caractere
encontrou: vetor [1..20] de caractere
resposta: vetor [0..20] de caractere
//Inicio dos Procedimentos
Procedimento "limpa"
inicio
para ind := 1 ate tamanho faca
encontrou[ind]<- "_ "
fimpara
fimprocedimento
Procedimento "inicializa"
inicio
limpatela
erros<-0
pergunta<- randi(10)
resposta[0]:= respostas[pergunta]
tamanho <- compr(resposta[0])
limpa
novojogo<- "S"
fimprocedimento
Procedimento "novo_jogo"
inicio
escreval(" ")
escreva ("Deseja jogar um novo jogo? im ou [N]ão? ")
leia(novojogo)
se novojogo = "S" então
inicializa
senao
escreval("Pressione ESC para encerrar o jogo.")
fimse
fimprocedimento
Procedimento "fim_de_jogo"
inicio
escreval("FIM DE JOGO, VOCÊ PERDEU!!")
novo_jogo
fimprocedimento
procedimento "desenha"
inicio
se erros = 1 então
escreval(" ( ) ")
fimse
se erros = 2 então
escreval(" ( ) ")
escreval(" _|_ ")
fimse
se erros = 3 então
escreval(" ( ) ")
escreval(" _|_ ")
escreval(" | ")
fimse
se erros = 4 então
se sexo = "F" então
escreval(" ________ ")
escreval(" | | ")
escreval(" | mm|mm ")
escreval(" | m(º_º)m ")
escreval(" | mm_Y_mm ")
escreval(" | | ")
escreval(" | / \ ")
escreval(" | ")
escreval(" | ")
escreval(" _______|_______ ")
fim_de_jogo
senao
escreval(" ________ ")
escreval(" | | ")
escreval(" | | ")
escreval(" | (º_º) ")
escreval(" | _Y_ ")
escreval(" | | ")
escreval(" | / \ ")
escreval(" | ")
escreval(" | ")
escreval(" _______|_______ ")
fim_de_jogo
fimse
fimse
fimprocedimento
procedimento "sair"
inicio
fimalgoritmo
fimprocedimento
procedimento "adaptacao"
inicio
se pergunta = 0 então
resposta[0]<- "FLAMENGO"
resposta[1]<- "F"
resposta[2]<- "L"
resposta[3]<- "A"
resposta[4]<- "M"
resposta[5]<- "E"
resposta[6]<- "N"
resposta[7]<- "G"
resposta[8]<- "O"
fimse
se pergunta = 1 então
resposta[0]<- "FLUMINENSE"
resposta[1]<- "F"
resposta[2]<- "L"
resposta[3]<- "U"
resposta[4]<- "M"
resposta[5]<- "I"
resposta[6]<- "N"
resposta[7]<- "E"
resposta[8]<- "N"
resposta[9]<- "S"
resposta[10]<- "E"
fimse
se pergunta = 2 então
resposta[0]<- "PALMEIRAS"
resposta[1]<- "P"
resposta[2]<- "A"
resposta[3]<- "L"
resposta[4]<- "M"
resposta[5]<- "E"
resposta[6]<- "I"
resposta[7]<- "R"
resposta[8]<- "A"
resposta[9]<- "S"
fimse
se pergunta = 3 então
resposta[0]<- "CORINTHIAS"
resposta[1]<- "C"
resposta[2]<- "O"
resposta[3]<- "R"
resposta[4]<- "I"
resposta[5]<- "N"
resposta[6]<- "T"
resposta[7]<- "H"
resposta[8]<- "I"
resposta[9]<- "A"
resposta[10]<- "S"
fimse
se pergunta = 4 então
resposta[0]<- "CRUZEIRO"
resposta[1]<- "C"
resposta[2]<- "R"
resposta[3]<- "U"
resposta[4]<- "Z"
resposta[5]<- "E"
resposta[6]<- "I"
resposta[7]<- "R"
resposta[8]<- "O"
fimse
se pergunta = 5 então
resposta[0]<- "IPATINGA"
resposta[1]<- "I"
resposta[2]<- "P"
resposta[3]<- "A"
resposta[4]<- "T"
resposta[5]<- "I"
resposta[6]<- "N"
resposta[7]<- "G"
resposta[8]<- "A"
fimse
se pergunta = 6 então
resposta[0]<- "SPORT"
resposta[1]<- "S"
resposta[2]<- "P"
resposta[3]<- "O"
resposta[4]<- "R"
resposta[5]<- "T"
fimse
se pergunta = 7 então
resposta[0]<- "NAUTICO"
resposta[1]<- "N"
resposta[2]<- "A"
resposta[3]<- "U"
resposta[4]<- "T"
resposta[5]<- "I"
resposta[6]<- "C"
resposta[7]<- "O"
fimse
se pergunta = 8 então
resposta[0]<- "GREMIO"
resposta[1]<- "G"
resposta[2]<- "R"
resposta[3]<- "E"
resposta[4]<- "M"
resposta[5]<- "I"
resposta[6]<- "O"
fimse
se pergunta = 9 então
resposta[0]<- "INTERNACIONAL"
resposta[1]<- "I"
resposta[2]<- "N"
resposta[3]<- "T"
resposta[4]<- "E"
resposta[5]<- "R"
resposta[6]<- "N"
resposta[7]<- "A"
resposta[8]<- "C"
resposta[9]<- "I"
resposta[10]<- "O"
resposta[11]<- "N"
resposta[12]<- "A"
resposta[13]<- "L"
fimse
fimprocedimento
inicio
escreva("Você é do sexo [M]asculino ou [F]eminino? ")
leia(sexo)
achou<- "N"
novojogo<- "S"
frases[0]:="É UM TIME DE FUTEBOL DO RIO DE JANEIRO"
frases[1]:="É UM TIME DE FUTEBOL DO RIO DE JANEIRO"
frases[2]:="É UM TIME DE FUTEBOL DE SÃO PAULO"
frases[3]:="É UM TIME DE FUTEBOL DE SÃO PAULO"
frases[4]:="É UM TIME DE FUTEBOL DE MINAS GERAIS"
frases[5]:="É UM TIME DE FUTEBOL DE MINAS GERAIS"
frases[6]:="É UM TIME DE FUTEBOL DE PERNAMBUCO"
frases[7]:="É UM TIME DE FUTEBOL DE PERNAMBUCO"
frases[8]:="É UM TIME DE FUTEBOL DO RIO GRANDE DO SUL"
frases[9]:="É UM TIME DE FUTEBOL DO RIO GRANDE DO SUL"
respostas[0]:="FLAMENGO"
respostas[1]:="FLUMINENSE"
respostas[2]:="PALMEIRAS"
respostas[3]:="CORINTHIAS"
respostas[4]:="CRUZEIRO"
respostas[5]:="IPATINGA"
respostas[6]:="SPORT"
respostas[7]:="NAUTICO"
respostas[8]:="GREMIO"
respostas[9]:="INTERNACIONAL"
inicializa
repita
se novojogo = "S" então
adaptacao
limpatela
escreval("Jogo da Forca V1.0")
escreval(frases[pergunta])
se erros > 0 então
desenha
fimse
para ind := 1 ate tamanho faca
escreva(encontrou[ind])
fimpara
escreval(" ")
escreval(" ")
escreval("[1] Quero chutar uma letra")
escreval("[2] Quero chutar a palavra")
escreval("[3] Sair")
escreva("A opção escolhida é: ")
leia(opcao)
se opcao = "2" então
escreva("Digite a palavra: ")
leia(chute)
se resposta[0] = chute então
escreval("Parabens, você acertou!")
novo_jogo
senao
escreval("Infelizmente, você errou!")
erros<- 4
desenha
fimse
fimse
se opcao = "3" então
sair
fimse
se opcao = "1" então
escreva("Digite uma letra: ")
leia(letra)
para ind:= 1 ate tamanho faca
se letra = resposta[ind] então
achou<- "S"
encontrou[ind]<- letra
qtd<- qtd+1
se tamanho = qtd então
escreval(resposta[0])
escreval("Parabéns, você acertou!")
novo_jogo
fimse
fimse
fimpara
fimse
se achou = "N" então
erros<- erros+1
desenha
fimse
achou<- "N"
fimse
se novojogo = "N" então
sair
fimse
fimrepita ate novojogo = "N"
fimalgoritmo
Jogo da Velha
var nome:vetor[1..2] de caracterev:vetor[1..3,1..3]de caracterectr:caracterei,j,cont1,cont2,auxc,auxl,controd:inteiroinicioescreval (" _|_|_ ***********************")escreval (" _|_|_ **** JOGO DA VELHA ****")escreval (" | | ***********************")escrevalpara i de 1 ate 2 facaescreval ("Digite o Nome do",i,"° Jogador")leia (nome)fimparaescreval ("********************************")escreval ("* ",nome[1]," Jogador 1 ==> [X] *")escreval ("* ",nome[2]," Jogador 2 ==> [O] *")escreval ("********************************")escrevalescreval ("Efetuando Sorteio do 1° Jogador que irá jogar")i<-0repitapara i de 1 ate 3 facapara j de 1 ate 3 facav[i,j]<-"¨"fimparafimparai<-0enquanto (i<1)facai<-randi(3)se (i=0) entaoi<-randi(3)fimsefimenquantose (i=1) entaoescreval ("*",nome[1]," Jogador 1 Começa *")senaoescreval ("*",nome[2]," Jogador 2 Começa *")fimseescreval (" | | ")escreval (" 1,1 | 1,2 | 1,3 ")escreval (" | | ")escreval (" ___________|__________|__________ ")escreval (" | | ")escreval (" 2,1 | 2,2 | 2,3 ")escreval (" | | ")escreval (" ___________|__________|__________ ")escreval (" | | ")escreval (" 3,1 | 3,2 | 3,3 ")escreval (" | | ")escreval (" | | ")escrevalrepitaescreval ("Jogador ",i," Insira a Coordenada desejada [Linha depois a Coluna embaixo]")leia (auxl,auxc)se (v[auxl,auxc]="X") ou (v[auxl,auxc]="O") entaoescreval ("Este Lugar já esta sendo usado <=============")escreval ("Digite Uma Posição Vazia <=================")senaose (i=1)entaov[auxl,auxc]<-"X"i<-i+1controd<-controd+1senaose (i=2) entaov[auxl,auxc]<-"O"i<-1controd<-controd+1fimsefimsefimseescreval (" | | ")escreval (" ",v[1,1]," | ",v[1,2]," | ",v[1,3]," ")escreval (" | | ")escreval (" ___________|__________|__________ ")escreval (" | | ")escreval (" ",v[2,1]," | ",v[2,2]," | ",v[2,3]," ")escreval (" | | ")escreval (" ___________|__________|__________ ")escreval (" | | ")escreval (" ",v[3,1]," | ",v[3,2]," | ",v[3,3]," ")escreval (" | | ")escreval (" | | ")escrevalescreval ("PLACAR PARCIAL")escreval (nome[1]," ===> ",cont1)escreval (nome[2]," ===> ",cont2)escreval ("O PLACAR É Atualizado no fim da rodada")escrevalse (v[1,1]=v[2,2]) e (v[2,2]=v[3,3]) entaose (v[1,1]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[1,1]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[1,3]=v[2,2]) e (v[2,2]=v[3,1]) entaose (v[1,3]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[1,3]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[1,1]=v[1,2]) e (v[1,2]=v[1,3]) entaose (v[1,1]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[1,1]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[2,1]=v[2,2]) e (v[2,2]=v[2,3]) entaose (v[2,1]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[2,1]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[3,1]=v[3,2]) e (v[3,2]=v[3,3]) entaose (v[3,1]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[3,1]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[1,1]=v[2,1]) e (v[2,1]=v[3,1]) entaose (v[1,1]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[1,1]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[1,2]=v[2,2]) e (v[2,2]=v[3,2]) entaose (v[1,2]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1controd<-9senaose (v[1,2]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (v[1,3]=v[2,3]) e (v[2,3]=v[3,3]) entaose (v[1,3]="x") entaoescreval ("Jogador 1 Venceu")escreval (nome[1]," Parabens")cont1<-cont1+1senaose (v[1,3]="O") entaoescreval ("Jogador 2 Venceu")escreval (nome[2]," Parabens")cont2<-cont2+1controd<-9fimsefimsesenaose (controd=9) entaoescreval ("IXAAAAAAAAA DEU VELHAAAAAAAAAAAAAA")fimsefimsefimsefimsefimsefimsefimsefimsefimseate (controd=9)escreval ("Deseja Jogar Novamente ,[n]?")leia (ctr)ate (ctr="n")limpatelaescreval ("PLACAR FINAL")escreval (nome[1]," ===> ",cont1)escreval (nome[2]," ===> ",cont2)escreval ("Obrigado Por ter Jogado Velha's Gaming")fimalgoritmo