HugoAlex Postado Junho 28, 2012 Denunciar Share Postado Junho 28, 2012 Oi, eu sou novo no fórum, e também sou iniciante em linguagem C. Uso o programa codeblock e gostaria de uma ajuda se possível.Eu faço faculdade de engenharia elétrica e tenho como projeto um jogo de xadrez.A idéia básica do projeto, é imprimir se um dos dois reis estão em xeque.Se não for pedir muito e alguém puder me ajudar.Queria uma ajuda nisso.Aqui estão os exemplo de entrada e saída:4.1- Entradaentrada.txtDh2 rh4 Ra4 Pd4 dd8Neste exemplo de entrada, a Dama Branca está na célula h2, o Rei Preto na h4, o Rei Brancona a4, o Peão Branco na d4 e a Dama Preta na d8. Dado este prosicionamento seu programadeve dizer se os reis estão em xeque. Além disso, dizer que peça está em eminência derealizar o ataque ao rei em questão.4.2 - SaídaO formato de saída do programa deve seguir EXATAMENTE comodescrito a seguir. Qualquer desrespeito ao formato acarretarádiminuição da nota, e em casos extremos, a não correção do trabalho.Por exemplo, se o Rei Preto na casa h6 estiver em xeque com a Dama Branca na casah1 seu programa deve responder:Rei Preto (h,6) - Dama Branca (h,1)Se o Rei Branco na casa h3 estiver sob ataque da Torre Preta na a3, fica:Rei Branco (h,3) - Torre Preta (a,3)Se o Rei Preto b4 estiver em xeque com o Cavalo Branco na d3:Rei Preto (b,4) - Cavalo Branco (d,3)Se o Rei Branco na casa a1 estiver em Xeque com o Bispo Preto na casa h8:Rei Branco (a,1) - Bispo Preto (h,8)E assim sucessivamente para todas as possições posições que podem ocorrer dependendo daentrada.No entanto, pode existir a possibilidade da entrada não causar a situação de xeque, logo o seuprograma deve mostrar a seguinte mensagem:sem xequeeu dei uma começada nele, mas não sei ao certo se vai dar certo.# include <stdio.h>int main (){ int i, j, num=1, tabuleiro[10][10]; char peca[100]; for(i=1; i<9; i++) { for(j=1; j<9; j++) { tabuleiro[j] = num; num++; } } scanf("%s", &peca); if(peca[1] == 'a') peca[1] = 8; else if(peca[1] == 'b') peca[1] = 7; else if(peca[1] == 'c') peca[1] = 6; else if(peca[1] == 'd') peca[1] = 5; else if(peca[1] == 'e') peca[1] = 4; else if(peca[1] == 'f') peca[1] = 3; else if(peca[1] == 'g') peca[1] = 2; else if(peca[1] == 'h') peca[1] = 1; tabuleiro[peca[1]][peca[2]] = 0; for(i=1; i<9; i++) { for(j=1; j<9; j++) { printf("%d ", tabuleiro[j]); } printf("\n"); } system("pause"); return 0;}ah e me desculpe, se já tem no forum e eu não achei.mas eu procurei e não achei nada parecido Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
HugoAlex
Oi, eu sou novo no fórum, e também sou iniciante em linguagem C. Uso o programa codeblock e gostaria de uma ajuda se possível.
Eu faço faculdade de engenharia elétrica e tenho como projeto um jogo de xadrez.
A idéia básica do projeto, é imprimir se um dos dois reis estão em xeque.
Se não for pedir muito e alguém puder me ajudar.
Queria uma ajuda nisso.
Aqui estão os exemplo de entrada e saída:
4.1- Entrada
entrada.txt
Dh2 rh4 Ra4 Pd4 dd8
Neste exemplo de entrada, a Dama Branca está na célula h2, o Rei Preto na h4, o Rei Branco
na a4, o Peão Branco na d4 e a Dama Preta na d8. Dado este prosicionamento seu programa
deve dizer se os reis estão em xeque. Além disso, dizer que peça está em eminência de
realizar o ataque ao rei em questão.
4.2 - Saída
O formato de saída do programa deve seguir EXATAMENTE como
descrito a seguir. Qualquer desrespeito ao formato acarretará
diminuição da nota, e em casos extremos, a não correção do trabalho.
Por exemplo, se o Rei Preto na casa h6 estiver em xeque com a Dama Branca na casa
h1 seu programa deve responder:
Rei Preto (h,6) - Dama Branca (h,1)
Se o Rei Branco na casa h3 estiver sob ataque da Torre Preta na a3, fica:
Rei Branco (h,3) - Torre Preta (a,3)
Se o Rei Preto b4 estiver em xeque com o Cavalo Branco na d3:
Rei Preto (b,4) - Cavalo Branco (d,3)
Se o Rei Branco na casa a1 estiver em Xeque com o Bispo Preto na casa h8:
Rei Branco (a,1) - Bispo Preto (h,8)
E assim sucessivamente para todas as possições posições que podem ocorrer dependendo da
entrada.
No entanto, pode existir a possibilidade da entrada não causar a situação de xeque, logo o seu
programa deve mostrar a seguinte mensagem:
sem xeque
eu dei uma começada nele, mas não sei ao certo se vai dar certo.
# include <stdio.h>
int main ()
{
int i, j, num=1, tabuleiro[10][10];
char peca[100];
for(i=1; i<9; i++) {
for(j=1; j<9; j++) {
tabuleiro[j] = num;
num++;
}
}
scanf("%s", &peca);
if(peca[1] == 'a')
peca[1] = 8;
else if(peca[1] == 'b')
peca[1] = 7;
else if(peca[1] == 'c')
peca[1] = 6;
else if(peca[1] == 'd')
peca[1] = 5;
else if(peca[1] == 'e')
peca[1] = 4;
else if(peca[1] == 'f')
peca[1] = 3;
else if(peca[1] == 'g')
peca[1] = 2;
else if(peca[1] == 'h')
peca[1] = 1;
tabuleiro[peca[1]][peca[2]] = 0;
for(i=1; i<9; i++) {
for(j=1; j<9; j++) {
printf("%d ", tabuleiro[j]);
}
printf("\n");
}
system("pause");
return 0;
}
ah e me desculpe, se já tem no forum e eu não achei.
mas eu procurei e não achei nada parecido
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.