Jump to content

Recommended Posts

Posted
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>

#define	PEAO    0
#define	CAVALO  1
#define	BISPO   2
#define	TORRE   3
#define	RAINHA  4
#define	REI     5
#define	VAZIO   6
#define	BRANCO  0
#define	PRETO   1



int peca[64] = {
    TORRE, CAVALO, BISPO, RAINHA, REI, BISPO, CAVALO, TORRE,
    PEAO, PEAO, PEAO, PEAO, PEAO, PEAO, PEAO, PEAO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    PEAO, PEAO, PEAO, PEAO, PEAO, PEAO, PEAO, PEAO,
    TORRE, CAVALO, BISPO, RAINHA, REI, BISPO, CAVALO, TORRE
};

int cor[64] = {
    PRETO, PRETO, PRETO, PRETO, PRETO, PRETO, PRETO, PRETO,
    PRETO, PRETO, PRETO, PRETO, PRETO, PRETO, PRETO, PRETO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO, VAZIO,
    BRANCO, BRANCO, BRANCO, BRANCO, BRANCO, BRANCO, BRANCO, BRANCO,
    BRANCO, BRANCO, BRANCO, BRANCO, BRANCO, BRANCO, BRANCO, BRANCO
};

void move();


int main()
{
    setlocale(LC_ALL,"");
    tabuleiro();
}

/* tabuleiro */

tabuleiro()
{
    char nomePecas[] = "PCBTDRpcbtdr";//defnir as peças
    int i,s=1;
    for (i = 0; i < 64; i++) {

    if ((i & 7) == 0) {
    printf("   +---+---+---+---+---+---+---+---+\n");
    if (i <= 64) {
    printf(" %d |",s++); //imprimir coluna de 1 a 8
}
}
    if (peca[i] == VAZIO)
    printf("   |");
    else {
    printf(" %c |", nomePecas[peca[i] + (cor[i] == BRANCO ? 0 : 6)]); // Diferenças entre peças brancas e Pretas
}
    if ((i & 7) == 7)
    printf("\n");
}
    printf("   +---+---+---+---+---+---+---+---+\n     a   b   c   d   e   f   g   h\n");

}



//Movimentos
void move()
{
    int i;
    for (i = 0; i < 64; i++)	/* corre todo o vector tabuleiro*/
///       if (cor[i] == lado)

        switch (peca[i])
        {

            case PEAO:

            /**movimento do peao branco*/

            // Movimento para a frente
            if (peca[i+8]==VAZIO){
                peca[i+8]==PEAO;}
            return 0;

            // 2 Movimento para a frente
           if(peca[i+8]==VAZIO)            // Movimento para a frente
            peca[i+8]==PEAO;
            else
                if(peca[i+16]==VAZIO)            // 2 Movimento para a frente
                peca[i+16]==PEAO;
                else
                    if(peca[i]==BRANCO && peca[i+7]==PRETO)// Movimento para capturar a peça esquerda
                    peca[i+7]==PEAO;
                    else
                        if(peca[i]==BRANCO && peca[i+9]==PRETO)  // Movimento para capturar a peça direita
                        peca[i+9]==PEAO;
                        else printf("Movimento inválido!!!\a\n\n");

            return 0;


            /**movimento do peao preto*/


            if(peca[i-8]==VAZIO)            // Movimento para a frente
            peca[i-8]==PEAO;
            else
                if(peca[i-16]==VAZIO)            // 2 Movimento para a frente
                peca[i-16]==PEAO;
                else
                    if((peca[i]==BRANCO) && (peca[i-7]==PRETO))// Movimento para capturar a peça esquerda
                    peca[i-7]==PEAO;
                    else
                        if((peca[i]==BRANCO) && (peca[i-9]==PRETO))  // Movimento para capturar a peça direita
                        peca[i-9]==PEAO;
                        else printf("Movimento inválido!!!\n\n");

            return 0;




                /**movimento do bispo*/

            case BISPO:

            for(i=i+9; i<64 && i+9==VAZIO; i+=9)// diagonal esquerda superior
            peca[i+9]==BISPO;
            break;

            for(i=i-9; i>=0 && i-9==VAZIO; i-=9)// diagonal direita inferior
            peca[i-9]==BISPO;
            break;

            for(i=i+7; i<64 && i+7==VAZIO; i+=7)// diagonal direita superior
            peca[i+7]==BISPO;
            break;

            for(i=i-7; i>=0 && i-7==VAZIO; i-=7)// diagonal esquerda inferior
            peca[i-7]==BISPO;
            break;



            /**movimento da torre*/

            case TORRE:

            for(i=i+8; i<64 && i+8==VAZIO; i+=8)// frente superior
            peca[i+8]==TORRE;
            break;

            for(i=i-8; i>=0 && i-8==VAZIO; i-=8)// diagonal direita inferior
            peca[i-8]==TORRE;
            break;

            for(i=i+1; i<64 && i+1==VAZIO; i+=1)// diagonal direita superior
            peca[i+1]==TORRE;
            break;

            for(i=i-1; i>=0 && i-1==VAZIO; i-=1)// diagonal esquerda inferior
            peca[i-1]==TORRE;
            break;

        /**movimento da rainha*/

            case RAINHA:

            for(i=i+9; i<64 && i+9==VAZIO; i+=9)// diagonal esquerda superior
            peca[i+9]==RAINHA;
            break;

            for(i=i-9; i>=0 && i-9==VAZIO; i-=9)// diagonal direita inferior
            peca[i-9]==RAINHA;
            break;

            for(i=i+7; i<64 && i+7==VAZIO; i+=7)// diagonal direita superior
            peca[i+7]==RAINHA;
            break;

            for(i=i-7; i>=0 && i-7==VAZIO; i-=7)// diagonal esquerda inferior
            peca[i-7]==RAINHA;
            break;

            for(i=i+8; i<64 && i+8==VAZIO; i+=8)// frente superior
            peca[i+8]==RAINHA;
            break;

            for(i=i-8; i>=0 && i-8==VAZIO; i-=8)// diagonal direita inferior
            peca[i-8]==RAINHA;
            break;

            for(i=i+1; i<64 && i+1==VAZIO; i+=1)// diagonal direita superior
            peca[i+1]==RAINHA;
            break;

            for(i=i-1; i>=0 && i-1==VAZIO; i-=1)// diagonal esquerda inferior
            peca[i-1]==RAINHA;
            break;

        //fazer movimentos para comer peças

            case REI:

            if((i+9=VAZIO) && (i<64))// diagonal esquerda superior
            peca[i+9]==REI;
                else
                if((i>=0) && (i-9==VAZIO))// diagonal direita inferior
                peca[i-9]==REI;
                else
                    if((i<64) && (i+7==VAZIO))// diagonal direita superior
                    peca[i+7]==REI;
                    else
                        if((i>=0) && (i-7==VAZIO))// diagonal esquerda inferior
                        peca[i-7]==REI;
                        else
                            if((i<64) && (i+8==VAZIO))// frente superior
                            peca[i+8]==REI;
                            else
                                if((i>=0) && (i-8==VAZIO))// diagonal direita inferior
                                peca[i-8]==REI;
                                else
                                    if((i<64) && (i+1==VAZIO))// diagonal direita superior
                                    peca[i+1]==REI;
                                    else
                                        if((i>=0) && (i-1==VAZIO))// diagonal esquerda inferior
                                        peca[i-1]==REI;
            return 0;
        }
}

        /**avaliação*/

Precisava que isso compila-se :S puxa alguem pdoe dar uma maozinha :S

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.