![]() |
|
|||||||
| Registrarse | Blogs | Ayuda | Miembros | Grupos Sociales | Calendario | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
| Informática y Tecnología A los amantes ... y no tan amantes de las computadoras, gadgets y la tecnología. Un foro para preguntar, aprender, informarse y salir de dudas. |
![]() |
|
|
LinkBack (3) | Herramientas | Buscar en Tema |
Calificación:
|
Desplegado |
|
|
#47 (permalink) | |
|
lalilulelo
Ingreso: febrero-2008
Ubicación: Federal District of the United Mexican States
Mensajes: 487
Entradas de Blog: 159
![]() |
Cita:
Autómata! Procesando... Tardaré de 1 a 2 semanas Soy Programador Novato
__________________
____
![]() This space for Rent |
|
|
|
|
|
|
#48 (permalink) |
|
飛燕
![]() |
No necesitas llegar a tanto
Si se resuelve con un automata, pero seria hacer mucho trabajo. Tu avientatelo y pon tu codigo. Es el chiste ![]() Ya tiene rato esto aqui, asi que de una vez pongo mi codigo. Lo hice en Java. A la clase le puse "HowEasy" porque asi te lo pedia el problema original: Código PHP:
__________________
![]() |
|
|
|
|
|
#50 (permalink) |
|
[Hellsing Inst.]
|
bueno, yo requiero de mucha ayuda, jajá...
necesito crear un sudoku, ok... entonces tengo que hacerlo resuelto primero y es en C++, esto es lo que llevo hasta el momento, no sé si alguien me pueda ayudar... el único error que le veo al código por el momento, es que al crear la segunda linea, a veces (o casi siempre) se cicla con el último o los últimos 3 números, porque no cumplen con las "normas"... entonces solo hay que validar eso... pero llevo pensando todo el fin de semana como crear el algoritmo y ya me cansé, hasta ahí le deje... a ver si alguien me puede ayudar un poco con eso, aquí les dejo el código para ver si alguien puede ponerle un contador a la función de "seccion" y que vuelva a crear la linea... gracias de antemano :P... Spoiler: mostrar |
|
|
|
|
|
#51 (permalink) |
|
[Hellsing Inst.]
|
En vista de la gran ayuda aquí está el código ¬¬...
Código:
/* Sudoku generator darkfalco@gmail.com Mexico Thursday, Novmeber 13, 2008... Note: Some things are in spanish, if need translate them to understand the code, dont mind in mail me... */ #include<conio.h> #include<stdlib.h> #include<stdio.h> #define MAX 9 //rain.cpp void iniciar(void); int sudoku[MAX][MAX]; void crear_sudoku(void); void imprimir(void); void fila(int); void columna(int); void seccion(int,int); void borrar(void); void main (void) { clrscr(); randomize(); iniciar(); crear_sudoku(); imprimir(); getch(); } void iniciar(void) { int i=0,j=0; for(i=0;i<MAX;i++) { for(j=0;j<MAX;j++) { sudoku[i][j]=0; } } } void crear_sudoku(void) { int i=0,j=0,x=0,z=0; for(i=0;i<MAX;i++) { for(j=0;j<MAX;j++) { x=(rand()%9); if(sudoku[j][x]==0) { sudoku[j][x]=i+1; fila(j); columna(x); seccion(j,x); } else {j--; z++;} if(z>1100) {iniciar(); i=-1; z=0; j=0; break;} } borrar(); } } void fila(int k) { int i=0; for(i=0;i<MAX;i++) { if(sudoku[k][i]==0) sudoku[k][i]=10; } } void columna(int k) { int i=0; for(i=0;i<MAX;i++) { if(sudoku[i][k]==0) sudoku[i][k]=10; } } void seccion(int a,int b) { int i=0,j=0; //seccion 1 if(a<3 && b<3) for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 2 if(a<3 && b>2 && b<6) for(i=0;i<3;i++) { for(j=3;j<6;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 3 if(a<3 && b>5 && b<9) for(i=0;i<3;i++) { for(j=6;j<9;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 4 if(a>2 && a<6 && b<3) for(i=3;i<6;i++) { for(j=0;j<3;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 5 if(a>2 && a<6 && b>2 && b<6) for(i=3;i<6;i++) { for(j=3;j<6;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 6 if(a>2 && a<6 && b>5 && b<9) for(i=3;i<6;i++) { for(j=6;j<9;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 7 if(a>5 && a<9 && b<3) for(i=6;i<9;i++) { for(j=0;j<3;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 8 if(a>5 && a<9 && b>2 && b<6) for(i=6;i<9;i++) { for(j=3;j<6;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } //seccion 9 if(a>5 && a<9 && b>5 && b<9) for(i=6;i<9;i++) { for(j=6;j<9;j++) { if(sudoku[i][j]==0) {sudoku[i][j]=10;} } } } void borrar(void) { int i=0,j=0; for(i=0;i<MAX;i++) { for(j=0;j<MAX;j++) { if(sudoku[i][j]==10) {sudoku[i][j]=0;} } } } void imprimir(void) { printf("\n\n\n\n"); for(int i=0;i<MAX;i++) { {printf("\t");} for(int j=0;j<MAX;j++) { printf("%d ", sudoku[i][j]); if(j==2||j==5) {printf(" ");} } printf("\n"); if(i==2||i==5) {printf("\n\n");} } } |
|
|
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | Califica este Tema |
|
|
LinkBacks (?)
LinkBack a este Tema: http://www.anim-arte.com/comunidad/623-club-de-programacion-anim-arte-dudas.html
|
||||
| Escrito Por | Para | Tipo | Fecha | |
| Sudoku Programmers :: View topic - Need help programing sudoku on C++ | Este Tema | Refback | 13-nov-2008 17:54 | |
| . Starting... . - Fotolog | Este Tema | Refback | 13-nov-2008 16:34 | |
| Algoritmo para generar tableros de sudoku « ChamanGT | Este Tema | Refback | 11-nov-2008 18:52 | |
