Skip to content
Snippets Groups Projects
Commit d9771a17 authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Add função para ver mínimo e máximo de jogadas

parent e6e8c8f2
No related branches found
No related tags found
No related merge requests found
Pipeline #
CFLAGS = -std=c99 -O2 -W -Wall -g CFLAGS = -std=c99 -O2 -W -Wall -g
.PHONY: all clean .PHONY: all clean
...@@ -11,7 +11,7 @@ test: main ...@@ -11,7 +11,7 @@ test: main
./runTests.sh ./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 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: clean:
$(RM) *.o $(RM) *.o
......
...@@ -3,20 +3,40 @@ ...@@ -3,20 +3,40 @@
#include <stdio.h> #include <stdio.h>
#include <stdbool.h> #include <stdbool.h>
#include <time.h> #include <time.h>
#include <math.h>
#include "libs/tabuleiro.h" #include "libs/tabuleiro.h"
#include "libs/no.h" #include "libs/no.h"
#include "libs/lista.h" #include "libs/lista.h"
#include "libs/grafo.h" #include "libs/grafo.h"
#include "libs/jogador.h" #include "libs/jogador.h"
int main() { int main(int argc, char *argv[]) {
Tblr t = criaTblr(); Tblr t = criaTblr();
// Aloca o tabuleiro em um único array em vez de um "array de arrays" // Aloca o tabuleiro em um único array em vez de um "array de arrays"
if(!leTblr(t)) { if(!leTblr(t)) {
puts("Erro na leitura do tabuleiro"); puts("Erro na leitura do tabuleiro");
return -1; 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 //TODO imprimindo o tabuleiro
// imprimeTblr(t); // imprimeTblr(t);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment