Ir para conteúdo
Fórum Script Brasil
  • 0

Jogo de Xadrez


djfarinha

Pergunta

JOGO DE XADREZ

Bom dia , sou estudante de T.I, e venho a este forum para propor um projeto a todos os programadores.

Certo dia estava pesquisado na internet o codigo fonte de um jogo de xadrez, e para minha surpresa, adivinha não encontrei nada, então resolvi eu mesmo fazer,

e estva tudo dando certo até que um dia quando terminei o esquema de movimentação das peças surgiu um problema, descobri que para o jogo ter a opção de o jogador disputar uma partida contra o computador teria que usar I.A (Inteligencia artificial), e foi ai que ferro tudo, durante um mes dechei o jogo de lado até que hoje não sei porque resolvi voltar a trabalhar no programa.

Primeiro quero fazer tudo em C, e mais para frente quando tudo estiver pronto passar para uma linguagem orientada a objetos.

A movimentação das peças já esta pronta, oque falta é, definir quando o rei está em cheque ,definir algumas regras para os peoes ea parte de jogar contra o PC.

O algoritimo

Qualquer um que conseguir algum avanço no codigo favor postar para os demais OK.

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

 char tabuleiro[10][10]=
{  '-', '1', '2', '3', '4', '5', '6', '7', '8', '-',    /*TABULEIRO,  USEI UMA MATRIZ  10 X 10*/
   '1', 't', 'c', 'b', 'k', 'q', 'b', 'c', 't', '|',
   '2', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', '|',
   '3', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '|',
   '4', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '|',
   '5', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '|',
   '6', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '|',
   '7', 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P', '|',
   '8', 'T', 'C', 'B', 'Q', 'K', 'B', 'C', 'T', '|',
   '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'
};


void jogador1(void);

void main(void)
{
while(1){
 jogador1();
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void jogador1(void)
{
   int pesa;
   int x,y,z,h;
   unsigned  int l,c;
   int t,i;


for(t=0; t<10; ++t) {                 /*exibe o tabuleiro*/
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
  }


printf("Digite a peça que deseja movimentar (ex: linha:7 e coluna:1)  ");
scanf("%d%d",&z,&h);


////////////////////////////////////////////////////////////////////////////////

/*TORRE*/
if (tabuleiro[z][h]=='T'){
/*cima*/
l=z-1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l-1;
}
} 
/*baixo*/
l=z+1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l+1;
}
} 
/*esquerda*/
l=z;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
c=c-1;
}
} 
/*direita*/
l=z;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
c=c+1;
}
} 

for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
}

printf("Digite o local que deseja movimentar a pesa ");
scanf("%d%d",&x,&y);
 ///////////////////////////////
if ((tabuleiro[x][y]=='x') |  (tabuleiro[x][y]=='t')  |  (tabuleiro[x][y]=='c')  |  (tabuleiro[x][y]=='b')  |  (tabuleiro[x][y]=='q') |  (tabuleiro[x][y]=='p')){
tabuleiro[x][y]=tabuleiro[z][h];
tabuleiro[z][h]=' ';
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
if(tabuleiro[t][i]=='x') {
tabuleiro[t][i]=' ';
}
else

printf("%3c",tabuleiro[t][i]);
printf("\n");
}
}



 }

////////////////////////////////////////////////////////////////////////////////
/*CAVALO*/
if (tabuleiro[z][h]=='C'){

/*cima esquerda*/
l=z-2;
c=h-1;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}

/*baixo esquerda*/
l=z+2;
c=h-1;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}

/*cima direita*/
l=z-2;
c=h+1;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}

/*baixo direito*/
l=z+2;
c=h+1;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}

/*esquerda baixo*/
l=z+1;
c=h-2;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}
/*esquerda cima*/
l=z-1;
c=h-2;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}
/*direita baixo*/
l=z+1;
c=h+2;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}
/*direita cima*/
l=z-1;
c=h+2;
if(tabuleiro[l][c]==' '){
tabuleiro[l][c]='x';
}
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
  }
printf("Digite o local que deseja movimentar a pesa ");
scanf("%d%d",&x,&y);
 ///////////////////////////////
if  ((tabuleiro[x][y]=='x') |  (tabuleiro[x][y]=='t')  |  (tabuleiro[x][y]=='c')  |  (tabuleiro[x][y]=='b')  |  (tabuleiro[x][y]=='q') |  (tabuleiro[x][y]=='p')) {
tabuleiro[x][y]=tabuleiro[z][h];
tabuleiro[z][h]=' ';
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
if(tabuleiro[t][i]=='x') {
tabuleiro[t][i]=' ';
}
else

printf("%3c",tabuleiro[t][i]);
printf("\n");
}
}




 }
////////////////////////////////////////////////////////////////////////////////
/*BISPO*/
if (tabuleiro[z][h]=='B'){
/*cima direita*/
l=z-1;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l-1;
c=c+1;
}
}
/*cima esquerda*/
l=z-1;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l-1;
c=c-1;
}
}
/*baixo direita*/
l=z+1;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l+1;
c=c+1;
}
}
/*baixo esquerda*/
l=z+1;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l+1;
c=c-1;
}
}
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
  }
printf("Digite o local que deseja movimentar a pesa ");
scanf("%d%d",&x,&y);
 ///////////////////////////////
if  ((tabuleiro[x][y]=='x') |  (tabuleiro[x][y]=='t')  |  (tabuleiro[x][y]=='c')  |  (tabuleiro[x][y]=='b')  |  (tabuleiro[x][y]=='q') |  (tabuleiro[x][y]=='p')) {
tabuleiro[x][y]=tabuleiro[z][h];
tabuleiro[z][h]=' ';
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
if(tabuleiro[t][i]=='x') {
tabuleiro[t][i]=' ';
}
else

printf("%3c",tabuleiro[t][i]);
printf("\n");
}
}


 }
////////////////////////////////////////////////////////////////////////////////
/*RAINHA*/
if (tabuleiro[z][h]=='Q'){
 /*cima*/
l=z-1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l-1;
}
} 
/*baixo*/
l=z+1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l+1;
}
} 
/*esquerda*/
l=z;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
c=c-1;
}
} 
/*direita*/
l=z;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
c=c+1;
}
} 
/*cima direita*/
l=z-1;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l-1;
c=c+1;
}
}
/*cima esquerda*/
l=z-1;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l-1;
c=c-1;
}
}
/*baixo direita*/
l=z+1;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l+1;
c=c+1;
}
}
/*baixo esquerda*/
l=z+1;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
while(tabuleiro[l][c] == ' ') {
tabuleiro[l][c]='x';
l=l+1;
c=c-1;
}
}
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
  }
  printf("Digite o local que deseja movimentar a pesa ");
scanf("%d%d",&x,&y);
 ///////////////////////////////
if  ((tabuleiro[x][y]=='x') |  (tabuleiro[x][y]=='t')  |  (tabuleiro[x][y]=='c')  |  (tabuleiro[x][y]=='b')  |  (tabuleiro[x][y]=='q') |  (tabuleiro[x][y]=='p')) {
tabuleiro[x][y]=tabuleiro[z][h];
tabuleiro[z][h]=' ';
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
if(tabuleiro[t][i]=='x') {
tabuleiro[t][i]=' ';
}
else

printf("%3c",tabuleiro[t][i]);
printf("\n");
}
}

   /////////////////////////////////////////

 }

////////////////////////////////////////////////////////////////////////////////
/*REI*/
if (tabuleiro[z][h]=='K'){
  /*cima*/
l=z-1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
/*baixo*/
l=z+1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
/*esquerda*/
l=z;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
} 
/*direita*/
l=z;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
  /*cima direita*/
l=z-1;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
/*cima esquerda*/
l=z-1;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
/*baixo direita*/
l=z+1;
c=h+1;
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
/*baixo esquerda*/
l=z+1;
c=h-1;
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
  }
  printf("Digite o local que deseja movimentar a pesa ");
scanf("%d%d",&x,&y);
 ///////////////////////////////
if  ((tabuleiro[x][y]=='x') |  (tabuleiro[x][y]=='t')  |  (tabuleiro[x][y]=='c')  |  (tabuleiro[x][y]=='b')  |  (tabuleiro[x][y]=='q') |  (tabuleiro[x][y]=='p')) {
tabuleiro[x][y]=tabuleiro[z][h];
tabuleiro[z][h]=' ';
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
if(tabuleiro[t][i]=='x') {
tabuleiro[t][i]=' ';
}
else

printf("%3c",tabuleiro[t][i]);
printf("\n");
}
}

 }
////////////////////////////////////////////////////////////////////////////////
/*PEAO*/
if (tabuleiro[z][h]=='P'){
if (z==7){

 /*cima*/
l=z-2;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
l=z-1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
}
else
l=z-1;
c=h; 
if (tabuleiro[l][c] ==' ' ) {
tabuleiro[l][c]='x';
}
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
printf("%3c",tabuleiro[t][i]);
printf("\n");
  }
 printf("Digite o local que deseja movimentar a pesa ");
scanf("%d%d",&x,&y);
 ///////////////////////////////
if  ((tabuleiro[x][y]=='x') |  (tabuleiro[x][y]=='t')  |  (tabuleiro[x][y]=='c')  |  (tabuleiro[x][y]=='b')  |  (tabuleiro[x][y]=='q') |  (tabuleiro[x][y]=='p')) {
tabuleiro[x][y]=tabuleiro[z][h];
tabuleiro[z][h]=' ';
for(t=0; t<10; ++t) {
for(i=0; i<10; ++i)
if(tabuleiro[t][i]=='x') {
tabuleiro[t][i]=' ';
}
else

printf("%3c",tabuleiro[t][i]);
printf("\n");
}
}


}


}

Email para contato :rafaelsilva46@gmail.com

Editado por djfarinha
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Escrevi do zero.
Adicionei as jogadas de Roque e "De Passagem"

E primeiro as brancas podem jogar,depois as pretas.

fiz numeros contra letras, ficou assim:

/*JOGO DE XADREZ*/

#include <stdio.h>
#include <stdlib.h>

int Board[8][8] = 
/*ESTE TABULEIRO ESTÁ REPRESENTADO POR NÚMEROS (8×8).
→NUMEROS PARES(BRANCAS), NUMEROS ÍMPARES(PRETAS).
10(peão) 20(bispo) 30(cavalo) 40(torre) 50(rainha) 60(rei)*/
{
 41, 31, 21, 51, 61, 21, 31, 41,
 11, 11, 11, 11, 11, 11, 11, 11,
 00, 00, 00, 00, 00, 00, 00, 00,
 00, 00, 00, 00, 00, 00, 00, 00,
 00, 00, 00, 00, 00, 00, 00, 00,
 00, 00, 00, 00, 00, 00, 00, 00,
 10, 10, 10, 10, 10, 10, 10, 10,
 40, 30, 20, 50, 60, 20, 30, 40,
};

//FUNÇÕES:
void PrintBoard( void );//Imprime o Tabuleiro para o jogador.
void SelectPiece( int vez, bool &RokB1, bool &RokP1, bool &RokB2, bool &RokP2, int &DePassagemL, int &DePassagemC );//Seleciona e move uma peça.
void BoardClean ( void );//Limpa Tabuleiro(ameaça das peças representada por outros números).
//FUNÇÕES!

int main()
{
	int vez = 0;
	bool RokeBranco1, RokePreto1, RokeBranco2, RokePreto2;
	int el_passantL, el_passantC;
	while(1)
	{
		PrintBoard();
		SelectPiece( vez, RokeBranco1, RokePreto1, RokeBranco2, RokePreto2, el_passantL, el_passantC );
		if (vez == 0) vez = 1; else vez = 0;
	}
	return 0;
}

//CORPOS DAS FUNÇÕES:
void PrintBoard( void )
{
	printf("\n*| a b c d e f g h|*\n--------------------\n");
	for(int ver=0; ver<8; ver++)
	{
		printf("%d|", 8-ver);
		for(int hor=0; hor<8; hor++)
		{
			switch( Board[ver][hor] )
			{
				case 2: printf(" X"); break;//Seleção Branca.
				case 3: printf(" X"); break;//Seleção Preta.

				case 10: printf(".1"); break;//Peão Branco.
				case 11: printf(".A"); break;//Peão Preto.
				case 20: printf(".2"); break;//Bispo Branco.
				case 21: printf(".B"); break;//Bispo Preto.
				case 30: printf(".3"); break;//Cavalo Branco.
				case 31: printf(".C"); break;//Cavalo Preto.
				case 40: printf(".4"); break;//Torre Branca.
				case 41: printf(".D"); break;//Torre Preta.
				case 50: printf(".5"); break;//Rainha Branca.
				case 51: printf(".E"); break;//Rainha Preta.
				case 60: printf(".6"); break;//Rei Branco.
				case 61: printf(".F"); break;//Rei Preto.

				case 12: printf("!1"); break;//Peão Branco Ameaçado.
				case 13: printf("!A"); break;//Peão Preto Ameaçado.
				case 22: printf("!2"); break;//Bispo Branco Ameaçado.
				case 23: printf("!B"); break;//Bispo Preto Ameaçado.
				case 32: printf("!3"); break;//Cavalo Branco Ameaçado.
				case 33: printf("!C"); break;//Cavalo Preto Ameaçado.
				case 42: printf("!4"); break;//Torre Branca Ameaçada.
				case 43: printf("!D"); break;//Torre Preta Ameaçada.
				case 52: printf("!5"); break;//Rainha Branca Ameaçada.
				case 53: printf("!E"); break;//Rainha Preta Ameaçada.
				case 62: printf("!6"); break;//Rei Branco em Cheque.
				case 63: printf("!F"); break;//Rei Preto em Cheque.

				default: if ((ver+hor) % 2 ==0) printf(" ."); else printf(" :"); break;//Case Vazia.
			}
		}
		printf("|%d\n", 8-ver);
	}
	printf("--------------------\n*| 1 2 3 4 5 6 7 8|*\n");
}

void SelectPiece( int vez, bool &RokB1, bool &RokP1, bool &RokB2, bool &RokP2, int &DePassagemL, int &DePassagemC )
{
		/***********************************
	↓Selecionar a peça para movê-la↓
	↓↓Mover a Peça para a nova posição↓↓
	***********************************/

	int linha=0, coluna=0, DestLinha=0, DestColuna=0, peca, hor, ver;

	PONTO1:
	//↓Selecionar uma peça:
	do
	{
		printf("\nDigite qual peça deseja mover(exemplo: 2(linha) 4(coluna))→ ");
		scanf("%d%d", &linha, &coluna);

		//Checa se a casa selecionada é válida:
		if((linha<1 || linha >8)||(coluna<1 || coluna>8))
		{
			printf("\nVocê digitou errado!Tente novamente!\n");
		}
		else
		//Checa se a casa selecionada está vazia:
		if (Board[8-linha][coluna-1] == 0)
		{
			printf("\nVocê selecionou uma casa vazia!Selecione uma peça!\n");
			linha = 0, coluna = 0;//←isso fará o laço repetir!
		}
		else
		//Checa se é a vez das brancas uma peça branca deve ser selecionada e vice versa:
		if (((Board[8-linha][coluna-1] % 2 == 0)&&(vez == 1))||((Board[8-linha][coluna-1] % 2 != 0)&&(vez == 0)))
		{
			printf("\nVocê não pode selecionar uma peça do oponente!Seleciona as suas!\n");
			linha = 0, coluna = 0;//←isso fará o laço repetir!
		}
	}while ((linha<1 || linha >8)||(coluna<1 || coluna>8));

	linha = 8-linha;//se digitado 1, deverá ser acessado 0 em "Board[0][].
	coluna -= 1;//se digitado 1, deverá ser acessado 0 em "Board[][0].

	//Nesses ifis↓ seleciona a peça e mostra seus possiveis destinos:

	if (Board[linha][coluna] == 10)//Peão Branco:
	{
		if (Board[linha-1][coluna] == 0)
		{
			Board[linha-1][coluna] = 2;
			if ((Board[linha-2][coluna] == 0)&&(linha == 6))
			Board[linha-2][coluna] = 2;
		}
		if ((linha<7)&&(coluna<7)) if ((Board[linha-1][coluna+1] % 2 !=0)&&(Board[linha-1][coluna+1] > 2)) Board[linha-1][coluna+1] += 2;
		if ((linha<7)&&(coluna>0)) if ((Board[linha-1][coluna-1] % 2 !=0)&&(Board[linha-1][coluna-1] > 2)) Board[linha-1][coluna-1] += 2;

		if((linha-1 == DePassagemL)&&(coluna+1 == DePassagemC)) Board[linha-1][coluna+1] = 2;
		if((linha-1 == DePassagemL)&&(coluna-1 == DePassagemC)) Board[linha-1][coluna-1] = 2;

		peca = Board[linha][coluna];
	}

	if (Board[linha][coluna] == 11)//Peão Preto:
	{
		if (Board[linha+1][coluna] == 0)
		{
			Board[linha+1][coluna] = 3;
			if ((Board[linha+2][coluna] == 0)&&(linha == 1))
			Board[linha+2][coluna] = 3;
		}
		if ((linha<7)&&(coluna<7)) if ((Board[linha+1][coluna+1] % 2 ==0)&&(Board[linha+1][coluna+1] > 3)) Board[linha+1][coluna+1] += 2;
		if ((linha<7)&&(coluna>0)) if ((Board[linha+1][coluna-1] % 2 ==0)&&(Board[linha+1][coluna-1] > 3)) Board[linha+1][coluna-1] += 2;

		if((linha+1 == DePassagemL)&&(coluna+1 == DePassagemC)) Board[linha+1][coluna+1] = 3;
		if((linha+1 == DePassagemL)&&(coluna-1 == DePassagemC)) Board[linha+1][coluna-1] = 3;

		peca = Board[linha][coluna];
	}

	if ((Board[linha][coluna] == 20+vez)||(Board[linha][coluna] == 50+vez))//Bispo e Rainha Branca e Preta:
	{
		hor = coluna;//Cima Esquerda
		for(ver = linha-1;ver>-1;ver--)
		{
			if (hor == 0) break;
			hor--;
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
			 if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
			 if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		hor = coluna;//Cima Direita
		for(ver = linha-1;ver>-1;ver--)
		{
			if (hor == 7) break;
			hor++;
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		hor = coluna;//Baixo Esquerda
		for(ver = linha+1;ver<8;ver++)
		{
			if (hor == 0) break;
			hor--;
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		hor = coluna;//Baixo Direita
		for(ver = linha+1;ver<8;ver++)
		{
			if (hor == 7) break;
			hor++;
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		peca = Board[linha][coluna];
	}

	if ((Board[linha][coluna] == 40+vez)||(Board[linha][coluna] == 50+vez))//Torres ou Rainha Brancas e Pretas:
	{
		hor = coluna;//Cima:
		for(ver = linha-1;ver>-1;ver--)
		{
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		hor = coluna;//Baixo
		for(ver = linha+1;ver<8;ver++)
		{
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		ver = linha;//Esquerda:
		for(hor = coluna-1;hor>-1;hor--)
		{
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		ver = linha;//Direita:
		for(hor = coluna+1;hor<8;hor++)
		{
			if (Board[ver][hor] == 0) Board[ver][hor] = 2+vez;
			if (vez == 0)
			{
				if (((Board[ver][hor] == 10)||(Board[ver][hor] > 19))&&(Board[ver][hor] % 2 == 0)) break;
				if ((Board[ver][hor] % 2 != 0)) { Board[ver][hor] += 2; break; }
			}
			if (vez == 1)
			{
				if (((Board[ver][hor] == 11)||(Board[ver][hor] > 20))&&(Board[ver][hor] % 2 != 0)) break;
				if ((Board[ver][hor] % 2 == 0)) { Board[ver][hor] += 2; break; }
			}
		}

		peca = Board[linha][coluna];
	}

	if (Board[linha][coluna] == 30+vez)//Cavalo Branco e Preto.
	{
		//Cima esquerda:
		if ((linha > 1)&&(coluna > 0))
		{
			if (Board[linha-2][coluna-1] == 0) Board[linha-2][coluna-1] = 2+vez;
			if ((Board[linha-2][coluna-1] % 2 !=0)&&(vez == 0)) Board[linha-2][coluna-1] += 2;
			if ((Board[linha-2][coluna-1] % 2 ==0)&&(vez == 1)) Board[linha-2][coluna-1] += 2;
		}

		//Cima direita:
		if ((linha > 1)&&(coluna < 7))
		{
			if (Board[linha-2][coluna+1] == 0) Board[linha-2][coluna+1] = 2+vez;
			if ((Board[linha-2][coluna+1] % 2 !=0)&&(vez == 0)) Board[linha-2][coluna+1] += 2;
			if ((Board[linha-2][coluna+1] % 2 ==0)&&(vez == 1)) Board[linha-2][coluna+1] += 2;
		}

		//Baixo direita:
		if ((linha < 6)&&(coluna < 7))
		{
			if (Board[linha+2][coluna+1] == 0) Board[linha+2][coluna+1] = 2+vez;
			if ((Board[linha+2][coluna+1] % 2 !=0)&&(vez == 0)) Board[linha+2][coluna+1] += 2;
			if ((Board[linha+2][coluna+1] % 2 ==0)&&(vez == 1)) Board[linha+2][coluna+1] += 2;
		}

		//Baixo esquerda:
		if ((linha < 6)&&(coluna > 0))
		{
			if (Board[linha+2][coluna-1] == 0) Board[linha+2][coluna-1] = 2+vez;
			if ((Board[linha+2][coluna-1] % 2 !=0)&&(vez == 0)) Board[linha-2][coluna+1] += 2;
			if ((Board[linha+2][coluna-1] % 2 ==0)&&(vez == 1)) Board[linha-2][coluna+1] += 2;
		}

		//Esquerda cima:
		if ((linha > 0)&&(coluna > 1))
		{
			if (Board[linha-1][coluna-2] == 0) Board[linha-1][coluna-2] = 2+vez;
			if ((Board[linha-1][coluna-2] % 2 !=0)&&(vez == 0)) Board[linha-1][coluna-2] += 2;
			if ((Board[linha-1][coluna-2] % 2 ==0)&&(vez == 1)) Board[linha-1][coluna-2] += 2;
		}

		//Direita cima:
		if ((linha > 0)&&(coluna < 6))
		{
			if (Board[linha-1][coluna+2] == 0) Board[linha-1][coluna+2] = 2+vez;
			if ((Board[linha-1][coluna+2] % 2 !=0)&&(vez == 0)) Board[linha-1][coluna+2] += 2;
			if ((Board[linha-1][coluna+2] % 2 ==0)&&(vez == 1)) Board[linha-1][coluna+2] += 2;
		}

		//Esquerda baixo:
		if ((linha < 7)&&(coluna > 1))
		{
			if (Board[linha+1][coluna-2] == 0) Board[linha+1][coluna-2] = 2+vez;
			if ((Board[linha+1][coluna-2] % 2 !=0)&&(vez == 0)) Board[linha+1][coluna-2] += 2;
			if ((Board[linha+1][coluna-2] % 2 ==0)&&(vez == 1)) Board[linha+1][coluna-2] += 2;
		}

		//Direita baixo:
		if ((linha < 7)&&(coluna < 6))
		{
			if (Board[linha+1][coluna+2] == 0) Board[linha+1][coluna+2] = 2+vez;
			if ((Board[linha+1][coluna+2] % 2 !=0)&&(vez == 0)) Board[linha+1][coluna+2] += 2;
			if ((Board[linha+1][coluna+2] % 2 ==0)&&(vez == 1)) Board[linha+1][coluna+2] += 2;
		}

		peca = Board[linha][coluna];
	}

	if (Board[linha][coluna] == 60+vez)//Reis↓:
	{
		//Casas vazias:
		if (Board[linha][coluna-1] == 0) Board[linha][coluna-1] = 2+vez;//Cima.
		if (Board[linha][coluna+1] == 0) Board[linha][coluna+1] = 2+vez;//Baixo.
		if (Board[linha-1][coluna] == 0) Board[linha-1][coluna] = 2+vez;//Esquerda.
		if (Board[linha+1][coluna] == 0) Board[linha+1][coluna] = 2+vez;//Direita.
		if (Board[linha-1][coluna-1] == 0) Board[linha-1][coluna-1] = 2+vez;//Diagonal cima esquerda.
		if (Board[linha+1][coluna-1] == 0) Board[linha+1][coluna-1] = 2+vez;//Diagonal cima direita.
		if (Board[linha+1][coluna+1] == 0) Board[linha+1][coluna+1] = 2+vez;//Diagonal baixo direita.
		if (Board[linha-1][coluna+1] == 0) Board[linha-1][coluna+1] = 2+vez;//Diagonal baixo esquerda.

		//Peças do adersário brancas:
		if ((Board[linha][coluna-1] %2 == 0)&&(vez == 1)) Board[linha][coluna-1] += 2;//Cima.
		if ((Board[linha][coluna+1] %2 == 0)&&(vez == 1)) Board[linha][coluna+1] += 2;//Baixo.
		if ((Board[linha-1][coluna] %2 == 0)&&(vez == 1)) Board[linha-1][coluna] += 2;//Esquerda.
		if ((Board[linha+1][coluna] %2 == 0)&&(vez == 1)) Board[linha+1][coluna] += 2;//Direita.
		if ((Board[linha-1][coluna-1] %2 == 0)&&(vez == 1)) Board[linha-1][coluna-1] += 2;//Diagonal cima esquerda.
		if ((Board[linha+1][coluna-1] %2 == 0)&&(vez == 1)) Board[linha+1][coluna-1] += 2;//Diagonal cima direita.
		if ((Board[linha+1][coluna+1] %2 == 0)&&(vez == 1)) Board[linha+1][coluna+1] += 2;//Diagonal baixo direita.
		if ((Board[linha-1][coluna+1] %2 == 0)&&(vez == 1)) Board[linha-1][coluna+1] += 2;//Diagonal baixo esquerda.

		//Peças do adersário pretas:
		if ((Board[linha][coluna-1] %2 != 0)&&(vez == 0)) Board[linha][coluna-1] += 2;//Cima.
		if ((Board[linha][coluna+1] %2 != 0)&&(vez == 0)) Board[linha][coluna+1] += 2;//Baixo.
		if ((Board[linha-1][coluna] %2 != 0)&&(vez == 0)) Board[linha-1][coluna] += 2;//Esquerda.
		if ((Board[linha+1][coluna] %2 != 0)&&(vez == 0)) Board[linha+1][coluna] += 2;//Direita.
		if ((Board[linha-1][coluna-1] %2 != 0)&&(vez == 0)) Board[linha-1][coluna-1] += 2;//Diagonal cima esquerda.
		if ((Board[linha+1][coluna-1] %2 != 0)&&(vez == 0)) Board[linha+1][coluna-1] += 2;//Diagonal cima direita.
		if ((Board[linha+1][coluna+1] %2 != 0)&&(vez == 0)) Board[linha+1][coluna+1] += 2;//Diagonal baixo direita.
		if ((Board[linha-1][coluna+1] %2 != 0)&&(vez == 0)) Board[linha-1][coluna+1] += 2;//Diagonal baixo esquerda.

		peca = Board[linha][coluna];

		if (vez == 0)//Roque:
		{
			if (RokB1 == 1)
			{ if ((Board[linha][coluna-2] == 0)&&(Board[linha][coluna-1] == 2+vez)) Board[linha][coluna-2] = 2+vez;/*Roque Esquerdo.*/ }
			if (RokB2 == 1)
			{ if ((Board[linha][coluna+2] == 0)&&(Board[linha][coluna+1] == 2+vez)) Board[linha][coluna+2] = 2+vez;/*Roque Direito.*/ }
		}
		if (vez == 1)
		{
			if (RokP1 == 1)
			{ if ((Board[linha][coluna-2] == 0)&&(Board[linha][coluna-1] == 2+vez)) Board[linha][coluna-2] = 2+vez;/*Roque Esquerdo.*/ }
			if (RokP2 == 1)
			{ if ((Board[linha][coluna+2] == 0)&&(Board[linha][coluna+1] == 2+vez)) Board[linha][coluna+2] = 2+vez;/*Roque Direito.*/ }
		}
	}//Reis↑!

	PrintBoard();

	/***********************************
	↑Selecionar a peça para movê-la↑
	↓Mover a Peça para a nova posição↓
	***********************************/

	do
	{
		printf("\nDigite o local que deseja mover a peça→ ");
		scanf("%d%d", &DestLinha, &DestColuna);

		//Checa se foi digitado um número válido:
		if ((DestLinha<1 || DestLinha >8)||(DestColuna<1 || DestColuna>8))
		{
			printf("\nVocê digitou errado!Tente novamente!\n");
		}
		else
		//Checa se a casa selecionada está vazia:
		if (Board[8-DestLinha][DestColuna-1] == 0)
		{
			printf("\nVocê selecionou uma casa inválida, selecione o 'X' ou uma outra peça!\n");
		}
		else
		//Checa se o jogador escolheu um local com uma peça aliada:
		for(int Blc = 6;Blc<57;Blc++)//Checa quais peças estão ameaçadas(14,15,24,25,34,35,44,45,46,47,54,55,56,57).
		{
			if (Blc % 2 ==0){ Blc += 8; }

			//Se a casa não estiver vazia, e não for uma casa selecionada pora possivel jogada.
			if ((Board[8-DestLinha][DestColuna-1] >0)&&(Board[8-DestLinha][DestColuna-1] != 2+vez))
			//Se escolheu peça branca na vez das brancas, ou escolheu peça preta na vez das pretas:
			if (((Board[8-DestLinha][DestColuna-1] % 2 == 0)&&(vez == 0)) || ((Board[8-DestLinha][DestColuna-1] % 2 != 0)&&(vez == 1)))
			{
				printf("\nVocê não pode comer uma peça da sua 'cor'! Tente de novo ou selecione outra.\n");
				linha = 0, coluna = 0, DestLinha = 0, DestColuna = 0, peca = 0;
				BoardClean();
				PrintBoard();
				goto PONTO1;
			}
		}
	}while ((DestLinha<1 || DestLinha >8)||(DestColuna<1 || DestColuna>8));

	DestLinha = 8-DestLinha;//inverte os numeros ( 8 equivale a 0, 7 equivale a 1, 6 equivale a 2 ...)
	DestColuna -= 1;//se digitado 1, deverá ser acessado 0 em "Board[][0].

	//↓Move a peça:
	if ((Board[DestLinha][DestColuna] == 2)||(Board[DestLinha][DestColuna] == 3))
	//Se uma casa selecionada:
	{
		Board[DestLinha][DestColuna] = peca;//Aloca a peça em seu destino.
		Board[linha][coluna] = 0;//Retira a peça de sua origem.
		if (( DestLinha == DePassagemL )&&( DestColuna == DePassagemC ))
		{
			if ( vez == 0)Board[DePassagemL+1][DePassagemC] = 0;
			if ( vez == 1)Board[DePassagemL-1][DePassagemC] = 0;
		}

		//Ativa a Jogada "El_passant" no Peão:
		if (( peca == 10 )&&(DestLinha == 4))
		{
			DePassagemL = DestLinha+1, DePassagemC = DestColuna;
			printf("De Passagem = linha %d, coluna %d\n", DePassagemL, DePassagemC );
		}
		else if (( peca == 11 )&&(DestLinha == 3))
		{
			DePassagemL = DestLinha-1, DePassagemC = DestColuna;
			printf("De Passagem = linha %d, coluna %d\n", DePassagemL, DePassagemC );
		}
		else{ DePassagemL = -1, DePassagemC = -1; }

	}//ou uma peça do oponente é escolhida.
	else
	{
		for(int Blc = 4;Blc<54;Blc++)//Checa quais peças estão ameaçadas(12,13,22,23,32,33,42,43,42,43,52,53).
		{
			if (Blc % 2 == 0){ Blc += 8; }

			if (Board[DestLinha][DestColuna] == Blc)
			{
				Board[DestLinha][DestColuna] = peca;//Aloca a peça em seu destino.
				Board[linha][coluna] = 0;//Retira a peça de sua origem.
			}
		}
	}

	//Se um Rei ou uma Torre se moveu (Roques):
	if ((peca == 40+vez)||(peca == 60+vez))
	if(((RokB1 == 1)||(RokB2 == 1))||((RokP1 == 1)||(RokP2 == 1)))
	{
		if (peca == 60+vez)
		{
			if (peca %2 ==0)
			{
				if ((Board[7][2] == 60)&&(RokB1 == 1))
				{
					Board[7][0] = 0;
					Board[7][3] = 40;
				}
				if ((Board[7][6] == 60)&&(RokB2 == 1))
				{
					Board[7][7] = 0;
					Board[7][5] = 40;
				}
				RokB1 = 0, RokB2 = 0;
			}
			if (peca %2 !=0)
			{
				if ((Board[0][2] == 61)&&(RokP1 == 1))
				{
					Board[0][0] = 0;
					Board[0][3] = 41;
				}
				if ((Board[0][6] == 61)&&(RokP2 == 1))
				{
					Board[0][7] = 0;
					Board[0][5] = 41;
				}
				RokP1 = 0, RokP2 = 0;
			}
		}
		else
		{
			if (peca %2 == 0)
			{
				if (coluna == 7) RokB2 = 0;
				if (coluna == 0) RokB1 = 0;
			}
			if (peca %2 != 0)
			{
				if (coluna == 7) RokP2 = 0;
				if (coluna == 0) RokP1 = 0;
			}
		}
	}

	/***********************************
	↑↑Selecionar a peça para movê-la↑↑
	↑Mover a Peça para a nova posição↑
	***********************************/

	BoardClean();//Limpa o Tabuleiro das ameaças!

	if (((Board[DestLinha][DestColuna] == 10)&&(DestLinha == 0))||((Board[DestLinha][DestColuna] == 11)&&(DestLinha == 7)))//Se um peão chegar ao lado oposto:
	{
		printf("***Parabéns!***\nSeu peão chegou ao lado oposto, em qual peça gostaria de transformá-lo?");
		PONTO4:
		printf("\n1→bispo. 2→cavalo. 3→torre. 4→rainha.\n→");
		scanf("%d", &Board[DestLinha][DestColuna]);
		switch( Board[DestLinha][DestColuna] )
		{
			case 1: Board[DestLinha][DestColuna] = 20+vez; break;
			case 2: Board[DestLinha][DestColuna] = 30+vez; break;
			case 3: Board[DestLinha][DestColuna] = 40+vez; break;
			case 4: Board[DestLinha][DestColuna] = 50+vez; break;
			default: { printf("\nOpção inválinda!tente novamente!"); goto PONTO4; } break;
		}
	}
}

void BoardClean ( void )
{
	for(int ver=0; ver<8; ver++)//Limpa o Tabuleiro de ameaças:
	{
		for(int hor=0; hor<8; hor++)
		{
			if ((Board[ver][hor] == 2)||(Board[ver][hor] == 3))
			Board[ver][hor] = 0;
			
			for(int Blc = 4;Blc<64;Blc++)//Checa quais peças estão ameaçadas(12,13,22,23,32,33,42,43,52,53,62,63).
			{
				if (Blc % 2 ==0){ Blc += 8; }

				if (Board[ver][hor] == Blc)
				{
					Board[ver][hor] -=2;//Desameaça a peça.
				}
			}
		}
	}
}
//CORPOS DAS FUNÇÕES!
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

   Oi Pessoal gostaria de saber se vocês consegue me ajudar, nesse caso de programação.

   Gostaria de saber como declarar o laço de vitória e também como colocar jogador x computador ?


#include <stdlib.h>
 

char xadrez [3] [3] = 
            
            {' ', ' ', ' '},
            {' ', ' ', ' '},
            {' ', ' ', ' '}        
            };


int contareibranco = 0, contatorre1branco = 0, contatorre2branco = 0;
int contareipreto = 0, contatorre1preto = 0, contatorre2preto = 0;

int pintarTelaTexto () {  // coloquei este comando para tornar o tabuleiro visivel 
    system("CLS");    
    int lin, col, r; 
    for (lin=0; lin < 3; lin++) {  //quantidade de linhas do tabuleiro
        for (r = 0; r < 3; r++) {
            for (col=0; col < 3; col++) {  //quantidade de coluna do tabuleiro
                char peca = xadrez[lin] [col]; //inclusao da peca na determinada linha e coluna
                char letra = ( (lin+col) %2 == 0) ? '\xB2' : ' ';   // aqui onde coloquei as cores do xadres preto e branco
                letra = ( r == 1 && peca != ' ') ? peca : letra; // essa parte não se trata de um variavel que retorna dois valores e sim operador ternario , maneira de não usar if 
                if ( (lin + col) %2==0){
                    printf("\xB2\xB2\%c\xB2\xB2", letra);  //onde centralizei as pecas no xadrez 
                } else {
                    printf("  %c   ", letra); // onde centralizei a peca no xadrez 
                }
            }    
            printf("\n");
        }
        printf("\n");
    }
}


int moverpecas (int lo, int ld, int colo, int cold) { // inclui mais uma funcao para mover as pecas
    int mover = 0;  // fazer o movimento das pecas 
    char peca;
    int deslvert = abs (ld - lo); // seria o deslocamento da peca na vertical, coloquei o abs para ter o valor absoluto
    int deslhor = abs (cold - colo);  // seria o deslocamento da penca na horizontal, coloquei o abs para ter o valor absoluto 
    
    if ( (lo >=0 && lo < 3 && colo >=0 && colo < 3) &&  // usei o if para o usuario não informar linha ou coluna que não exista;
    (ld >=0 && ld < 6 && cold >=0 && cold < 6) )
    {
    peca = xadrez[lo] [colo]; // a peca onde esta na lina e coluna de origem
    
    if ( (peca == 'T' || peca == 't') && (deslvert == 0 || deslhor == 0)) {
        mover = 1;
    }  // esse seria o movimento da torre onde se desloca apenas na horizontal ou vertical
     if ( (peca == 'B' || peca == 'b') && (deslvert == deslhor )) {  
        mover = 1;
    }   // esse seria o movimento do bispo onde o movimento vertical e igual ao horizontal
    if ( (peca == 'C' || peca == 'c') &&  ((deslvert == 1 && deslhor == 2 ) || (deslvert == 2 && deslhor == 1))) {  
        mover = 1;
    }  // esse seria o movimento do cavalo , percebe que aqui eu so consegui fazer dessa forma incluindo dois movimentos: 1x2 ou 2x1 seja uma casa vertical e duas na horizontal ou o inverso
    if (mover){
        xadrez[ld] [cold] = xadrez[lo] [colo]; // chamei a funcao xadrez para informar qual o direcionamento da peca
        xadrez[lo] [colo] = ' ';  // local onde a peca vai ficar em sua origem
            return 1; // confirmacao do movimento da peca
    }else {
            return 10; // A peca não pode ser movida dessa forma
    }
    } else {
        return 0;
    }
    
}

int main () {   // essa função é para digitar a origem e destino da peca
     int lo, ld, colo, cold; // inclui na funcao para usuario digitar a peca que desja  (lo = linha origem, ld =linha destino, colo= coluna origem, cold =coluna destino)
     while (1){
         pintarTelaTexto();
         printf("Digita a linha e coluna da peca que quer mover:");
         scanf("%d %d", &lo, &colo);
         printf("\nDigita a linha e coluna  de destino na peca:");
         scanf("%d %d", &ld, &cold);
         int resultado = moverpecas (lo, ld, colo, cold);
        if ( resultado != 1) {
            switch (resultado ) {
                case 10 : printf("\n ERRO: A peca não pode ser movida dessa forma"); getch (); break;
                case 0 : printf("\n ERRO: Coordenadas invalidas"); getch (); break;
                case 1 : break;
            }
            printf ("\n Essa jogada não pode ser feita");  // essa mensagem seria de erro caso o usuario digite uma linha ou coluna que não exista;
        }
    }      
          

         
          
          
    getch();
    return 0;

Link para o comentário
Compartilhar em outros sites

  • 0

Também estou pesuisando sobre isso, e dou 100% de preferencia em C.

Estou procurando justamente o motor central disso tudo, que é a IA central.

A interface grafica é o meu forte, e estou apostando em OpenGL ou DirectX.

Gostao mais de OpenGL, que serviria também para rodar em UNIX/Linux, pois já utilizava OpenGL numa Indy da SGI, desde 1996.

Mas, mas, sou péssimo jogador de xadrez, e não decoro as regras, não é o meu forte a memoria, somente a parte de inteligencia.

Recentemente (hoje) por coincidencia ou não, abri um tópico sobre exatamente isso.

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...