Ir ao conteúdo
  • Cadastre-se
Nolisten

C Jogo real ur ( tabuleiro ) movimentação

Posts recomendados

boa tarde a todos ,estou desenvolvendo um jogo  de tabuleiro  em linguagem c , este e meu primeiro período em engenharia da computação ,ainda tenho muitas duvidas segue os anexos sobre o tabuleiro , bom sei que aqui vocês não irão fazer o jogo para mim estou aqui para tirar uma duvida sobre a movimentação das peças não faço ideia de como começar aqui esta parte do programa que fiz , o PDF de como tem que ser o jogo e um arquivo executável de como é o jogo (professor que fez).espero que possam me ajudar .

#include<stdio.h>
#include<stdlib.h>//funcao rand
#include<conio.h>
#include<time.h>//necessario para funcao time
#define li 3
#define co 8
#define pe 7
void sorteio(char t[li][co],char s1[pe],char s2[pe],int aux,int sorte,int jogador)
{
    srand(time(NULL));
    sorte=rand()%2+1;
    printf("jogador %d inicia\n\n",sorte);
}

void tabuleiro(char t[li][co],char s1[pe],char s2[pe],int aux,int sorte,int jogador) //inicializa tabuleiro e exibe ele
{
    int i=0, j=0,l[li],c[co];
    printf("* = roseta\nc = comeco\nf = fim\n\n");
    printf("TABULEIRO: \n");
    for(i=0; i<li; i++)
    {
        for(j=0; j<co; j++)
        {
            t[i][j] =' ';

        }
    }
    for (int i=0; i<7; i++)
    {
        s1[i]='X'; //gera peças
        s2[i]='O';
    }

    for(i=0; i<8; i++) // espaçamento para mostrar cordenadas do tabuleiro em linha e coluna
    {
        printf("%3d",i);
    }
    printf("\n");
    t[0][0]='*'; //atribui começo ,fim , roseta
    t[0][0]='*';
    t[2][0]='*';
    t[1][3]='*';
    t[0][4]='c';
    t[2][4]='c';
    t[0][5]='f';
    t[2][5]='f';
    t[0][6]='*';
    t[2][6]='*';

    for(i=0; i<3; i++)
    {
        printf("%d",i);
        for(j=0; j<8; j++) //printa  matriz
        {
            printf("[%.2c]",t[i][j]); //tabuleiro
        }
        printf("\n");
    }
    printf("\n\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",s1[i]); //printa vetor dos jogadores = s1
    }

    printf(" SAIDA JOGADOR 1\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",s2[i]);  //printa vetor dos jogadores = s2
    }
    printf(" SAIDA JOGADOR 2\n");
    printf("\n");
}
/*void saida(char t[li][co],char s1[pe],char s2[pe],int aux,int sorte) //faz a saida
{
    if(sorte==1)
    {
        for(int i=0;i<aux;i++
      t[][]=s1[];

    }else if(sorte==2)
    {
         t[][]=s2[];
    }
}

*/
//void jogada(char t[li][co],char s1[pe],char s2[pe],int aux,int sorte)



void dado(char t[li][co],char s1[pe],char s2[pe],int aux,int sorte,int jogador) //inicializa a funcao dado
{
    //rand(time(NULL));
    int dado1,dado2,dado3;
    dado1=rand()%4+1;
    dado2=rand()%4+1;
    dado3=rand()%4+1;

    aux=dado1+dado2+dado3;
    //printf("Valores do dado:\n0 = 4 casas \n1 = 1 casas\n2 = 2 casas\n3 = 3 casas\n");
    printf("dado1=%d\ndado2=%d\ndado3=%d\nsoma=%d\n\n",dado1,dado2,dado3,aux);
}

int main(int argc,char *argv)
{
    int escolha,vitoria,aux1,sorte,player;
    char ta[li][co],p1[pe],p2[pe];


    printf("\t__________________________________________________________\n");
    printf("\t__________________                    ____________________\n");
    printf("\t__________________   ##############   ____________________\n");
    printf("\t__________________    JOGO REAL UR    ____________________\n");
    printf("\t__________________   ##############   ____________________\n");
    printf("\t__________________________________________________________\n");

    printf("\n");

    //do
    // {

    tabuleiro(ta,p1,p2,aux1,sorte,player);
    sorteio(ta,p1,p2,aux1,sorte,player);
    dado(ta,p1,p2,aux1,sorte,player);
    // saida(ta,p1,p2,aux1);
    printf("MENU\n1-SAIDA\n2-TABULEIRO\n");
    // switch (escolha)
    //  {
    // case 1:

    //dado();
    //  }



    // } while(vitoria=1);



    return 0;
}

 

Jogo_Real_UR.pdf

realur(professor).zip realur(professor).zip

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Nolisten    para mover o caractere você modifica na matriz ta e coloca o caractere na nova posição e coloca na posição onde estava o caractere um espaço deletando ele da matriz , assim na hora que imprimir a matriz o caractere aparecerá na nova posição .

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 vou tentar .

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Ai que esta a dificuldade meu caro, não quero que ele coloque a posição de origem e posição final queria que o usuário coloque apenas a posição de origem e meu algoritmo faz o resto como no programa executável que eu anexei.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Nolisten    nesse programa que você enviou ele apenas coloca um caractere em uma posição do tabuleiro a cada jogada .

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include<stdio.h>
#include<stdlib.h>//funcao rand
#include<conio.h>
#include<time.h>//necessario para funcao time
#define li 3
#define co 8
#define pe 7

char t[3][8] =
{
    {'*', ' ', ' ', ' ', 'c', 'f', '*', ' '},
    {' ', ' ', ' ', '*', ' ', ' ', ' ', ' '},
    {'*', ' ', ' ', ' ', 'c', 'f', '*', ' '},
};
char s1[7]= {'O', 'O', 'O', 'O', 'O', 'O', 'O'};//SAIDA
char s2[7]= {'X', 'X', 'X', 'X', 'X', 'X', 'X'};
char c1[7]= {' ',' ',' ',' ',' ',' ',' ',} ; //DESTINO
char c2[7]= {' ',' ',' ',' ',' ',' ',' ',};

int aux,aux2; //auziliar de dados soma
int jogador;
int linhaOrigem, colunaOrigem, linhaDestino, colunaDestino;
int vencedor=0;

void tabuleiro();
void saida();
void dado();
void sorteioinicial();
void atualizarJogo();
void jogada();

void tabuleiro() //inicializa tabuleiro e exibe ele
{
    int i=0, j=0,l[li],c[co];

    for(i=0; i<8; i++) // espaçamento para mostrar cordenadas do tabuleiro em linha e coluna
    {
        printf("%3d",i);
    }
    printf("\n");

    for(i=0; i<3; i++)
    {
        printf("%d",i);
        for(j=0; j<8; j++) //printa  matriz
        {
            printf("[%.2c]",t[i][j]); //tabuleiro
        }
        printf("\n");
    }
    printf("\n\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",s1[i]); //printa veto do jogador = s1
    }

    printf(" SAIDA JOGADOR 1\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",s2[i]);  //printa veto do jogador = s2
    }
    printf(" SAIDA JOGADOR 2\n");
    printf("\n");

    for (int i=0; i<7; i++)
    {
        printf("[%c]",c1[i]); //printa vetor destino do jogador = s1
    }

    printf(" DESTINO JOGADOR 1\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",c2[i]);  //printa vetor destino do jogado = s1
    }
    printf(" DESTINO JOGADOR 2\n");
    printf("\n");
}
void saida()//faz a saida
{
    int i=0,j=0;
    if(jogador==1)
    {
        t[0][3]=s1[i];
        s1[i]=' ';
        i++;
    }
    else if(jogador==2)
    {
        t[2][3]=s2[j];
        s2[j]=' ';
        j++;
    }
    tabuleiro();
}
void atualizarJogo()
{
    int i=0,j=0;
    for(i=0; i<3; i++)
    {
        printf("%d",i);
        for(j=0; j<8; j++) //printa  matriz
        {
            printf("[%.2c]",t[i][j]); //tabuleiro
        }
        printf("\n");
    }
    printf("\n\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",s1[i]); //printa veto do jogador = s1
    }

    printf(" SAIDA JOGADOR 1\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",s2[i]);  //printa veto do jogador = s2
    }
    printf(" SAIDA JOGADOR 2\n");
    printf("\n");

    for (int i=0; i<7; i++)
    {
        printf("[%c]",c1[i]); //printa vetor destino do jogador = s1
    }

    printf(" DESTINO JOGADOR 1\n");
    for (int i=0; i<7; i++)
    {
        printf("[%c]",c2[i]);  //printa vetor destino do jogado = s1
    }
    printf(" DESTINO JOGADOR 2\n");
    printf("\n");
}
void dado() //inicializa a funcao dado
{
    int dado1,dado2,dado3;
    srand(time(NULL));
    dado1=rand()%4+1;
    dado2=rand()%4+1;
    dado3=rand()%4+1;
    aux=dado1+dado2+dado3;
    //printf("Valores do dado:\n0 = 4 casas \n1 = 1 casas\n2 = 2 casas\n3 = 3 casas\n");
    printf("dado1=%d\ndado2=%d\ndado3=%d\nsoma=%d\n\n",dado1,dado2,dado3,aux);
}
void sorteioinicial()
{

    int dado1,dado2,dado3,dado4,dado5,dado6;
    srand(time(NULL));
    dado1=rand()%4+1;
    dado2=rand()%4+1;
    dado3=rand()%4+1;
    dado4=rand()%4+1;
    dado5=rand()%4+1;
    dado6=rand()%4+1;
    aux=dado1+dado2+dado3;
    aux2=dado4+dado5+dado6;
    //printf("Valores do dado:\n0 = 4 casas \n1 = 1 casas\n2 = 2 casas\n3 = 3 casas\n");
    printf("dado1=%d\ndado2=%d\ndado3=%d\nsoma=%d\n\ndado4=%d\ndado5=%d\ndado6=%d\nsoma=%d\n\n",dado1,dado2,dado3,aux,dado4,dado5,dado6,aux2);
}
void jogada()
{

    printf("jogador %d nescolha o linha de origem:\n ",jogador);
    scanf("%d",&linhaOrigem);
    printf("jogador %d nescolha o coluna de origem:\n ",jogador);
    scanf("%d",&colunaOrigem);
    printf("jogador %d nescolha o linha de destino:\n ",jogador);
    scanf("%d",&linhaDestino);
    printf("jogador %d nescolha o coluna de destino:\n ",jogador);
    scanf("%d",&colunaDestino);

    if(jogador==1)
    {
        t[linhaOrigem][colunaOrigem]=' ';
        t[linhaDestino][colunaDestino]='O';
        if(t[linhaDestino][colunaDestino]=='*')
        {
            jogador=1;
        }
       else
       {
           jogador=2;
       }
    }
    else if(jogador==2)
    {
        t[linhaOrigem][colunaOrigem]=' ';
         t[linhaDestino][colunaDestino]='X';
        if(t[linhaDestino][colunaDestino]=='*')
        {
            jogador=2;
        }
       else
       {
           jogador=1;
       }
    }

}

int main(int argc,char *argv)
{
    int escolha,j=0;
    printf("\t__________________________________________________________\n");
    printf("\t__________________                    ____________________\n");
    printf("\t__________________   ##############   ____________________\n");
    printf("\t__________________    JOGO REAL UR    ____________________\n");
    printf("\t__________________   ##############   ____________________\n");
    printf("\t__________________________________________________________\n");
    printf("\n");

    tabuleiro();
    while (vencedor == 0)
    {
        printf("1-dado\n2-saida\n3-tabuleiro\n4-sorteio inicial\n5-encerrar jogo\n");
        scanf("%d",&escolha);
        printf("\n");

        switch (escolha)
        {
        case 1:
            dado();
            break;
        case 2:
            saida();
            break;
        case 3:
            jogada();
            atualizarJogo();

            break;
        case 4:
            srand(time(NULL));
            sorteioinicial();
            if(aux>aux2)
            {
                jogador=1;
                printf("\JOGADOR 1= 'O' START\n");
            }
            else if(aux2>aux)
            {
                jogador=2;
                printf("\nJOGADOR 2= 'X' START\n");
            }
            else if(aux2==aux)
            {
                srand(time(NULL));
                j=rand()%2+1;
                if(j==1)
                {
                    jogador=1;
                    printf("\JOGADOR 1= 'O' START\n");
                }
                else if(j==2)
                {
                    jogador=2;
                    printf("\nJOGADOR 2= 'X' START\n");
                }
            }
            break;
        default:
            vencedor=1;
        }
    }

    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!