#include #include #include struct{ char jog1[20], jog2[20], ganhador[20]; int cont1, cont2, pont_max; }dama; FILE *historico; void jogador1(char matriz[8][8],char jogador, int oposto) { system("color 79"); int i,j,l,c,li,co,opcao=0; do { system("cls"); if(jogador==1) printf("\n\n---------------- A VEZ E A DO JOGADOR PECA @ ----------\n\n\n\n"); if(jogador==2) printf("\n\n---------------- A VEZ E A DO JOGADOR PECA # ------------\n\n\n\n"); printf("\t \t\t 0 1 2 3 4 5 6 7 \n"); for(i=0;i<8;i++) { printf("\n\t\t\t%d ",i); for(j=0;j<8;j++) printf("%c ",matriz[i][j]); } printf("\n\n\t*************** CORDENADA DA PECA **********************"); printf("\n\tLINHA: "); scanf("%d",&l); printf("\n\tCOLUNA: "); scanf("%d",&c); printf("\n\n\t****COORDENADA DA POSICAO QUE A PECA VAI OCULPAR****"); printf("\n\tLINHA: "); scanf("%d",&li); printf("\n\tCOLUNA: "); scanf("%d",&co); if((li+co)%2==0) { if((jogador==1&&lli)) { printf("linha\n"); if(c-1==co||c+1==co) { if(co==c-1) { matriz[li][co] = jogador; matriz[l][c] = 0; opcao++; } if(co==c+1) { matriz[li][co] = jogador; matriz[l][c] = 0; opcao++; } } if(matriz[l+1][c+1]==oposto) { if(c+2==co) { matriz[li][co] = jogador; matriz[l][c] = 0; opcao++; matriz[l+1][c+1]=0; } } if(matriz[l+1][c-1]==oposto) { if(c-2==co) { matriz[li][co] = jogador; matriz[l][c] = 0; matriz[l+1][c-1]=0; opcao++; } } if(matriz[l-1][c+1]==oposto) { if(c+2==co) { matriz[li][co] = jogador; matriz[l][c] = 0; opcao++; matriz[l-1][c+1]=0; } } if(matriz[l-1][c-1]==oposto) { if(c-2==co) { matriz[li][co] = jogador; matriz[l][c] = 0; matriz[l-1][c-1]=0; opcao++; } } } else printf("\n\n\t\t__________MOVIMENTO INVALIDO!!_________\n\t\t_________TENTE NOVAMENTE________\n"); } system("pause"); }while(opcao!=1); } void ganhador(char matriz[8][8]) { int i,j; for(i=0;i<8;i++) for(j=0;j<8;j++) { if(matriz[i][j]==2) dama.cont1++; if(matriz[i][j]==1) dama.cont2++; } if(dama.cont1>dama.cont2) { printf("\n\tVENCEDOR........-> %s TOTAL DE PECAS: %d\n\n",dama.jog1,dama.cont1); strcpy(dama.ganhador, dama.jog1); dama.pont_max=dama.cont1; } else { if(dama.cont1 %s TOTAL DE PECAS: %d\n\n",dama.jog2,dama.cont2); strcpy(dama.ganhador, dama.jog2); dama.pont_max=dama.cont2; } else{ printf("\n\tEmpate!\n\t%s: %d\n\t%s: %d\n\n\n",dama.jog1,dama.cont1,dama.jog2,dama.cont2); strcpy(dama.ganhador,"jogo empatado"); dama.pont_max=dama.cont2; } } } void registro(void){ fwrite(&dama, sizeof(dama), 1, historico); } void escreve(void){ rewind(historico); while(fread(&dama, sizeof(dama), 1, historico)==1)//LER A INFORMACAO ATE A ULTIMA. printf("\nJogador peca preta: %s\nJogador peca branca: %s\nVencedor: %s Total de pecas: %d\n\n",dama.jog1, dama.jog2, dama.ganhador, dama.pont_max); } int main(int argc, char *argv[]) { char opcao2; char matriz[8][8]; int i,j, jogador=2,oposto=1,opcao=0; dama.cont1=dama.cont2=0; historico=fopen("Historico_dama.bin", "ab+"); matriz[0][0]= '@'; matriz[0][1]= 178; matriz[0][2]= '@'; matriz[0][3] = 178; matriz[0][4] = '@'; matriz[0][5]= 178; matriz[0][6]= '@'; matriz[0][7]= 178; matriz[1][0]= 178; matriz[1][1]= '@'; matriz[1][2]= 178; matriz[1][3] = '@'; matriz[1][4] = 178;matriz[1][5]= '@'; matriz[1][6]= 178; matriz[1][7]= '@'; matriz[2][0]= '@'; matriz[2][1]= 178; matriz[2][2]= '@'; matriz[2][3] = 178; matriz[2][4] = '@'; matriz[2][5]= 178; matriz[2][6]= '@'; matriz[2][7]= 178; matriz[3][0]= (178); matriz[3][1] = 0; matriz[3][2]= 178; matriz[3][3] = 0; matriz[3][4] = 178;matriz[3][5]= 0; matriz[3][6]= 178; matriz[3][7]= 0; matriz[4][0]=0; matriz[4][1]= 178; matriz[4][2]= 0; matriz[4][3] = 178; matriz[4][4] = 0; matriz[4][5]= 178; matriz[4][6]= 0; matriz[4][7]= 178; matriz[5][0]= 178; matriz[5][1]= '#'; matriz[5][2]= 178; matriz[5][3] = '#'; matriz[5][4] = 178;matriz[5][5]= '#'; matriz[5][6]= 178; matriz[5][7]= '#'; matriz[6][0]= '#'; matriz[6][1]= 178; matriz[6][2]= '#'; matriz[6][3] = 178; matriz[6][4] = '#'; matriz[6][5]= 178; matriz[6][6]= '#'; matriz[6][7]= 178; matriz[7][0]= 178; matriz[7][1]= '#'; matriz[7][2]= 178; matriz[7][3] = '#'; matriz[7][4] = 178;matriz[7][5]= '#'; matriz[7][6]= 178; matriz[7][7]= '#'; do{ system("color 79"); printf("\tEscolha uma das op%c%ces abaixo:\n\n",135,228); printf("\t%c A Jogar.\n\t%c B Sair.\n\n"); printf("\tOp%c%co: ",135,198); scanf("%s",&opcao2); system("cls"); switch(opcao2){ case 'A' : case 'a': system("color 79"); printf("\n\n\t\t\tPersistindo o empate o jogo pode terminar por tempo....."); printf("\n\n\n"); printf("\n\n\n\t\t Bom Jogo"); printf("\n\n\n"); system("pause"); system("cls"); system("color 79"); printf("\n\n\t\tINFORME O NOME DO JOGADOR PECA #:\n\n\t\t\t\t");//NOME DOS JOGADORES.. scanf("%s",dama.jog1); printf("\n\n\t\tINFORME O NOME DO JOGADOR PECA @:\n\n\t\t\t\t ");//NOME DOS JOGADORES.. scanf("%s",dama.jog2); int tempo = clock(); while(clock()-tempo<500000000) { jogador=1;oposto=2; jogador1(matriz,jogador,oposto); jogador=2;oposto=1; jogador1(matriz,jogador,oposto); } system("cls"); system("color 79"); printf("\n\t\t..........O Tempo Acabou...........\n\n\n"); ganhador(matriz); registro(); system("pause"); system("cls"); break; case 'B': case'b': system("color 79"); printf("\n\n\n\n\t\t\t FIM DO JOGO\n\n\n\n\n");exit(0); break; default: system("cls"); printf("Digite A para jogar ou B para sair\n\n\n\n\n"); } }while (opcao2= 'A'); system("PAUSE"); return 0; }