Sudoku en C

0buS

Hola,

Pues eso, estoy intentando hacer un sudoku en c, y me estoy encontrando con problemas a la hora de mostrar los numeros introducidos.

A ver, al dibujar la cuadricula, imprimo todo con la salida %c. (para el uso de caracteres ascii y eso).

Estoy inicializando todos los numeros de la tabla a 'espacio en blanco'. Bien, si imprimo todo la tabla más los numeros todo con %c, no hay problema. Pero a la hora de introducir un numero, en lugar de imprimir el numero, imprime el valor de ese numero de la tabla ASCII.

Pero si en lugar de imprimir los numeros con %c, los imprimo con %d, me imprime en lugar de un espacio en blanco, el numero 32. (su equivalente).

Como arreglo esto? xD

Gracias!.

Edit: Bueno he hecho un apaño usando un switch y cambiando el valor al valor ASCII. Pero creo que esto me traerá problemas a la hora de comprobar los numeros. Alguna forma menos sucia?

BLZKZ

que poco me gusta C xD ( o mejor dicho que poco me gusta stdio.h xD)

Para imprimir puedes hacer un if (casilla== ' ') imprimes con %c, si no imprimes con %d

0buS

De momento lo dejo con el switch a ver que pasa.

Alguno habeis hecho ya el sudoku? De que forma comprobabais si es o no correcto el numero?

elkaoD

http://www.mediavida.com/vertema.php?fid=9&tid=347690

Seguro que te sirve.

Para solucionar tu problema, en lugar de guardar el número introducido en la cuadrícula con su valor ASCII, guárdalo con su valor ASCII-'0'. Si al valor ASCII de '1' le quitas el valor ASCII de '0' se te queda como valor 1 (No sé si me explico.) Recuerda que un carácter entre comillas simples evalúa como el valor ASCII del carácter y no el número en sí.

EDIT: Como veo que puse miles de links a diferentes versiones, te subo la versión que tengo en disco: http://pastebin.com/f1279cfe7

Usuarios habituales

  • elkaoD
  • 0buS
  • BLZKZ