Linguagem C, Preciso aprimorar o meu programa para fazer os testes de jogada a vitória e se possível fazer o programa entre o (jogador x computador). Nesse jogo de xadrez tem apenas 3 pecas de cada lado: bispo, cavalo e torre
int main() // a duvida seria com relacao a colocar o jogador x computador onde o primeiro tem vez { int vez = 0; int contareibranco = 0, contatorre1branco = 0, contatorre2branco = 0; int el_AdversarioL, el_AdversarioC; while(1) { pintarTelaTexto () int contareipreto = 0, contatorre1preto = 0, contatorre2preto = 0; if (vez == 0) vez = 1; else vez = 0; } return 0; }
int contareibranco = 0, contatorre1branco = 0, contatorre2branco = 0; int contareipreto = 0, contatorre1preto = 0, contatorre2preto = 0;
int pintarTelaTexto () { system("CLS"); int lin, col, r; for (lin=0; lin < 3; lin++) { for (r = 0; r < 3; r++) { for (col=0; col < 3; col++) { char peca = xadrez[lin] [col]; char letra = ( (lin+col) %2 == 0) ? '\xB2' : ' '; letra = ( r == 1 && peca != ' ') ? peca : letra; if ( (lin + col) %2==0){ printf("\xB2\xB2\%c\xB2\xB2", letra); } else { printf(" %c ", letra); } } printf("\n"); } printf("\n"); } }
int moverpecas (int lo, int ld, int colo, int cold) { int mover = 0; char peca; int deslvert = abs (ld - lo); int deslhor = abs (cold - colo);
int main () { int lo, ld, colo, cold; 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"); } }
// a minha duvida seria onde como fazer os laços de vitoria se do jogador ou computador // como usar a parte do minimax para criar o computador jogar; getch(); return 0;
Pergunta
kelly salinas
char xadrez [3] [3] = { //T = torre preta, C = cavalo preto, B = bispo preto
{' ', ' ', ' '},
{' ', ' ', ' '},
{' ', ' ', ' '}
};
int main() // a duvida seria com relacao a colocar o jogador x computador onde o primeiro tem vez
{
int vez = 0;
int contareibranco = 0, contatorre1branco = 0, contatorre2branco = 0;
int el_AdversarioL, el_AdversarioC;
while(1)
{
pintarTelaTexto ()
int contareipreto = 0, contatorre1preto = 0, contatorre2preto = 0;
if (vez == 0) vez = 1; else vez = 0;
}
return 0;
}
int contareibranco = 0, contatorre1branco = 0, contatorre2branco = 0;
int contareipreto = 0, contatorre1preto = 0, contatorre2preto = 0;
int pintarTelaTexto () {
system("CLS");
int lin, col, r;
for (lin=0; lin < 3; lin++) {
for (r = 0; r < 3; r++) {
for (col=0; col < 3; col++) {
char peca = xadrez[lin] [col];
char letra = ( (lin+col) %2 == 0) ? '\xB2' : ' ';
letra = ( r == 1 && peca != ' ') ? peca : letra;
if ( (lin + col) %2==0){
printf("\xB2\xB2\%c\xB2\xB2", letra);
} else {
printf(" %c ", letra);
}
}
printf("\n");
}
printf("\n");
}
}
int moverpecas (int lo, int ld, int colo, int cold) {
int mover = 0;
char peca;
int deslvert = abs (ld - lo);
int deslhor = abs (cold - colo);
if ( (lo >=0 && lo < 3 && colo >=0 && colo < 3) &&
(ld >=0 && ld < 6 && cold >=0 && cold < 6) )
{
peca = xadrez[lo] [colo];
if ( (peca == 'T' || peca == 't') && (deslvert == 0 || deslhor == 0)) {
mover = 1;
}
if ( (peca == 'B' || peca == 'b') && (deslvert == deslhor )) {
mover = 1;
}
if ( (peca == 'C' || peca == 'c') && ((deslvert == 1 && deslhor == 2 ) || (deslvert == 2 && deslhor == 1))) {
mover = 1;
}
if (mover){
xadrez[ld] [cold] = xadrez[lo] [colo];
xadrez[lo] [colo] = ' ';
return 1;
}else {
return 10;
}
} else {
return 0;
}
}
int main () {
int lo, ld, colo, cold;
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");
}
}
// a minha duvida seria onde como fazer os laços de vitoria se do jogador ou computador
// como usar a parte do minimax para criar o computador jogar;
getch();
return 0;
}
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.