From d9771a17c2d9f9dc20d6cac95d3e89f601dc1839 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Tue, 23 May 2017 00:53:52 -0300 Subject: [PATCH] =?UTF-8?q?Add=20fun=C3=A7=C3=A3o=20para=20ver=20m=C3=ADni?= =?UTF-8?q?mo=20e=20m=C3=A1ximo=20de=20jogadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 ++-- main.c | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 19e58f7..7c05fe5 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -CFLAGS = -std=c99 -O2 -W -Wall -g +CFLAGS = -std=c99 -O2 -W -Wall -g .PHONY: all clean @@ -11,7 +11,7 @@ test: main ./runTests.sh main: main.c libs/jogador.o libs/tabuleiro.o libs/grafo.o libs/vertice.o libs/filha.o libs/lista.o libs/no.o - $(CC) $(CFLAGS) -o $@ $^ + $(CC) $(CFLAGS) -o $@ $^ -lm clean: $(RM) *.o diff --git a/main.c b/main.c index 6752821..8d59c2b 100644 --- a/main.c +++ b/main.c @@ -3,20 +3,40 @@ #include <stdio.h> #include <stdbool.h> #include <time.h> +#include <math.h> #include "libs/tabuleiro.h" #include "libs/no.h" #include "libs/lista.h" #include "libs/grafo.h" #include "libs/jogador.h" -int main() { +int main(int argc, char *argv[]) { Tblr t = criaTblr(); // Aloca o tabuleiro em um único array em vez de um "array de arrays" if(!leTblr(t)) { puts("Erro na leitura do tabuleiro"); return -1; } - + + // Se colocar UMA e APENAS UMA coisa depois do main + if(argc == 2) { + // Calcula e imprime o número mínimo e máximo de jogadas + if(t->x != t->y) { + puts("Apenas funciona para tabuleiros quadrados"); + } else { + // Max é 2n + sqrt(2k)n + k + double max = 2*(t->x) + (sqrt(2*t->cores))*(t->x) + t->cores; + printf("\tNúmero máximo de jogadas: %f\n", max); + // Min é válido para 2 <= k <= n² + // Min é sqrt(k - 1)n/2 - k/2 + if(t->cores >= 2 && t->cores <= (t->x*t->x)) { + double n2 = t->x/2; + double min = (sqrt(t->cores - 1)*t->x/2) - (t->cores/2); + printf("\tNúmero mínimo de jogadas: %f\n", min); + } + } + } + //TODO imprimindo o tabuleiro // imprimeTblr(t); -- GitLab