Ir ao conteúdo
  • Cadastre-se

Sandro Generoso

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

2
  1. Oi gente, estou tendo que fazer um programa de ordenação de arquivos em C onde ele tem que ordenar de 6 maneiras distintas várias linhas de códigos que eu tenho em 5 arquivos diferentes e depois tem que realizar uma busca binária para encontrar em qual linha está o código depois de ordenado. Além disso, ele tem que salvar após ordenar uma cópia em um .txt e devo dizer o número de comparações e movimentações teve enquanto ordenava! E O MEU PROGRAMA ESTÁ DANDO ERRO!!! eu não sei o porquê, e queria a solucão de vocês! #include <stdio.h> #include <string.h> #include <time.h> #include <math.h> typedef struct { char palavra[11]; } string; int contalinhas(FILE *arquivito) { string copiazinha; int i = 0, j = 0; while(fscanf(arquivito, "%s\n", &copiazinha.palavra[i])!= EOF) { j++; } return j; } void copia(FILE *arquivito) { string copiazinha; int i = 0, j = 0; while(fscanf(arquivito, "%s\n", &copiazinha.palavra[i])!= EOF) { j++; } while(fscanf(arquivito, "%s\n", &copiazinha.palavra[i])!= EOF) { fscanf(arquivito, "%s\n", &copiazinha.palavra[i]); i++; } } void direta(string *a, int N) { int i, j; string x; for (i = 2; i <= N; i++) { x = a[i]; a[0] = x; j = i; while (strncmp(x.palavra,a[j-1].palavra,10) < 0) { a[ j ] = a[j-1]; j = j - 1; } a[j] = x; } } void binaria(string *a, int N) { int L, R, m, i, j; string x; for (i = 2; i <= N; i++) { x = a[i]; L = 1; R = i; while(L<R) { m = floor(( L + R ) / 2); if (strncmp(a[m].palavra, x.palavra,10)<=0) { L = m + 1; } else R = m; } j = i; while ( j > R ) { a[ j ] = a[ j-1]; j = j - 1; } a [ R ] = x; } } void selecao(string *a, int N) { int i, j, indice_menor; string x; for (i = 1; i <= N - 1; i++) { indice_menor = i; for (j = i + 1; j <= N; j++) { if (strncmp(a[j].palavra,a[indice_menor].palavra,10)<0) { indice_menor = j; } } x = a [ i ]; a [ i ] = a[indice_menor] ; a [ indice_menor ] = x; } } void bubble(string *a, int N) { string x; int i, j; for (i = 2 ; i <= N ; i++) { for (j = N; j >= i ; j--) { if (strncmp( a[j - 1].palavra, a[ j ].palavra, 10 ) > 0) { x = a[j-1]; a [j-1] = a [j] ; a [j] = x; } } } } void heapfy(string *a, int L, int R) { int i, j; string x; i = L; j = 2*L; x = a[L]; if ( ( j < R ) && ( strncmp(a[ j ].palavra, a[ j +1 ].palavra,10)<0 )) { j = j + 1; } while( ( j <=R ) && (strncmp(x.palavra,a[ j ].palavra,10)<0)) { a[ i ] = a[ j ]; i = j; j = 2*j; if ( ( j < R ) && (strncmp (a[ j ].palavra, a[ j+1 ].palavra,10)<0)) { j = j + 1 ; } } a[i] = x ; } void heapsort(string *a, int N) { string w; int R, L; for(L = N/2; L >= 1 ; L--) { heapfy( a, L, N ); } for (R = N; R >= 2; R--) { w = a[1]; a[1] = a[R]; a[R] = w; heapfy( a, 1, R-1 ); } } void qsort( string *a, int L, int R) { int i, j; string w, x; i = L; j = R; x = a [ (L + R ) / 2]; do { while (strncmp( a[ i ].palavra, x.palavra, 10 ) < 0) { i++; } while (strncmp( x.palavra, a[ j ].palavra, 10) < 0 ) { j--; } if ( i <= j ) { w = a[ i ]; a[ i ] = a[ j ]; a[ j ] = w; i = i + 1; j = j - 1; } } while ( i <= j ); if ( L < j ) { qsort( a, L, j ); } if ( i < R ) { qsort( a, i, R ); } } void quicksort( string *a, int N ) { qsort( a, 1, N ); } /* O ALGORITMO ABAIXO É O DE BUSCA BINARIA */ void buscabinaria(string *a, int N, char x[11]) { int m, L, R, sucesso; L = 0; R = N - 1; sucesso = 0; while ( ( L <= R ) && ( sucesso == 0 ) ) { m = floor( (R+L)/2 ); if ( strcmp(a[m].palavra, x) == 0 ) { sucesso = 1; } else { if (strncmp(a[m].palavra, x, 10) < 0) L = m + 1; else R = m - 1; } } if(sucesso == 1) { printf("\n\nENCONTRADO NA POSICAO %d DO ARQUIVO\n\n ", m); } else { printf("\n\nNAO ENCONTRADO NO ARQUIVO \n\n"); } } int main() { int opcao, opcao2, i; FILE *arq1, *arq2, *arq3, *arq4, *arq5; FILE *arq1copia, *arq2copia, *arq3copia, *arq4copia, *arq5copia; int ql1, ql2, ql3, ql4, ql5; char x[11]; string s1[101], s2[501], s3[1001], s4[5001], s5[10001]; arq1 = fopen("mes_1.txt", "r"); arq2 = fopen("mes_2.txt", "r"); arq3 = fopen("mes_3.txt", "r"); arq4 = fopen("mes_4.txt", "r"); arq5 = fopen("mes_5.txt", "r"); arq1copia = fopen("mes_1copy.txt", "wb+"); arq2copia = fopen("mes_2copy.txt", "wb+"); arq3copia = fopen("mes_3copy.txt", "wb+"); arq4copia = fopen("mes_4copy.txt", "wb+"); arq5copia = fopen("mes_5copy.txt", "wb+"); ql1 = contalinhas(arq1); ql2 = contalinhas(arq2); ql3 = contalinhas(arq3); ql4 = contalinhas(arq4); ql5 = contalinhas(arq5); for(i=0; i<ql1; i++) { fscanf(arq1, "%s\n", &s1->palavra[i]); } for(i=0; i<ql2; i++) { fscanf(arq2, "%s\n", &s2->palavra[i]); } for(i=0; i<ql3; i++) { fscanf(arq3, "%s\n", &s3->palavra[i]); } for(i=0; i<ql4; i++) { fscanf(arq4, "%s\n", &s4->palavra[i]); } for(i=0; i<ql5; i++) { fscanf(arq5, "%s\n", &s5->palavra[i]); } fclose(arq1); fclose(arq2); fclose(arq3); fclose(arq4); fclose(arq5); printf("\nQual o tipo de ordenacao voce gostaria de aplicar?\n\n1-Insercao direta\n2-Insercao binaria\n3-Selecao\n4-Bubblesort\n5-Heapsort\n6-Quicksort\n\n"); scanf("%d", &opcao); switch(opcao) { case 1: direta(s1, ql1); direta(s2, ql2); direta(s3, ql3); direta(s4, ql4); direta(s5, ql5); for(i=0; i<ql1; i++) { fprintf(arq1copia, "%s\n", s1[i].palavra); } for(i=0; i<ql2; i++) { fprintf(arq2copia, "%s\n", s2[i].palavra); } for(i=0; i<ql3; i++) { fprintf(arq3copia, "%s\n", s3[i].palavra); } for(i=0; i<ql4; i++) { fprintf(arq4copia, "%s\n", s4[i].palavra); } for(i=0; i<ql5; i++) { fprintf(arq5copia, "%s\n", s5[i].palavra); } break; case 2: binaria(s1, ql1); binaria(s2, ql2); binaria(s3, ql3); binaria(s4, ql4); binaria(s5, ql5); for(i=0; i<ql1; i++) { fprintf(arq1copia, "%s\n", s1[i].palavra); } for(i=0; i<ql2; i++) { fprintf(arq2copia, "%s\n", s2[i].palavra); } for(i=0; i<ql3; i++) { fprintf(arq3copia, "%s\n", s3[i].palavra); } for(i=0; i<ql4; i++) { fprintf(arq4copia, "%s\n", s4[i].palavra); } for(i=0; i<ql5; i++) { fprintf(arq5copia, "%s\n", s5[i].palavra); } break; case 3: selecao(s1, ql1); selecao(s2, ql2); selecao(s3, ql3); selecao(s4, ql4); selecao(s5, ql5); for(i=0; i<ql1; i++) { fprintf(arq1copia, "%s\n", s1[i].palavra); } for(i=0; i<ql2; i++) { fprintf(arq2copia, "%s\n", s2[i].palavra); } for(i=0; i<ql3; i++) { fprintf(arq3copia, "%s\n", s3[i].palavra); } for(i=0; i<ql4; i++) { fprintf(arq4copia, "%s\n", s4[i].palavra); } for(i=0; i<ql5; i++) { fprintf(arq5copia, "%s\n", s5[i].palavra); } break; case 4: bubble(s1, ql1); bubble(s2, ql2); bubble(s3, ql3); bubble(s4, ql4); bubble(s5, ql5); for(i=0; i<ql1; i++) { fprintf(arq1copia, "%s\n", s1[i].palavra); } for(i=0; i<ql2; i++) { fprintf(arq2copia, "%s\n", s2[i].palavra); } for(i=0; i<ql3; i++) { fprintf(arq3copia, "%s\n", s3[i].palavra); } for(i=0; i<ql4; i++) { fprintf(arq4copia, "%s\n", s4[i].palavra); } for(i=0; i<ql5; i++) { fprintf(arq5copia, "%s\n", s5[i].palavra); } break; case 5: heapsort(s1, ql1); heapsort(s2, ql2); heapsort(s3, ql3); heapsort(s4, ql4); heapsort(s5, ql5); for(i=0; i<ql1; i++) { fprintf(arq1copia, "%s\n", s1[i].palavra); } for(i=0; i<ql2; i++) { fprintf(arq2copia, "%s\n", s2[i].palavra); } for(i=0; i<ql3; i++) { fprintf(arq3copia, "%s\n", s3[i].palavra); } for(i=0; i<ql4; i++) { fprintf(arq4copia, "%s\n", s4[i].palavra); } for(i=0; i<ql5; i++) { fprintf(arq5copia, "%s\n", s5[i].palavra); } break; case 6: quicksort(s1, ql1); quicksort(s2, ql2); quicksort(s3, ql3); quicksort(s4, ql4); quicksort(s5, ql5); for(i=0; i<ql1; i++) { fprintf(arq1copia, "%s\n", s1[i].palavra); } for(i=0; i<ql2; i++) { fprintf(arq2copia, "%s\n", s2[i].palavra); } for(i=0; i<ql3; i++) { fprintf(arq3copia, "%s\n", s3[i].palavra); } for(i=0; i<ql4; i++) { fprintf(arq4copia, "%s\n", s4[i].palavra); } for(i=0; i<ql5; i++) { fprintf(arq5copia, "%s\n", s5[i].palavra); } break; default: printf("nao existe essa opcao"); } opcao2 = 1; while(opcao2==1) { printf("\n\nQue gracinha, foi ordenado! Agora vamos procurar um codigo?\n 1- Sim \n 2- Nem \n\n"); scanf("%d", &opcao2); switch(opcao2) { case 1: printf("\n\ncerto, então me diga o codigo que voce esta buscando: "); scanf("%s", x); buscabinaria(s1, ql1, x); printf("MES 1"); buscabinaria(s2, ql2, x); printf("MES 2"); buscabinaria(s3, ql3, x); printf("MES 3"); buscabinaria(s4, ql4, x); printf("MES 4"); buscabinaria(s5, ql5, x); printf("MES 5"); break; case 2: printf("\n\nok, voce que manda! tchau!\n\n"); break; default: printf("\n\n nao existe essa opcao\n\n"); return main(); } } return 0; } Por favor, me ajudem, ficarei muito grato!
  2. Olá pessoal do Clube do Hardware! Pois bem, há pouco tempo atrás eu estava desenvolvendo um jogo de xadrez em C, naquele momento eu havia dado uma parado de mexer e voltei com o projeto e inclusive terminei de fazer tudo que queria até o momento (mais um obrigado para quem tinha me ajudado). Mas andei pesquisando sobre sockets em C, achei algo incrível, até copiando códigos soltos na internet fiz um chat em C, fiquei fascinado com essa novidade, mas nem entendi muito como funciona... Enfim, gostaria de implementar esse conhecimento no meu jogo de Xadrez em C para que 2 jogadores em computadores distintos pudessem se enfrentar no jogo... Gostaria ver se alguém aqui poderia colocar isso no meu código, ou me auxiliar para isso. Segue o código: #include<stdio.h> #include"X-A-D-R-E-Z.h" int main() { int Xo2, Xd2, Yo2, Yd2, Xo, Xd; char Yo, Yd; int opcao1, opcao2; int promocinha; int resultado1 = 30, resultado2 = 30; char branco[50], preto[50]; int CHEQUE; int cheque; CHEQUE = 0; cheque = 0; int sair = 0; printf("\n\n\t\t\t\tX A D R E Z EM C\n\n"); printf("Jogar pelo Windows ou pelo Linux?"); printf("\n\n1-Linux \n\n2-Windows\n\n"); scanf("%d", &opcao1); switch(opcao1) { while(sair == 0) { case 1: system("clear"); printf("\n\n\t\t\t\tX A D R E Z EM C\n\n"); printf("1 - Player Vs Player\n\n"); printf("2 - Como jogar?\n\n"); printf("3 - Créditos\n\n"); scanf("%d", &opcao2); switch(opcao2) { case 1: printf("Me informe o nome do jogador branco para comecarmos: \n"); scanf("%s",branco); printf("\nMe informe o nome do jogador preto para seguirmos: \n"); scanf("%s",preto); int chequemate = 0; while(chequemate==0) { TabuleiroLinux(cheque, CHEQUE); while(resultado1!=1) { printf("\nVez de \033[35m%s\033[0m", branco); printf("\nMe diga as coordenadas da peca que voce gostaria de mexer (linha , coluna): "); scanf("%d %c", &Xo, &Yo); Xo2 = (Xo +(8-(2*Xo))); Yo2 = Yo-97; printf("\nMe diga para onde voce quer ir: "); scanf("%d %c", &Xd, &Yd); Xd2 = (Xd +(8-(2*Xd))); Yd2 = Yd-97; resultado1 = movimentoBranco(Xo2, Xd2, Yo2, Yd2, CHEQUE, cheque); switch(resultado1) { case 0 : resultado2 = 1; break; case 1 : CHEQUE = CHEQUE2(); cheque = cheque1(); //chequemate = xequemate(cheque, CHEQUE); resultado2 = 30; break; } } TabuleiroLinux(cheque, CHEQUE); while(resultado2!=1) { printf("\nVez de \033[32m%s\033[0m", preto); printf("\nMe diga as coordenadas da peca que voce gostaria de mexer (linha , coluna): "); scanf("%d %c", &Xo, &Yo); Xo2 = (Xo+(8-(2*Xo))); Yo2 = Yo-97; printf("\nMe diga para onde voce quer ir: "); scanf("%d %c", &Xd, &Yd); Xd2 = (Xd+(8-(2*Xd))); Yd2 = Yd-97; resultado2 = movimentoPreto( Xo2, Xd2, Yo2, Yd2, CHEQUE, cheque); switch(resultado2) { case 0 : resultado1 = 1; break; case 1 : CHEQUE = CHEQUE2(); cheque = cheque1(); //chequemate = xequemate(cheque, CHEQUE); resultado1 = 30; break; } } } TabuleiroLinux(cheque, CHEQUE); if(chequemate == 1) { printf("\033[32m%s\033[0m é o vencedor! \033[35m%s\033[0m é o perdedor", preto, branco); } if(chequemate == 2) { printf("\033[35m%s\033[0m é o vencedor! \033[32m%s\033[0m é o perdedor", branco, preto); } printf("\n\n\n Voltar ao menu inicial? \n1-Sim\n2-Não\n"); scanf("%d", &sair-1); break; case 2: system("clear"); comojogarLinux(); printf("\n\n\n Voltar ao menu inicial? \n1-Sim\n2-Não\n"); scanf("%d", &sair-1); break; case 3: system("clear"); creditosLinux(); printf("\n\n\n Voltar ao menu inicial? \n1-Sim\n2-Não\n"); scanf("%d", &sair-1); break; default: printf("Digite uma opção válida"); } } break; case 2: while(sair == 0) { system("cls"); printf("\n\n\t\t\t\tX A D R E Z EM C\n\n"); printf("1 - Player Vs Player\n\n"); printf("2 - Como jogar?\n\n"); printf("3 - Creditos\n\n"); scanf("%d", &opcao2); switch(opcao2) { case 1: printf("Me informe o nome do jogador branco para comecarmos: \n"); scanf("%s",branco); printf("\nMe informe o nome do jogador preto para seguirmos: \n"); scanf("%s",preto); int chequemate = 0; while(chequemate==0) { TabuleiroWindows(cheque, CHEQUE); while(resultado1!=1) { printf("\nVez de %s", branco); printf("\nMe diga as coordenadas da peca que voce gostaria de mexer (linha , coluna): "); scanf("%d %c", &Xo, &Yo); Xo2 = (Xo+(8-(2*Xo))); Yo2 = Yo-97; printf("\nMe diga para onde voce quer ir: "); scanf("%d %c", &Xd, &Yd); Xd2 = (Xd +(8-(2*Xd))); Yd2 = Yd-97; resultado1 = movimentoBranco(Xo2, Xd2, Yo2, Yd2, CHEQUE, cheque); switch(resultado1) { case 0 : resultado2 = 1; break; case 1 : CHEQUE = CHEQUE2(); cheque = cheque1(); //chequemate = xequemate(cheque, CHEQUE); resultado2 = 30; break; } } TabuleiroWindows(cheque, CHEQUE); while(resultado2!=1) { printf("\nVez de %s", preto); printf("\nMe diga as coordenadas da peca que voce gostaria de mexer (linha , coluna): "); scanf("%d %c", &Xo, &Yo); Xo2 = (Xo+(8-(2*Xo))); Yo2 = Yo-97; printf("\nMe diga para onde voce quer ir: "); scanf("%d %c", &Xd, &Yd); Xd2 = (Xd +(8-(2*Xd))); Yd2 = Yd-97; resultado2 = movimentoPreto( Xo2, Xd2, Yo2, Yd2, CHEQUE, cheque); switch(resultado2) { case 0 : resultado1 = 1; break; case 1 : CHEQUE = CHEQUE2(); cheque = cheque1(); //chequemate = xequemate(cheque, CHEQUE); resultado1 = 30; break; } } } break; case 2: comojogarWindows(); printf("\n\n\n Voltar ao menu inicial? \n1-Sim\n2-Nao\n"); scanf("%d", &sair-1); break; case 3: creditosWindows(); printf("\n\n\n Voltar ao menu inicial? \n1-Sim\n2-Nao\n"); scanf("%d", &sair-1); break; default: printf("Digite uma opcao valida"); } default: printf("Digite uma opcao valida"); } } } E a biblioteca "X-A-D-R-E-Z.h" que eu criei pro código não ficar absurdo de tão grande, mas acabou que a biblioteca ficou absurda de tão grande kkkkk #include <stdio.h> #include <stdlib.h> char xadrez[8][8] = { {'T', 'C', 'B', 'D', 'R', 'B', 'C', 'T'}, {'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P'}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'}, {'t', 'c', 'b', 'd', 'r', 'b', 'c', 't'} }; int contareibranco = 0, contatorre1branco = 0, contatorre2branco = 0; int contareipreto = 0, contatorre1preto = 0, contatorre2preto = 0; TabuleiroLinux(int cheque, int CHEQUE) { int linha, repete, coluna; system("clear"); printf(" a b c d e f g h\n"); for(linha = 0; linha < 8; linha++) { for(repete=0; repete<3; repete++) { if(repete==1) { printf("%d", linha+(8-(2*linha))); } else { printf(" "); } for(coluna = 0; coluna < 8; coluna++) { char peca = xadrez[linha][coluna]; char letra = (((coluna+linha)%2 == 0))? printf ("█") : printf(" "); letra = ((repete==1)&&(peca == 'T')) ? printf("\033[32m♖\033[0m") : letra; letra = ((repete==1)&&(peca == 'C')) ? printf("\033[32m♘\033[0m") : letra; letra = ((repete==1)&&(peca == 'B')) ? printf("\033[32m♗\033[0m") : letra; letra = ((repete==1)&&(peca == 'D')) ? printf("\033[32m♕\033[0m") : letra; letra = ((repete==1)&&(peca == 'R')&&(CHEQUE==0)) ? printf("\033[32m♔\033[0m") : letra; letra = ((repete==1)&&(peca == 'R')&&(CHEQUE==1)) ? printf("\033[31m♔\033[0m") : letra; letra = ((repete==1)&&(peca == 'P')) ? printf("\033[32m♙\033[0m") : letra; letra = ((repete==1)&&(peca == 't')) ? printf("\033[35m♜\033[0m") : letra; letra = ((repete==1)&&(peca == 'c')) ? printf("\033[35m♞\033[0m") : letra; letra = ((repete==1)&&(peca == 'b')) ? printf("\033[35m♝\033[0m") : letra; letra = ((repete==1)&&(peca == 'd')) ? printf("\033[35m♛\033[0m") : letra; letra = ((repete==1)&&(peca == 'r')&&(cheque==0)) ? printf("\033[35m♚\033[0m") : letra; letra = ((repete==1)&&(peca == 'r')&&(cheque==1)) ? printf("\033[31m♚\033[0m") : letra; letra = ((repete==1)&&(peca == 'p')) ? printf("\033[35m♟\033[0m") : letra; letra = ((repete==1)&&(peca == ' ')) ? ((coluna+linha)%2==0) ? printf ("█") : printf(" ") : letra; letra = ((repete==0)||(repete==2))? ((coluna+linha)%2==0) ? printf ("█") : printf(" ") : letra; if((coluna+linha)%2==0) { printf("█████"); } else { printf(" "); } } printf("\n"); } } } TabuleiroWindows(int cheque, int CHEQUE) { int linha, repete, coluna; system("cls"); printf(" a b c d e f g h\n"); for(linha = 0; linha < 8; linha++) { for(repete=0; repete<3; repete++) { if(repete==1) { printf("%d", linha+(8-(2*linha))); } else { printf(" "); } for(coluna = 0; coluna < 8; coluna++) { char peca = xadrez[linha][coluna]; char letra = (((coluna+linha)%2 == 0))? printf ("\xB2") : printf(" "); letra = ((repete==1)&&(peca == 'T')) ? printf("T") : letra; letra = ((repete==1)&&(peca == 'C')) ? printf("C") : letra; letra = ((repete==1)&&(peca == 'B')) ? printf("B") : letra; letra = ((repete==1)&&(peca == 'D')) ? printf("D") : letra; letra = ((repete==1)&&(peca == 'R')&&(CHEQUE==0)) ? printf("R") : letra; letra = ((repete==1)&&(peca == 'R')&&(CHEQUE==1)) ? printf("\033[31mR\033[0m") : letra; letra = ((repete==1)&&(peca == 'P')) ? printf("P") : letra; letra = ((repete==1)&&(peca == 't')) ? printf("t") : letra; letra = ((repete==1)&&(peca == 'c')) ? printf("c") : letra; letra = ((repete==1)&&(peca == 'b')) ? printf("b") : letra; letra = ((repete==1)&&(peca == 'd')) ? printf("d") : letra; letra = ((repete==1)&&(peca == 'r')&&(cheque==0)) ? printf("r") : letra; letra = ((repete==1)&&(peca == 'r')&&(cheque==1)) ? printf("\033[31mr\033[0m") : letra; letra = ((repete==1)&&(peca == 'p')) ? printf("p") : letra; letra = ((repete==1)&&(peca == ' ')) ? ((coluna+linha)%2==0) ? printf ("\xB2") : printf(" ") : letra; letra = ((repete==0)||(repete==2))? ((coluna+linha)%2==0) ? printf ("\xB2") : printf(" ") : letra; if((coluna+linha)%2==0) { printf("\xB2\xB2\xB2\xB2\xB2"); } else { printf(" "); } } printf("\n"); } } } int movimentoBranco(int Xo,int Xd,int Yo, int Yd, int CHEQUE, int cheque) { //Xo = Linha origem, Xd = Linha destino, Yo = Coluna origem, Yd = Coluna destino. int mover = 0; char peca; char auxiliar; int vertical, horizontal; int verificador, contador=0; vertical = abs(Xd - Xo); horizontal = abs(Yd - Yo); peca = xadrez[Xo][Yo]; int promocinha; if((Xo>=0&&Xo<8)&&(Xd>=0&&Xd<8)&&(Yo>=0&&Yo<8)&&(Yd>=0&&Yd<8)) { if((xadrez[Xd][Yd]=='t')||(xadrez[Xd][Yd]=='c')||(xadrez[Xd][Yd]=='b')||(xadrez[Xd][Yd]=='d')||(xadrez[Xd][Yd]=='r')||(xadrez[Xd][Yd]=='p')) { printf("ERRO: voce nao pode comer sua propria peca!"); return 0; } else { if(peca=='t') { if((vertical==0)&&(horizontal!=0)) { if((Yd - Yo)<0) /* ↑ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo-verificador]!= ' ') { contador = 1; } } } if((Yd - Yo)>0) /* ↓ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo+verificador]!= ' ') { contador = 1; } } } } if((horizontal==0)&&(vertical!=0)) { if((Xd - Xo)<0) /* ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo-verificador][Yo]!= ' ') { contador = 1; } } } if((Xd - Xo)>0) /* → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo+verificador][Yo]!= ' ') { contador = 1; } } } } if(contador==0) { mover = 1; } } if(peca=='c') { if((vertical==2)&&(horizontal==1)) { mover = 1; } if((vertical==1)&&(horizontal==2)) { mover = 1; } } if(peca=='b') { if((vertical==horizontal)&&(vertical!=0)) { if(((Xd - Xo)<0)&& ((Yd - Yo)<0)) /* ↑ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)<0)&& ((Yd - Yo)>0)) /* ↓ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo + verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)<0)) /* ↑ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)>0)) /* ↓ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo + verificador] != ' ') { contador=1; } } } if(contador==0) { mover = 1; } } } if(peca=='d') { if((vertical==0)&&(horizontal!=0)) { if((Yd - Yo)<0) /* ↑ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo-verificador]!= ' ') { contador = 1; } } } if((Yd - Yo)>0) /* ↓ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo+verificador]!= ' ') { contador = 1; } } } } if((horizontal==0)&&(vertical!=0)) { if((Xd - Xo)<0) /* ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo-verificador][Yo]!= ' ') { contador = 1; } } } if((Xd - Xo)>0) /* → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo+verificador][Yo]!= ' ') { contador = 1; } } } } if((vertical==horizontal)&&(vertical!=0)) { if(((Xd - Xo)<0)&& ((Yd - Yo)<0)) /* ↑ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)<0)&& ((Yd - Yo)>0)) /* ↓ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo + verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)<0)) /* ↑ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)>0)) /* ↓ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo + verificador] != ' ') { contador=1; } } } } if(contador==0) { mover = 1; } } if(peca=='r') { if((vertical >= 0 && vertical <= 1) && (horizontal >= 0 && horizontal <= 1)) { mover = 1; contareibranco++; } if((contareibranco==0)&&(contatorre1branco==0)&&(xadrez[7][5]==' ')&&(xadrez[7][6]==' ')&&((Yd-Yo)==2)&&(vertical==0)&&(cheque==0)) { mover = 2; contareibranco++; contatorre1branco++; } if((contareibranco==0)&&(contatorre2branco==0)&&(xadrez[7][3]==' ')&&(xadrez[7][2]==' ')&&(xadrez[7][1]==' ')&&((Yd-Yo)==-2)&&(vertical==0)&&(cheque==0)) { mover = 3; contareibranco++; contatorre2branco++; } } if(peca=='p') { if((Xo==6) && ((Xd-Xo)==-2) && (horizontal==0) && (xadrez[Xd][Yd]==' ')&&(xadrez[5][Yd]==' ')) { mover = 1; } if(((Xd-Xo)==-1) && (horizontal==0) && (xadrez[Xd][Yd]==' ')) { mover = 1; } if(((Xd-Xo)==-1) && (horizontal==1) && (xadrez[Xd][Yd]!=' ')) { mover = 1; } if((mover==1)&&(Xd==0)) { mover = 5; } } if(contador == 0) { if(mover==1) { auxiliar = xadrez[Xd][Yd]; xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; if(cheque1()==1) { xadrez[Xo][Yo] = xadrez[Xd][Yd]; xadrez[Xd][Yd] = auxiliar; mover = 0; printf("ERRO: voce nao pode se por em xeque!!\n"); } else { return 1; } } if(mover==0) { printf("ERRO: movimento invalido!"); return 0; } if(mover==2) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[7][7] = ' '; xadrez[7][5] = 't'; return 1; } if(mover==3) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[7][0] = ' '; xadrez[7][3] = 't'; return 1; } if(mover==5) { printf("Para que peca voce gostaria de ser promovido?\n\n"); printf("1-Dama\n\n2-Torre\n\n3-Bispo\n\n4-Cavalo\n\n"); scanf("%d", &promocinha); switch(promocinha) { case 1: xadrez[Xd][Yd] = 'd'; xadrez[Xo][Yo] = ' '; break; case 2: xadrez[Xd][Yd] = 't'; xadrez[Xo][Yo] = ' '; break; case 3: xadrez[Xd][Yd] = 'b'; xadrez[Xo][Yo] = ' '; break; case 4: xadrez[Xd][Yd] = 'c'; xadrez[Xo][Yo] = ' '; break; default: printf("escolha uma opcao valida"); } return 1; } } else { printf("ERRO: voce nao pode pular pecas!"); return 0; } } } else { printf("ERRO: coordenadas invalidas!"); return 0; } } int movimentoPreto(int Xo,int Xd,int Yo, int Yd, int CHEQUE, int cheque) { //Xo = Linha origem, Xd = Linha destino, Yo = Coluna origem, Yd = Coluna destino. int mover = 0; char peca; peca = xadrez[Xo][Yo]; char auxiliar; int vertical, horizontal; int verificador, contador=0; vertical = abs(Xd - Xo); horizontal = abs(Yd - Yo); int promocinha; if((Xo>=0&&Xo<8)&&(Xd>=0&&Xd<8)&&(Yo>=0&&Yo<8)&&(Yd>=0&&Yd<8)) { if((xadrez[Xd][Yd]=='T')||(xadrez[Xd][Yd]=='C')||(xadrez[Xd][Yd]=='B')||(xadrez[Xd][Yd]=='D')||(xadrez[Xd][Yd]=='R')||(xadrez[Xd][Yd]=='P')) { printf("ERRO: voce nao pode comer sua propria peca!"); return 0; } else { if(peca=='T') { if((vertical==0)&&(horizontal!=0)) { if((Yd - Yo)<0) /* ↑ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo-verificador]!= ' ') { contador = 1; } } } if((Yd - Yo)>0) /* ↓ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo+verificador]!= ' ') { contador = 1; } } } } if((horizontal==0)&&(vertical!=0)) { if((Xd - Xo)<0) /* ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo-verificador][Yo]!= ' ') { contador = 1; } } } if((Xd - Xo)>0) /* → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo+verificador][Yo]!= ' ') { contador = 1; } } } } if(contador==0) { mover = 1; } } if(peca=='C') { if((vertical==2)&&(horizontal==1)) { mover = 1; } if((vertical==1)&&(horizontal==2)) { mover = 1; } } if(peca=='B') { if((vertical==horizontal)&&(vertical!=0)) { if(((Xd - Xo)<0)&& ((Yd - Yo)<0)) /* ↑ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)<0)&& ((Yd - Yo)>0)) /* ↓ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo + verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)<0)) /* ↑ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)>0)) /* ↓ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo + verificador] != ' ') { contador=1; } } } if(contador==0) { mover = 1; } } } if(peca=='D') { if((vertical==0)&&(horizontal!=0)) { if((Yd - Yo)<0) /* ↑ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo-verificador]!= ' ') { contador = 1; } } } if((Yd - Yo)>0) /* ↓ */ { for(verificador=1; verificador<abs(Yd-Yo); verificador++) { if (xadrez[Xo][Yo+verificador]!= ' ') { contador = 1; } } } } if((horizontal==0)&&(vertical!=0)) { if((Xd - Xo)<0) /* ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo-verificador][Yo]!= ' ') { contador = 1; } } } if((Xd - Xo)>0) /* → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if (xadrez[Xo+verificador][Yo]!= ' ') { contador = 1; } } } } if((vertical==horizontal)&&(vertical!=0)) { if(((Xd - Xo)<0)&& ((Yd - Yo)<0)) /* ↑ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)<0)&& ((Yd - Yo)>0)) /* ↓ + ← */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo - verificador][Yo + verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)<0)) /* ↑ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo - verificador] != ' ') { contador=1; } } } if(((Xd - Xo)>0)&& ((Yd - Yo)>0)) /* ↓ + → */ { for(verificador=1; verificador<abs(Xd-Xo); verificador++) { if(xadrez[Xo + verificador][Yo + verificador] != ' ') { contador=1; } } } } if(contador==0) { mover = 1; } } if(peca=='R') { if((vertical >= 0 && vertical <= 1) && (horizontal >= 0 && horizontal <= 1)) { mover = 1; contareipreto++; } if((contareipreto==0)&&(contatorre1preto==0)&&(xadrez[0][5]==' ')&&(xadrez[0][6]==' ')&&((Yd-Yo)==2)&&(vertical==0)&&(CHEQUE==0)) { mover = 2; contareipreto++; contatorre1preto++; } if((contareipreto==0)&&(contatorre2preto==0)&&(xadrez[0][3]==' ')&&(xadrez[0][2]==' ')&&(xadrez[0][1]==' ')&&((Yd-Yo)==-2)&&(vertical==0)&&(CHEQUE==0)) { mover = 2; contareipreto++; contatorre2preto++; } } if(peca=='P') { if((Xo==1) && ((Xd-Xo)==2) && (horizontal==0) && (xadrez[Xd][Yd]==' ') && (xadrez[2][Yd]==' ')) { mover = 1; } if(((Xd-Xo)==1) && (horizontal==0) && (xadrez[Xd][Yd]==' ')) { mover = 1; } if(((Xd-Xo)==1) && (horizontal==1) && (xadrez[Xd][Yd]!=' ')) { mover = 1; } if((mover==1)&&(Xd==7)) { mover = 5; } } if(contador == 0) { if(mover==1) { auxiliar = xadrez[Xd][Yd]; xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; if(CHEQUE2()==1) { xadrez[Xo][Yo] = xadrez[Xd][Yd]; xadrez[Xd][Yd] = auxiliar; mover = 0; printf("ERRO: voce nao pode se por em xeque!!\n"); } else { return 1; } } if(mover==0) { printf("ERRO: movimento invalido!"); return 0; } if(mover==2) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[0][7] = ' '; xadrez[0][5] = 'T'; return 1; } if(mover==3) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[0][0] = ' '; xadrez[0][3] = 'T'; return 1; } if(mover==5) { printf("Para que peca voce gostaria de ser promovido?\n\n"); printf("1-Dama\n\n2-Torre\n\n3-Bispo\n\n4-Cavalo\n\n"); scanf("%d", &promocinha); switch(promocinha) { case 1: xadrez[Xd][Yd] = 'D'; xadrez[Xo][Yo] = ' '; break; case 2: xadrez[Xd][Yd] = 'T'; xadrez[Xo][Yo] = ' '; break; case 3: xadrez[Xd][Yd] = 'B'; xadrez[Xo][Yo] = ' '; break; case 4: xadrez[Xd][Yd] = 'C'; xadrez[Xo][Yo] = ' '; break; default: printf("escolha uma opcao valida"); } return 1; } } else { printf("ERRO: voce nao pode pular pecas!"); return 0; } } } else { printf("ERRO: coordenadas invalidas!"); return 0; } } void comojogarLinux() { printf(" REGRAS DO XADREZ: \n\n Movimentação das peças:"); printf("\n\nTorre:\n ♖ e ♜ - Movimenta na vertical ou na horizontal." ); printf("\n\nBispo:\n ♗ e ♝ - Movimenta em diagonal."); printf("\n\nDama:\n ♕ e ♛ - Movimenta na vetical ou na horizontal ou na diagonal."); printf("\n\nRei:\n ♔ e ♚ - Movimenta para todas as direções, mas apenas uma casa por vez"); printf("\n\nPeão:\n ♙ e ♟ - Movimenta-se para frente uma casa, para devorar uma peça adversária, uma passo para uma de suas diagonais dianteiras"); printf(", No primeiro movimento de cada peão, pode se andar duas casas ao invés de uma."); printf("\n\nCavalo:\n ♘ e ♞ - É a única peça que pode 'saltar' sobre outras peças. Andando 2 casas na horizontal ou na vertical e depois mais uma num sentido perpendicular.\n\n"); printf(" \n\n Objetivo do jogo:"); printf("\n\nDar o XEQUE-MATE no seu adversário, que seria deixar o rei do adversário ameaçado e sem lugar para onde ir!"); } void comojogarWindows() { printf(" REGRAS DO XADREZ: \n\n Movimentacao das pecas:"); printf("\n\nTorre:\n t e T - Movimenta na vertical ou na horizontal." ); printf("\n\nBispo:\n b e B - Movimenta em diagonal."); printf("\n\nDama:\n d e D - Movimenta na vetical ou na horizontal ou na diagonal."); printf("\n\nRei:\n r e R - Movimenta para todas as direcoes, mas apenas uma casa por vez"); printf("\n\nPeao:\n p e P - Movimenta-se para frente uma casa, para devorar uma peça adversária, uma passo para uma de suas diagonais dianteiras"); printf(", No primeiro movimento de cada peao, pode se andar duas casas ao invés de uma."); printf("\n\nCavalo:\n c e C - A unica peca que pode 'saltar' sobre outras pecas. Andando 2 casas na horizontal ou na vertical e depois mais uma num sentido perpendicular.\n\n"); printf(" \n\n Objetivo do jogo:"); printf("\n\nDar o XEQUE-MATE no seu adversario, que seria deixar o rei do adversario ameaçado e sem lugar para onde ir!"); } void creditosLinux() { printf(" CRIADOR DO JOGO DE XADREZ: Sessa ibn Daher \n\n CRIADOR DA LINGUAGEM C: Dennis Ritchie \n\n PROGRAMADOR CHEFE E DESENVOLVEDOR: Sandro Generoso \n\n ANALISTA DE LÓGICA: Sandro Generoso\n\n DESIGNER GRAFICO: Sandro Generoso\n\n ENGENHEIRO DE C: Sandro Generoso\n\n ASSISTENTE DE PROGRAMAÇÃO: Sandro Generoso\n\n AGRADECIMENTOS: Departamento de Computação e Matemática - USP Ribeirão Preto\n\n"); } void creditosWindows() { printf(" CRIADOR DO JOGO DE XADREZ: Sessa ibn Daher \n\n CRIADOR DA LINGUAGEM C: Dennis Ritchie \n\n PROGRAMADOR CHEFE E DESENVOLVEDOR: Sandro Generoso \n\n ANALISTA DE LOGICA: Sandro Generoso\n\n DESIGNER GRAFICO: Sandro Generoso\n\n ENGENHEIRO DE C: Sandro Generoso\n\n ASSISTENTE DE PROGRAMACAO: Sandro Generoso\n\n AGRADECIMENTOS: Departamento de Computacao e Matematica - USP Ribeirao Preto\n\n"); } int CHEQUE2() { /*Aqui eu tentarei ver se o rei preto está em cheque*/ int i, j, verificador, verificador2, contador=0; for (i=0; i<=7; i++) { for (j=0; j<=7; j++) { if(xadrez[i][j]=='t') { contador = 0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if(xadrez[i][j]=='c') { if((xadrez[i+2][j+1]=='R')||(xadrez[i+2][j-1]=='R')||(xadrez[i-2][j+1]=='R')||(xadrez[i+1][j+2]=='R')||(xadrez[i+1][j-2]=='R')||(xadrez[i-1][j+2]=='R')||(xadrez[i-1][j-2]=='R')||(xadrez[i-2][j-1]=='R')) { return 1; } } if(xadrez[i][j]=='p') { if((xadrez[i-1][j-1]=='R')||(xadrez[i-1][j+1]=='R')) { return 1; } } if(xadrez[i][j]=='b') { if(i>j) { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i-verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador = 0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i+verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-j)>i) { contador=0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i-verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-i)>j) { contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i+verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } } if(xadrez[i][j]=='d') { contador=0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } if(i>j) { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i-verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador = 0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i+verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-j)>i) { contador=0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i-verificador][j+verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-i)>j) { contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i+verificador][j-verificador]=='R') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } } } } return 0; } int cheque1() { int i, j, verificador, verificador2, contador=0; for (i=0; i<=7; i++) { for (j=0; j<=7; j++) { if(xadrez[i][j]=='T') { contador = 0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if(xadrez[i][j]=='C') { if((xadrez[i+2][j+1]=='r')||(xadrez[i+2][j-1]=='r')||(xadrez[i-2][j+1]=='r')||(xadrez[i+1][j+2]=='r')||(xadrez[i+1][j-2]=='r')||(xadrez[i-1][j+2]=='r')||(xadrez[i-1][j-2]=='r')||(xadrez[i-2][j-1]=='r')) { return 1; } } if(xadrez[i][j]=='P') { if((xadrez[i+1][j-1]=='r')||(xadrez[i+1][j+1]=='r')) { return 1; } } if(xadrez[i][j]=='B') { if(i>j) { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i-verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador = 0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i+verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-j)>i) { contador=0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i-verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-i)>j) { contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i+verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } } if(xadrez[i][j]=='D') { contador=0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } if(i>j) { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i-verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador = 0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i+verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-j)>i) { contador=0; for(verificador=1; verificador<=i; verificador++) { if(xadrez[i-verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=(7-j); verificador++) { if(xadrez[i-verificador][j+verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i-verificador2][j+verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } if((7-i)>j) { contador=0; for(verificador=1; verificador<=(7-i); verificador++) { if(xadrez[i+verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } else { contador=0; for(verificador=1; verificador<=j; verificador++) { if(xadrez[i+verificador][j-verificador]=='r') { for(verificador2=1; verificador2<verificador; verificador2++) { if(xadrez[i+verificador2][j-verificador2]!=' ') { contador++; } } if(contador==0) { return 1; } } } } } } } return 0; } /* xequemate(int cheque, int CHEQUE) { int i, j; for (i = 0; i <= 7; i++) { for (j = 0; j<=7; j++) { if((xadrez[i][j]=='r')&&(cheque==1)) { if((movimentoBranco2(i, i+1,j,j, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i-1,j,j, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i,j,j+1, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i,j,j-1, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i+1,j,j+1, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i+1,j,j-1, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i-1,j,j+1, CHEQUE, cheque)==0)&&(movimentoBranco2(i, i-1,j,j-1, CHEQUE, cheque)==0)) { return 1; } } if((xadrez[i][j]=='R')&&(CHEQUE==1)) { if((movimentoPreto2(i, i+1,j,j, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i-1,j,j, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i,j,j+1, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i,j,j-1, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i+1,j,j+1, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i+1,j,j-1, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i-1,j,j+1, CHEQUE, cheque)==0)&&(movimentoPreto2(i, i-1,j,j-1, CHEQUE, cheque)==0)) { return 2; } } } } return 0; } int movimentoBranco2(int Xo,int Xd,int Yo, int Yd, int CHEQUE, int cheque) { //Xo = Linha origem, Xd = Linha destino, Yo = Coluna origem, Yd = Coluna destino. int mover = 0; char peca; char auxiliar; int vertical, horizontal; int verificador, contador=0; vertical = abs(Xd - Xo); horizontal = abs(Yd - Yo); peca = xadrez[Xo][Yo]; if((Xo>=0&&Xo<8)&&(Xd>=0&&Xd<8)&&(Yo>=0&&Yo<8)&&(Yd>=0&&Yd<8)) { if((xadrez[Xd][Yd]=='t')||(xadrez[Xd][Yd]=='c')||(xadrez[Xd][Yd]=='b')||(xadrez[Xd][Yd]=='d')||(xadrez[Xd][Yd]=='r')||(xadrez[Xd][Yd]=='p')) { return 0; } else { if(peca=='r') { if((vertical >= 0 && vertical <= 1) && (horizontal >= 0 && horizontal <= 1)) { mover = 1; contareibranco++; } if((contareibranco==0)&&(contatorre1branco==0)&&(xadrez[7][5]==' ')&&(xadrez[7][6]==' ')&&((Yd-Yo)==2)&&(vertical==0)&&(cheque==0)) { mover = 2; contareibranco++; contatorre1branco++; } if((contareibranco==0)&&(contatorre2branco==0)&&(xadrez[7][3]==' ')&&(xadrez[7][2]==' ')&&(xadrez[7][1]==' ')&&((Yd-Yo)==-2)&&(vertical==0)&&(cheque==0)) { mover = 3; contareibranco++; contatorre2branco++; } } if(contador == 0) { if(mover==1) { auxiliar = xadrez[Xd][Yd]; xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; if(cheque1()==1) { xadrez[Xo][Yo] = xadrez[Xd][Yd]; xadrez[Xd][Yd] = auxiliar; mover = 0; } else { xadrez[Xo][Yo] = xadrez[Xd][Yd]; xadrez[Xd][Yd] = auxiliar; return 1; } } if(mover==0) { return 0; } if(mover==2) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[7][7] = ' '; xadrez[7][5] = 't'; return 1; } if(mover==3) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[7][0] = ' '; xadrez[7][3] = 't'; return 1; } } else { return 0; } } } else { return 0; } } int movimentoPreto2(int Xo,int Xd,int Yo, int Yd, int CHEQUE, int cheque) { //Xo = Linha origem, Xd = Linha destino, Yo = Coluna origem, Yd = Coluna destino. int mover = 0; char peca; char auxiliar; int vertical, horizontal; int verificador, contador=0; vertical = abs(Xd - Xo); horizontal = abs(Yd - Yo); peca = xadrez[Xo][Yo]; if((Xo>=0&&Xo<8)&&(Xd>=0&&Xd<8)&&(Yo>=0&&Yo<8)&&(Yd>=0&&Yd<8)) { if((xadrez[Xd][Yd]=='T')||(xadrez[Xd][Yd]=='C')||(xadrez[Xd][Yd]=='B')||(xadrez[Xd][Yd]=='D')||(xadrez[Xd][Yd]=='R')||(xadrez[Xd][Yd]=='P')) { return 0; } else { if(peca=='R') { if((vertical >= 0 && vertical <= 1) && (horizontal >= 0 && horizontal <= 1)) { mover = 1; contareipreto++; } if((contareibranco==0)&&(contatorre1branco==0)&&(xadrez[7][5]==' ')&&(xadrez[7][6]==' ')&&((Yd-Yo)==2)&&(vertical==0)&&(cheque==0)) { mover = 2; contareipreto++; contatorre1preto++; } if((contareibranco==0)&&(contatorre2branco==0)&&(xadrez[7][3]==' ')&&(xadrez[7][2]==' ')&&(xadrez[7][1]==' ')&&((Yd-Yo)==-2)&&(vertical==0)&&(cheque==0)) { mover = 3; contareipreto++; contatorre2preto++; } } if(contador == 0) { if(mover==1) { auxiliar = xadrez[Xd][Yd]; xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; if(cheque1()==1) { xadrez[Xo][Yo] = xadrez[Xd][Yd]; xadrez[Xd][Yd] = auxiliar; mover = 0; } else { xadrez[Xo][Yo] = xadrez[Xd][Yd]; xadrez[Xd][Yd] = auxiliar; return 1; } } if(mover==0) { return 0; } if(mover==2) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[0][7] = ' '; xadrez[0][5] = 'T'; return 1; } if(mover==3) { xadrez[Xd][Yd] = xadrez[Xo][Yo]; xadrez[Xo][Yo] = ' '; xadrez[0][0] = ' '; xadrez[0][3] = 'T'; return 1; } } else { return 0; } } } else { return 0; } } */
  3. Gente, até ontem o meu programa estava funcionando que era uma beleza! mas eu fiz algo nele por questões estéticas e não tá funcionando que nem antes, eu tenho que mostrar para o meu professor de manhã... já fiz tudo que pede no trabalho no papel(análise das funções, medição de tempo....) mas gostaria de tê-lo como antes, desconfio que o erro seja algo que eu tentei fazer na função de alocação dinâmica para ela receber uma só variavel: enfim, se puderem consertar para mim, seria de bom agrado! float **aloc_matriz(int linhas , int colunas) { int i; float **Matriz; Matriz = (float **)malloc(linhas*sizeof(float)); for (i=0; i<linhas; i++) { Matriz[i] = (float *)malloc(colunas*sizeof(float)); } return Matriz; } void desaloc_matriz(float **Matriz , int linhas) { int i; for(i=0; i<linhas; i++) { free(Matriz[i]); } } int identidade(int n, float **matriz) { int i, j; for (i=0; i<n; i++) { for (j=0; j<n; j++) { if(i==j) { if(matriz[i][j] != 1) { return 0; } } else { if(matriz[i][j] != 0) { return 0; } } } } return 1; } int ortogonal(int n, float **matriz) { int i, j, k; float **identidade = aloc_matriz(n,n);; float **transposta = aloc_matriz(n,n), **ortogonal = aloc_matriz(n,n); for(i=0; i<n; i++) { for(j=0; j<n; j++) { transposta[i][j]=matriz[j][i]; if(i==j) { identidade[i][j]=1; } else { identidade[i][j]=0; } } } desaloc_matriz(identidade, n); desaloc_matriz(transposta, n); for (i=0; i<n; i++) { for(j=0; j<n; j++) { for(k=0; k<n; k++) { ortogonal[i][j] += matriz[i][k]*transposta[k][j]; if(ortogonal[i][j] != identidade[i][j]) { return 0; } } } } return 1; } int traco(int n, float **matriz) { int i, j; float soma = 0; for(i=0; i<n; i++) { for(j=0; j<n; j++) { if(i==j) { soma += matriz[i][j]; } } } if(soma>0) { return 1; } else { return 0; } } int main() { int n, i, j; int I, II, III; float **matriz; printf("Digite o tamanho da matriz: "); scanf("%d", &n); matriz = aloc_matriz(n,n); for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("Digite o elemento de Matriz[%d][%d]: ",i+1, j+1); scanf("%f", &matriz[i][j]); } } desaloc_matriz(matriz , n); printf("\n\nSua matriz eh: "); for(i=0; i<n; i++) { printf("\n"); for(j=0; j<n; j++) { printf("%f\t", matriz[i][j]); } } I = identidade(n, matriz); if (I == 1) { printf("\nA matriz eh a identidade!\n\n"); } else { printf("\nA matriz nao eh identidade!\n\n"); } II = ortogonal(n, matriz); if (II == 1) { printf("\nA matriz eh a ortogonal!\n\n"); } else { printf("A matriz nao eh ortogonal!\n\n"); } III = traco(n, matriz); if(III==1) { printf("O traco eh positivo!\n\n"); } else { printf("O traco nao eh positivo!\n\n"); } }
  4. Olá programadores de C inteligentes, eu sou novo no Fórum, mas preciso de ajuda... estou a programar um jogo de xadrez em linguagem C, as peças estão funcionando bem em geral, mas há uma peça que está bem teimosa, o CAVALO! ele deveria se movimentar em uma espécie de 'L' andando duas casas em um sentido (horizontal ou vertical) e logo em seguida, uma casa em um sentido perpendicular. mas simplesmente não está andando. extrai parte do código de forma bem besta(o programa inteiro não é assim), para ver se vocês conseguem ver o problema: #include <stdio.h> char xadrez[8][8] = { {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', 'c', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '}, {' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '} }; int ImprimeTabuleiro() { system("cls"); int linha, coluna, repete; for (linha=0; linha<8; linha++) { for(repete=0; repete<3; repete++) { for (coluna=0; coluna<8; coluna++) { char peca = xadrez[linha][coluna]; char letra = ((linha+coluna)%2==0) ? '\xB2' : ' '; letra = (repete == 1 && peca != ' ') ? peca : letra; if((linha+coluna)%2==0) { printf("\xB2\%c\xB2", letra); } else { printf(" %c ", letra); } } printf(" \n"); } } } int movimento(int LinOri, int ColOri, int LinDes, int ColDes) { int mover = 0; char peca; int Vertical = abs(LinDes - LinOri); int Horizontal = abs(ColDes - ColOri); if((peca == 'c') && (Vertical == 2 && Horizontal == 1)) { mover = 1; } if((peca == 'c') && (Vertical == 1 && Horizontal == 2)) { mover = 1; } if(mover == 1) { xadrez[LinDes][ColDes] = xadrez[LinOri][ColOri]; xadrez[LinOri][ColOri] = ' '; return 1; } else { return 2; } } int main() { int LinOri, LinDes, ColOri, ColDes; while (1) { ImprimeTabuleiro(); printf("\nCOORDENADAS DE ORIGEM DA PEÇA: (linha, coluna): "); scanf("%d %d", &LinOri, &ColOri); printf("\nCOORDENADAS DE DESTINO DA PEÇA: (linha, coluna): "); scanf("%d %d", &LinDes, &ColDes); if (movimento(LinOri,ColOri,LinDes,ColDes) != 1) { printf("\nERRO: O CAVALO não SE MOVIMENTA ASSIM!"); getch(); } } getch(); return 0; } Na teoria, se eu digitasse 3 3 e depois 1 2, ou algo deste tipo era para ele se movimentar por favor, me digam qual é o problema... Obrigado!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!