Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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 .

Postado

@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
Postado
#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

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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...