Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by pja on 28/02/2019.
- //
- #include <stdio.h>
- #include "estado.h"
- #include "interpretador.h"
- char maisPecas (ESTADO* e) {
- char c;
- int pontX = 0, pontY = 0, i, j;
- for (i = 0; i < 8; i++)
- for (j = 0; j < 8; j++){
- if (e->grelha[i][j] == VALOR_X) pontX += 1;
- if (e->grelha[i][j] == VALOR_O) pontY += 1;
- }
- if (pontX > pontY) c = 'X';
- if (pontX < pontY) c = 'O';
- return c;
- }
- void fimJogoFinal (ESTADO e){
- if (fimJogo1(&e) == 0 || fimJogo2(&e) == 0)
- printf ("O Vencedor é: %c\n", maisPecas(&e));
- }
- //tabuleiro completamente preenchido
- int fimJogo1 (ESTADO* e){
- int i, j, r = 1;
- for (i = 0; i < 8; ++i)
- for (j = 0; j < 8; ++j) {
- if (e->grelha[i][j] == VAZIA || e->grelha[i][j] == VALIDA) break;
- }
- if (i == 8 && j == 8) r = 0;
- return r;
- }
- int fimJogo2 (ESTADO* e){
- int i, j, c, k, r = 1;
- valida(e);
- for (i = 0; i < 8; ++i)
- for (j = 0; j < 8; ++j)
- if (e->grelha[i][j] == VALIDA) break;
- zerarValida(e);
- e->peca = peca_dif(e->peca);
- valida(e);
- for (c = 0; c < 8; ++c)
- for (k = 0; k < 8; ++k)
- if (e->grelha[i][j] == VALIDA) break;
- zerarValida(e);
- if (i == 8 && j == 8 && c == 8 && k == 8) r = 0;
- return r;
- }
- //Conta as peças de cada jogador
- void pontuacao (ESTADO *e){
- int i,j,pontX = 0, pontY = 0;
- for (i = 0; i < 8; i++)
- for (j = 0; j < 8; j++){
- if (e->grelha[i][j] == VALOR_X) pontX += 1;
- if (e->grelha[i][j] == VALOR_O) pontY += 1;
- }
- printf("Pontuacao:\nX: %d\nO: %d\n", pontX, pontY);
- }
- //Põe o tabuleiro todo vazio
- void tudoZero(ESTADO *e)
- {
- int i,j;
- for (i = 0; i < 8; ++i)
- for (j = 0; j < 8; ++j)
- e->grelha[i][j] = VAZIA;
- }
- //Inicia o jogo
- ESTADO grelha_inicial (ESTADO e, char peca, char modo){
- tudoZero(&e);
- e.grelha [3][4] = VALOR_X;
- e.grelha [4][3] = VALOR_X;
- e.grelha [3][3] = VALOR_O;
- e.grelha [4][4] = VALOR_O;
- e.peca = peca;
- e.modo = modo;
- return e;
- }
- //imprimir tabuleiro
- void printa(ESTADO e)
- {
- printf ("\n");
- printf ("%c %c\n", e.modo, valorToChar(e.peca));
- printf (" 0 1 2 3 4 5 6 7\n");
- char c = ' ';
- for (int i = 0; i < 8; i++) {
- printf("%d ", i);
- for (int j = 0; j < 8; j++) {
- switch (e.grelha[i][j]) {
- case VALOR_O: {
- c = 'O';
- break;
- }
- case VALOR_X: {
- c = 'X';
- break;
- }
- case VAZIA: {
- c = '-';
- break;
- }
- case VALIDA: {
- c = '.';
- break;
- }
- case SUGESTAO: {
- c = '?';
- break;
- }
- }
- printf("%c ", c);
- }
- printf("\n");
- }
- printf ("\n");
- pontuacao(&e);
- fimJogoFinal(e);
- //afds
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement