Ir para conteúdo
Fórum Script Brasil

Douglas ZS

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Tudo que Douglas ZS postou

  1. :) Oi Pessoal! Procurei no google e não encontrei nada sobre o assunto. Gostaria de saber como faço para embutir arquivos na mesma executável. Como arquivos de texto, imagens, sons... sem depender de arquivos externos. Desde já agradeço!
  2. Douglas ZS

    Jogo de Xadrez

    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!
  3. Douglas ZS

    Jogo de Xadrez

    Konsegui! Estava com problemas para responder o tópico ĸĸĸ
  4. Douglas ZS

    Jogo de Xadrez

    Aí! Vou tentar ajudar! Já tive experiência com jogo de xadrez, mas com um programa símples de desenvolvimento de jogos. Agora estou treinando programação em c++ com SDL, Se eu tiver algum sucesso postarei aqui o que consegui. ^_^ Obrigado pela iniciativa.
×
×
  • Criar Novo...