+ Responder ao Tópico



  1. #1

    Padrão Duvida Jogo de damas em portugol

    Caros amigos estou a fazer um jogo de damas em portugol
    Como nao achei o topico certo , quero acreditar que os colegas que mechem com C sabe portugol

    Estou com um problema , quando a peça meche mais de 1 vez , ela fica me branco , ou seja desaparece do jogo
    Abaixo segue o codigo para analise do tabuleiro que esta em desenvolvimento



    algoritmo "semnome"
    // Função :
    // Autor :
    // Data : 8/6/2012
    // Seção de Declarações
    var
    mesa: vetor[1..8,1..8] de caracter
    reflexo: vetor[1..8,1..8] de caracter
    i, j, x, y, val1, val2, val3, val4, a, b:inteiro
    inicio

    // Cria a tabela com as peças no lugar.
    para i <- 1 ate 8 faca
    escreval("") // Quebra coluna para ficar em 8 colunas ou invés de só 1
    para j <- 1 ate 8 faca
    mesa[i,j] <- "." // Declara a mesa toda como "."
    se (i <=3) entao //comando
    se (i) mod 2 = 1 entao //para
    se (j) mod 2 = 0 entao //declarar
    mesa[i,j] <- "p" //a posição
    fimse //incial
    senao //das peças
    se (j) mod 2 = 1 entao //pretas
    mesa[i,j] <- "p" //representadas
    fimse //pela
    fimse //letra "p"
    fimse
    se (i >=6)entao //comando
    se (i) mod 2 = 0 entao //para
    se (j) mod 2 = 1 entao //declarar
    mesa[i,j] <- "b" //a posição
    fimse //inicial
    senao //das peças
    se (j) mod 2 = 0 entao //brancas
    mesa[i,j] <- "b" //representadas
    fimse //pela
    fimse //leta "b"
    fimse
    escreva(mesa[i,j]," ") // Imprime a mesa com todas a peças nas suas posições inciais
    fimpara
    fimpara

    //Cria uma tabela identica a mesa, para ter uma que seja usada como
    //um espelho e facilite a criar os codigos que iram movimentar as peças
    para x <- 1 ate 8 faca
    para y <- 1 ate 8 faca
    reflexo[x,y] <- "."
    se (x <=3) entao
    se (x) mod 2 = 1 entao
    se (y) mod 2 = 0 entao
    reflexo[x,y] <- "p"
    fimse
    senao
    se (y) mod 2 = 1 entao
    reflexo[x,y] <- "p"
    fimse
    fimse
    fimse
    se (x >=6)entao
    se (x) mod 2 = 0 entao
    se (y) mod 2 = 1 entao
    reflexo[x,y] <- "b"
    fimse
    senao
    se (y) mod 2 = 0 entao
    reflexo[x,y] <- "b"
    fimse
    fimse
    fimse
    fimpara
    fimpara

    repita
    escreval("")

    repita
    escreval("Digite a localizacao da peca a mexer:")
    leia (x, y) // Pega a posição da peça a ser movimentada

    escreval("Digite o lugar para onde mover:")
    leia (i, j) // Pega o local para onde a peça irá na tabela reflexo

    se (x <= 8) e (y <= 8) e (i <= 8) e (j <= 8)entao //Condição que limita o movimento para somente uma posição que esteja dentro do tamanho da tabela
    se mesa[i,j] = "." entao //Condição para execução desses comandos se a casa de destino for uma casa vazia
    se (i = x-1) e (j = y-1) ou (i = x+1) e (j = y-1) ou (i = x-1) e (j = y+1) ou (i = x+1) e (j = y+1)entao //Condição para que o movimento seja sempre na diagonal e que nao seja mais d uma casa
    mesa[i,j] <- reflexo[x,y] //Passa o valor da casa escolhida em reflexo para a mesa
    i <- x
    j <- y
    mesa[i,j] <- "." //Faz com que depois de mexer a peça a casa onde a peça estava seja vazia
    interrompa //Interronpe o repita depois que todas condições forem verdadeiras
    senao
    escreval("Movimento Inválido! Só pode movimentar as peças na diagonal e de uma em uma casa!") //Imprime essa mensagem se o movimento não for na diagonal ou se for com mais de uma casa
    fimse
    fimse
    senao
    escreval("Movimento Inválido! Use numeros de 1 a 8 para movimentar sua peça.") //Imprime essa mensagem se alguma das posições escolhidas não estiverem dentro do tamanho da matriz que é 8x8
    fimse
    fimrepita
    limpatela
    para i <- 1 ate 8 faca //Imprime a tabela
    escreval("") //atualizada depois
    para j <- 1 ate 8 faca //de ter movimentado
    escreva(mesa[i,j]," ") //a peça da rodada
    reflexo[x,y] <- mesa[i,j]
    fimpara
    fimpara
    para i <- 1 ate 8 faca
    para j <- 1 ate 8 faca
    se (mesa[i,j] <> "p") ou (mesa[i,j] <> "b") ou (mesa[i,j] <> "P") ou (mesa[i,j] <> "B") entao //Termina o jogo quando não sobra éça nenhuma braca ou preta na tabela
    interrompa
    fimse
    fimpara
    fimpara
    fimrepita
    fimalgoritmo

  2. #2

    Padrão Re: Duvida Jogo de damas em portugol

    Ler isso sem formatação, toma bastante tempo.

  3. #3

    Padrão Re: Duvida Jogo de damas em portugol

    Pronto caros colegas , é assim que vocês querem ?

  4. #4

    Padrão Re: Duvida Jogo de damas em portugol

    Citação Postado originalmente por JorgeAldo Ver Post
    Não, alguem te ensinou o que é identação ?

    Não entendi

  5. #5

    Padrão Re: Duvida Jogo de damas em portugol

    identação significa deixar o codigo mais claro... nao é isso ?

  6. #6
    MODERADOR-CHEFE Avatar de osmano807
    Ingresso
    Aug 2008
    Localização
    Araguari - Minas Gerais
    Posts
    1.980
    Posts de Blog
    5

    Padrão Re: Duvida Jogo de damas em portugol

    VisuAlg tem um auto ident, só não to lembrado onde, tem que procurar no menu. Acho que é F5