Warning: The magic method Slickr_Flickr_Plugin::__wakeup() must have public visibility in /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php on line 152

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /home/kenbauer/public_kenscourses/tc101winter2015/wp-content/plugins/slickr-flickr/classes/class-plugin.php:152) in /home/kenbauer/public_kenscourses/tc101winter2015/wp-includes/rest-api/class-wp-rest-server.php on line 1831
{"id":14114,"date":"2015-05-06T16:56:20","date_gmt":"2015-05-06T21:56:20","guid":{"rendered":"https:\/\/feraguirre962.withknown.com\/2015\/project"},"modified":"2015-05-06T16:56:20","modified_gmt":"2015-05-06T21:56:20","slug":"project-7","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc101winter2015\/2015\/project-7\/","title":{"rendered":"#PROJECT"},"content":{"rendered":"
\n

Primeramente lo que hicimos fue investigar y ver como se resolv\u00eda un Sudoku, lo m\u00e1s importantes del Sudoku es que no se repitan los n\u00fameros tanto en filas, columnas y dentro del mismo cuadrante, los n\u00fameros permitidos son del 1 al 9 solamente y el usuario gana cuando haya acomodado estos n\u00fameros dentro de TODOS los cuadrantes con la condici\u00f3n de que no se repitan de ninguna manera en filas, columnas y cuadrantes.<\/p>\n

Primero lo que hicimos fue identificar como checar que no se repita el n\u00famero que ingresas de forma horizontal (fila) y para esto utilizamos una funci\u00f3n INT donde usamos un FOR para que cheque los valores en Y, dentro de este FOR utilizamos condicionales para que primero cheque si hay un n\u00famero o no, si no lo hay pues no checa nada, si hay alg\u00fan numero empieza a checar que ese n\u00famero no se repita con otros que ya est\u00e9n, si es as\u00ed y se repite, entonces el juego no nos dejar\u00e1 ganar. Usamos esos n\u00fameros o posiciones para checar que si ninguno se repite, entonces guarda este resultado para despu\u00e9s usarlo en la funci\u00f3n que nos har\u00e1 ganar. <\/span><\/p>\n

Despu\u00e9s hicimos lo mismo b\u00e1sicamente pero cambiando los par\u00e1metros de nuestro sudoku para que en lugar de checar horizontal, cheque los n\u00fameros de forma vertical; es b\u00e1sicamente lo mismo porque de igual manera solo puede estar el n\u00famero \u201c1\u201d una sola vez, y as\u00ed para los otros 8 n\u00fameros restantes, de igual manera cuando la condici\u00f3n de que no se repitan los n\u00fameros se cumpla, se registrar\u00e1 que no se repiten y de esta manera el programa nos dejar\u00e1 ganar.<\/span><\/p>\n

Para checar que en cada cuadrante no se repita ning\u00fan n\u00famero del 1 al 9, usamos de la misma manera una funci\u00f3n tipo INT con 4 par\u00e1metros para que cheque que ning\u00fan n\u00famero de los ingresados se repita. Usamos un doble FOR para que este cheque cuadrantes, los cuales en el INT MAIN cambiamos par\u00e1metros para que cheque por ejemplo el primer cuadrante, despu\u00e9s con el cambio de esos par\u00e1metro checar el segundo cuadrante y as\u00ed sucesivamente. Esto es de lo que m\u00e1s nos cost\u00f3 trabajo desarrollar en forma de c\u00f3digo porque es dif\u00edcil idear como el programa tiene que correr para que cheque todos y cada uno de los cuadrantes. Una vez que sabes y tienes en mente como desarrollarlo con FOR, ya lo dem\u00e1s es f\u00e1cil y simplemente trata de escribir el c\u00f3digo.<\/span><\/p>\n

Para que el usuario al iniciar el juego, vea y conozca las reglas, usamos una funci\u00f3n VOID para que no nos regrese nada pero imprima lo que pongamos en el COUT y ah\u00ed mismo el usuario solamente va a leer lo que aparezca en la pantalla.<\/span><\/p>\n

Tambi\u00e9n usamos una funci\u00f3n INT que nos checa la celda en la que queremos introducir un n\u00famero para ver que haya espacio, si ya existe alg\u00fan n\u00famero en ese espacio, el programa a la hora de querer ingresar X n\u00famero, nos dir\u00e1 que ese espacio no es v\u00e1lido, que intentemos de nuevo. Para esto simplemente usamos un condicional que checa que si hay una X en ese espacio, nos va a dejar sustituirlo por un n\u00famero, si no, nos dir\u00e1 que intentemos con otra celda.<\/span><\/p>\n

Por \u00faltimo utilizamos una funci\u00f3n INT llamada borrar, que lo que hace es checar nuestro plano, nuestro Sudoku y checa que haya alg\u00fan n\u00famero (de igual forma con un condicional IF), si hay un n\u00famero lo que va a hacer es darle un valor de 0 para que el programa despu\u00e9s nos lo imprima como X, si no hay un n\u00famero nos dir\u00e1 que intentemos de nuevo, y de igual forma, si queremos borrar un n\u00famero base que ya ESTA ESTABLECIDO, nos dir\u00e1 el programa que ese n\u00famero no puede ser modificado.<\/span><\/p>\n

Por \u00faltimo hicimos el INT MAIN que b\u00e1sicamente corre y toma todas las funciones anteriormente realizadas, y declaramos variables tipo CHAR, INT y STRINGS; por otra parte utilizamos un archivo base en el que ya hay n\u00famero establecidos y fijos los cuales no se pueden modificar, y para esto debemos tomar un archivo y leerlo, despu\u00e9s en nuestra funci\u00f3n que imprime el Sudoku, cambiar los valores que tiene como 0 por X\u2019s y para que nuestro c\u00f3digo en C++ pueda leer el c\u00f3digo, tuvimos que incluir al principio de nuestro c\u00f3digo, la librer\u00eda de igual manera utilizamos una librer\u00eda especial que encontramos en internet, la cual nos permite imprimir valores, letras, n\u00fameros o caracteres en alg\u00fan color que definimos de igual manera al principio del c\u00f3digo, esta librer\u00eda se llama . Lo que m\u00e1s raro y chistoso se nos hizo fue que no se nos ocurr\u00eda como hacer una funci\u00f3n que reiniciara el juego, pero despu\u00e9s de quebrarnos tanto la cabeza, entendimos y se nos ocurri\u00f3 dentro del INT MAIN que si el usuario pide \u201cReiniciar el juego\u201d solo llamar\u00edamos a la funci\u00f3n INT MAIN para que vuelva a correr todo lo que \u00e9sta dentro de esta funci\u00f3n. Dentro del INT MAIN fue donde cambiamos los par\u00e1metros para la funci\u00f3n que checa los cuadrantes y finalmente si se cumplen las condiciones que est\u00e1n dentro de cada funci\u00f3n que checa, el juego habr\u00e1 terminado y el jugador habr\u00e1 ganado el juego. <\/stdio.h><\/fstream><\/span><\/p>\n

De igual manera dentro del INT MAIN es donde est\u00e1n cada una de las opciones que queremos para que el usuario pida para realizar una acci\u00f3n, al final si el usuario pide \u201cSalir\u201d lo que nuestro programa har\u00e1 es terminar todas las otras funciones que estaba\u00a0 haciendo y simplemente usamos un RETURN 0 para que ya no aparezca nada, simplemente dar\u00e1 las gracias por jugar y se saldr\u00e1 de nuestro c\u00f3digo.<\/span><\/p>\n

Lo que m\u00e1s se nos hizo dif\u00edcil fue encontrar las librer\u00edas para definir colores, adem\u00e1s de pensar c\u00f3mo hacer las funciones CHECAR y lo extenso del c\u00f3digo para hacer un Sudoku es de lo que m\u00e1s se nos hizo dif\u00edcil. Para solucionar todo esto recurrimos a Internet, amigos, pero principalmente en el libro dan muchas ideas y tipos de variables, funciones que nos permiten hacer que nuestro Sudoku corra de manera correcta y no nos marque errores (los cuales hubo much\u00edsimos pero se solucionaron).<\/span><\/p>\n

\u00a0<\/p>\n

Es un proyecto muy padre porque engloba todo lo que ves en el semestre b\u00e1sicamente y lo principal es que es muy divertido y es muy interesante saber c\u00f3mo por medio de c\u00f3digo en un lenguaje determinado, la computadora lo interpreta y da como resultado algo que nosotros nos proponemos. Muy buen proyecto.<\/span><\/p>\n

#PROJECT<\/a><\/span><\/p>\n

Aqu\u00ed est\u00e1 el link con nuestro c\u00f3digo en Github:<\/span><\/p>\n

https:\/<\/wbr>\/<\/wbr>github.com\/<\/wbr>kenwbauer\/<\/wbr>LuisAngelFernando\/<\/wbr>blob\/<\/wbr>master\/<\/wbr>Sudoku%20Final<\/a><\/span><\/p>\n

Y por ultimo aqu\u00ed esta una imagen de nuestro Sudoku corriendo en una computadora.<\/span><\/p>\n

\"\"<\/span><\/p>\n

\u00a0<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"

\n

Primeramente lo que hicimos fue investigar y ver como se resolvía un Sudoku, lo más importantes del Sudoku es que no se repitan los números tanto en filas, columnas y dentro del mismo cuadrante, los números permitidos son del 1 al 9 solamente y el usuario gana cuando haya acomodado estos números dentro de TODOS los cuadrantes con la condición de que no se repitan de ninguna manera en filas, columnas y cuadrantes.<\/p>\n

Primero lo que hicimos fue identificar como checar que no se repita el número que ingresas de forma horizontal (fila) y para esto utilizamos una función INT donde usamos un FOR para que cheque los valores en Y, dentro de este FOR utilizamos condicionales para que primero cheque si hay un número o no, si no lo hay pues no checa nada, si hay algún numero empieza a checar que ese número no se repita con otros que ya estén, si es así y se repite, entonces el juego no nos dejará ganar. Usamos esos números o posiciones para checar que si ninguno se repite, entonces guarda este resultado para después usarlo en la función que nos hará ganar. <\/span><\/p>\n

Después hicimos lo mismo básicamente pero cambiando los parámetros de nuestro sudoku para que en lugar de checar horizontal, cheque los números de forma vertical; es básicamente lo mismo porque de igual manera solo puede estar el número “1” una sola vez, y así para los otros 8 números restantes, de igual manera cuando la condición de que no se repitan los números se cumpla, se registrará que no se repiten y de esta manera el programa nos dejará ganar.<\/span><\/p>\n

Para checar que en cada cuadrante no se repita ningún número del 1 al 9, usamos de la misma manera una función tipo INT con 4 parámetros para que cheque que ningún número de los ingresados se repita. Usamos un doble FOR para que este cheque cuadrantes, los cuales en el INT MAIN cambiamos parámetros para que cheque por ejemplo el primer cuadrante, después con el cambio de esos parámetro checar el segundo cuadrante y así sucesivamente. Esto es de lo que más nos costó trabajo desarrollar en forma de código porque es difícil idear como el programa tiene que correr para que cheque todos y cada uno de los cuadrantes. Una vez que sabes y tienes en mente como desarrollarlo con FOR, ya lo demás es fácil y simplemente trata de escribir el código.<\/span><\/p>\n

Para que el usuario al iniciar el juego, vea y conozca las reglas, usamos una función VOID para que no nos regrese nada pero imprima lo que pongamos en el COUT y ahí mismo el usuario solamente va a leer lo que aparezca en la pantalla.<\/span><\/p>\n

También usamos una función INT que nos checa la celda en la que queremos introducir un número para ver que haya espacio, si ya existe algún número en ese espacio, el programa a la hora de querer ingresar X número, nos dirá que ese espacio no es válido, que intentemos de nuevo. Para esto simplemente usamos un condicional que checa que si hay una X en ese espacio, nos va a dejar sustituirlo por un número, si no, nos dirá que intentemos con otra celda.<\/span><\/p>\n

Por último utilizamos una función INT llamada borrar, que lo que hace es checar nuestro plano, nuestro Sudoku y checa que haya algún número (de igual forma con un condicional IF), si hay un número lo que va a hacer es darle un valor de 0 para que el programa después nos lo imprima como X, si no hay un número nos dirá que intentemos de nuevo, y de igual forma, si queremos borrar un número base que ya ESTA ESTABLECIDO, nos dirá el programa que ese número no puede ser modificado.<\/span><\/p>\n

Por último hicimos el INT MAIN que básicamente corre y toma todas las funciones anteriormente realizadas, y declaramos variables tipo CHAR, INT y STRINGS; por otra parte utilizamos un archivo base en el que ya hay número establecidos y fijos los cuales no se pueden modificar, y para esto debemos tomar un archivo y leerlo, después en nuestra función que imprime el Sudoku, cambiar los valores que tiene como 0 por X’s y para que nuestro código en C++ pueda leer el código, tuvimos que incluir al principio de nuestro código, la librería de igual manera utilizamos una librería especial que encontramos en internet, la cual nos permite imprimir valores, letras, números o caracteres en algún color que definimos de igual manera al principio del código, esta librería se llama . Lo que más raro y chistoso se nos hizo fue que no se nos ocurría como hacer una función que reiniciara el juego, pero después de quebrarnos tanto la cabeza, entendimos y se nos ocurrió dentro del INT MAIN que si el usuario pide “Reiniciar el juego” solo llamaríamos a la función INT MAIN para que vuelva a correr todo lo que ésta dentro de esta función. Dentro del INT MAIN fue donde cambiamos los parámetros para la función que checa los cuadrantes y finalmente si se cumplen las condiciones que están dentro de cada función que checa, el juego habrá terminado y el jugador habrá ganado el juego. <\/span><\/p>\n

De igual manera dentro del INT MAIN es donde están cada una de las opciones que queremos para que el usuario pida para realizar una acción, al final si el usuario pide “Salir” lo que nuestro programa hará es terminar todas las otras funciones que estaba  haciendo y simplemente usamos un RETURN 0 para que ya no aparezca nada, simplemente dará las gracias por jugar y se saldrá de nuestro código.<\/span><\/p>\n

Lo que más se nos hizo difícil fue encontrar las librerías para definir colores, además de pensar cómo hacer las funciones CHECAR y lo extenso del código para hacer un Sudoku es de lo que más se nos hizo difícil. Para solucionar todo esto recurrimos a Internet, amigos, pero principalmente en el libro dan muchas ideas y tipos de variables, funciones que nos permiten hacer que nuestro Sudoku corra de manera correcta y no nos marque errores (los cuales hubo muchísimos pero se solucionaron).<\/span><\/p>\n

 <\/p>\n

Es un proyecto muy padre porque engloba todo lo que ves en el semestre básicamente y lo principal es que es muy divertido y es muy interesante saber cómo por medio de código en un lenguaje determinado, la computadora lo interpreta y da como resultado algo que nosotros nos proponemos. Muy buen proyecto.<\/span><\/p>\n

#PROJECT<\/a><\/span><\/p>\n

Aquí está el link con nuestro código en Github:<\/span><\/p>\n

https:\/\/github.com\/kenwbauer\/LuisAngelFernando\/blob\/master\/Sudoku%20Final<\/a><\/span><\/p>\n

Y por ultimo aquí esta una imagen de nuestro Sudoku corriendo en una computadora.<\/span><\/p>\n

<\/span><\/p>\n

 <\/p>\n<\/div>\n

Continue reading →<\/span><\/a><\/p>\n","protected":false},"author":126,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,3],"tags":[355],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts\/14114"}],"collection":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/users\/126"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/comments?post=14114"}],"version-history":[{"count":5,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts\/14114\/revisions"}],"predecessor-version":[{"id":19353,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/posts\/14114\/revisions\/19353"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/media?parent=14114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/categories?post=14114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc101winter2015\/wp-json\/wp\/v2\/tags?post=14114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}