]> git.itanic.dy.fi Git - sudoku/commitdiff
Add sudokutranslator
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Sat, 20 Jun 2009 20:18:20 +0000 (23:18 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Sat, 20 Jun 2009 20:18:20 +0000 (23:18 +0300)
That can be used to convert compact sudoku prints to human readable
form.

.gitignore
Makefile
translator.cpp [new file with mode: 0644]

index 0e4e5973ff5f844bf668e0d927e365f5fa76576a..8e33ea2da6b6e9fe8c168a8b1604d5a808b5a784 100644 (file)
@@ -4,3 +4,5 @@
 *~
 sudokusolver
 sudokugenerator
+sudokutranslator
+TAGS
index 5a357d5c661a31a578f2c7dbabb41839721db23a..a9010cd921d26061cf86e44cf45bede46ffe0649 100644 (file)
--- 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 (file)
index 0000000..05c0b9e
--- /dev/null
@@ -0,0 +1,33 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#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();
+}