From e20323179b026169ef653114dc3bf3732d608df7 Mon Sep 17 00:00:00 2001 From: Timo Kokkonen Date: Sat, 20 Jun 2009 23:18:20 +0300 Subject: [PATCH] Add sudokutranslator That can be used to convert compact sudoku prints to human readable form. --- .gitignore | 2 ++ Makefile | 8 ++++++-- translator.cpp | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 translator.cpp diff --git a/.gitignore b/.gitignore index 0e4e597..8e33ea2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ *~ sudokusolver sudokugenerator +sudokutranslator +TAGS diff --git a/Makefile b/Makefile index 5a357d5..a9010cd 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,9 @@ LDFLAGS=-fopenmp SOLVER_OBJS= solver.o sudoku.o random.o GENERATOR_OBJS= generator.o sudoku.o random.o +TRANSLATOR_OBJS=translator.o sudoku.o random.o -all: sudokusolver sudokugenerator +all: sudokusolver sudokugenerator sudokutranslator sudokusolver: $(SOLVER_OBJS) $(CC) $(LDFLAGS) $(SOLVER_OBJS) -o sudokusolver @@ -13,11 +14,14 @@ sudokusolver: $(SOLVER_OBJS) sudokugenerator: $(GENERATOR_OBJS) $(CC) $(LDFLAGS) $(GENERATOR_OBJS) -o sudokugenerator +sudokutranslator: $(TRANSLATOR_OBJS) + $(CC) $(LDFLAGS) $(TRANSLATOR_OBJS) -o sudokutranslator + %.o: %.cpp $(CC) -MMD -MF .$@.d $(CFLAGS) -c $< -o $@ clean: - rm -rfv *~ *.o .*.d sudokusolver sudokugenerator + rm -rfv *~ *.o .*.d sudokusolver sudokugenerator translator TAGS: etags *.[ch] diff --git a/translator.cpp b/translator.cpp new file mode 100644 index 0000000..05c0b9e --- /dev/null +++ b/translator.cpp @@ -0,0 +1,33 @@ +#include +#include +#include + +#include "sudoku.h" + +int main(int argc, char *argv[]) +{ + char str[10]; + int x, y, i = 0; + sudoku sudo; + std::string line; + + if (argc < 2) { + printf("Not enough arguments given\n"); + return 1; + } + + if (strlen(argv[1]) < 81) { + printf("Too short input given\n"); + return 2; + } + + for (y = 0; y < 9; y++) { + for (x = 0; x < 9; x++, i++) + str[x] = argv[1][i]; + str[9] = 0; + line = str; + sudo.str_to_row(y, line); + } + + sudo.print(); +} -- 2.45.0