Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 27, 2008, 12:53:20
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Codigo del sudoku en c 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Codigo del sudoku en c  (Leído 232 veces)
calvarad
Recien Llegado
*
Desconectado Desconectado

Mensajes: 1


Ver Perfil Email
« en: Junio 12, 2007, 04:25:07 »

Hola amigos, tengo un problema, por favor a alguien que sepa y entienda mi codigo envienme lo que me falta que es no permitir al usuario que ingrese un numero que se encuentre en la misma fila o columna.Por favor es urgente lo necesito para el jueves. Este es mi codigo:

 #include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX 9
void muestra(int mat[MAX][MAX]);
int llenasol(int mat[MAX][MAX]);
void creasud(int mat[MAX][MAX],int matllenar[MAX][MAX]);
void muestrasud(int matllenar[MAX][MAX]);
void llenajuego(int matllenar[MAX][MAX]);
main()
{
        int a=0,i,j;
        int mat[MAX][MAX],matllenar[MAX][MAX];
                srand(time(0));
                system("clear");
                for(i=0;i<MAX;i++)
                        for(j=0;j<MAX;j++)
                                 mat[j]=0;
                for(i=0;i<MAX;i++)
                        for(j=0;j<MAX;j++)
                                 matllenar[j]=0;
                //muestra(mat);
                llenasol(mat);
                creasud(mat,matllenar);
                llenajuego(matllenar);
        return 0;
}
void muestra(int mat[MAX][MAX])
{
        int i,j;
        printf("    0  1  2    3  4  5    6  7  8\n");
        for(i=0;i<MAX;i++){
                if(i==3 || i==6){
                        printf("\n");
                        printf(" %d ",i);
                }
                else
                        printf(" %d ",i);
                for(j=0;j<MAX;j++){
                        printf("[%d]",mat[j]);
                        if(j==2 || j==5)
                                  printf("  ");
                }
                printf("\n");
        }
}
int llenasol(int mat[MAX][MAX])
{
        int i,j,aux,auxa;
        int ara[3],arb[3],arc[3];
                for(i=0;i<MAX;i++){//llena primera linea aleatoriamente...
                        mat[0]=(rand()%9)+1;
                        if(i>0){
                                for(j=i-1;j>=0;j--){
                                        while(mat[0]==mat[0][j]){
                                                mat[0]=(rand()%9)+1;
                                                j=i-1;
                                        }
                                }
                        }
                }
                //muestra(mat);
                //printf("\n");
                for(i=0;i<3;i++){//crea y mueve los arreglos
                        ara=mat[0];
                        mat[1][i+6]=ara;
                        mat[2][i+3]=ara;
                        //printf("[%d]",ara);
                        }
                //printf("\n");
                for(i=0;i<3;i++){
                        arb=mat[0][i+3];
                        mat[1]=arb;
                        mat[2][i+6]=arb;
                        //printf("[%d]",arb);
                        }
                //printf("\n");
                for(i=0;i<3;i++){
                        arc=mat[0][i+6];
                        mat[1][i+3]=arc;
                        mat[2]=arc;
                        //printf("[%d]",arc);
                        }
                //printf("\n");
                //muestra(mat);
                aux=ara[0];//modifica arreglos
                auxa=ara[2];
                ara[2]=ara[1];
                ara[0]=auxa;
                ara[1]=aux;
                aux=arb[0];
                auxa=arb[2];
                arb[2]=arb[1];
                arb[0]=auxa;
                arb[1]=aux;
                aux=arc[0];
                auxa=arc[2];
                arc[2]=arc[1];
                arc[0]=auxa;
                arc[1]=aux;
                for(i=0;i<3;i++){//mueve los arreglos
                        mat[3]=ara;
                        mat[4][i+6]=ara;
                        mat[5][i+3]=ara;
                        //printf("[%d]",ara);
                        }
                //printf("\n");
                for(i=0;i<3;i++){
                        mat[3][i+3]=arb;
                        mat[4]=arb;
                        mat[5][i+6]=arb;
                        //printf("[%d]",arb);
                        }
                //printf("\n");
                for(i=0;i<3;i++){
                        mat[3][i+6]=arc;
                        mat[4][i+3]=arc;
                        mat[5]=arc;
                        //printf("[%d]",arc);
                        }
                //muestra(mat);
                aux=ara[0];//modifica arreglos
                auxa=ara[2];
                ara[2]=ara[1];
                ara[0]=auxa;
                ara[1]=aux;
                aux=arb[0];
                auxa=arb[2];
                arb[2]=arb[1];
                arb[0]=auxa;
                arb[1]=aux;
                aux=arc[0];
                auxa=arc[2];
                arc[2]=arc[1];
                arc[0]=auxa;
                arc[1]=aux;
                for(i=0;i<3;i++){//mueve los arreglos
                        mat[6]=ara;
                        mat[7][i+6]=ara;
                        mat[8][i+3]=ara;
                        //printf("[%d]",ara);
                        }
                //printf("\n");
                for(i=0;i<3;i++){
                        mat[6][i+3]=arb;
                        mat[7]=arb;
                        mat[8][i+6]=arb;
                        //printf("[%d]",arb);
                        }
                //printf("\n");
                for(i=0;i<3;i++){
                        mat[6][i+6]=arc;
                        mat[7][i+3]=arc;
                        mat[8]=arc;
                        //printf("[%d]",arc);
                        }
                //muestra(mat);//muestra la solucion.....
                //printf("\n");
}
void creasud(int mat[MAX][MAX],int matllenar[MAX][MAX])//llena el juego...
{
        int i,j;
                matllenar[0][1]=mat[0][1];
                matllenar[0][4]=mat[0][4];
                matllenar[0][8]=mat[0][8];
                matllenar[1][1]=mat[1][1];
                matllenar[1][2]=mat[1][2];
                matllenar[1][4]=mat[1][4];
                matllenar[1][6]=mat[1][6];
                matllenar[2][2]=mat[2][2];
                matllenar[2][3]=mat[2][3];
                matllenar[2][6]=mat[2][6];
                matllenar[3][0]=mat[3][0];
                matllenar[3][3]=mat[3][3];
                matllenar[3][5]=mat[3][5];
                matllenar[3][7]=mat[3][7];
                matllenar[4][2]=mat[4][2];
                matllenar[4][4]=mat[4][4];
                matllenar[4][5]=mat[4][5];
                matllenar[4][7]=mat[4][7];
                matllenar[4][8]=mat[4][8];
                matllenar[5][1]=mat[5][1];
                matllenar[5][2]=mat[5][2];
                matllenar[5][5]=mat[5][5];
                matllenar[5][6]=mat[5][6];
                matllenar[5][7]=mat[5][7];
                matllenar[6][2]=mat[6][2];
                matllenar[6][4]=mat[6][4];
                matllenar[6][5]=mat[6][5];
                matllenar[6][6]=mat[6][6];
                matllenar[6][8]=mat[6][8];
                matllenar[7][4]=mat[7][4];
                matllenar[7][5]=mat[7][5];
                matllenar[7][7]=mat[7][7];
                matllenar[8][0]=mat[8][0];
                matllenar[8][1]=mat[8][1];
                matllenar[8][7]=mat[8][7];
                muestrasud(matllenar);
}
void muestrasud(int matllenar[MAX][MAX])//muestra juego...
{
        int i,j;
        printf("    0  1  2    3  4  5    6  7  8\n");
        for(i=0;i<MAX;i++){
                if(i==3 || i==6){
                        printf("\n");
                        printf(" %d ",i);
                }
                else
                        printf(" %d ",i);
                for(j=0;j<MAX;j++){
                        printf("[%d]",matllenar[j]);
                        if(j==2 || j==5)
                                  printf("  ");
                }
                printf("\n");
        }
}
void llenajuego(int matllenar[MAX][MAX])
{
        int i,j;
        int matcop[MAX][MAX];
                for(i=0;i<MAX;i++)
                        for(j=0;j<MAX;j++)
                                matcop[j]=matllenar[j];
                while(matllenar!=0){
                        printf("\nke coordenada desea llenar?\n");
                        printf("\nx= ");
                        scanf("%d",&i);
                        printf("\ny= ");
                        scanf("%d",&j);
                        while(matcop[j]!=0){
                                printf("\nIngrese nuevamente las coordenadas:\n");
                                printf("\nx= ");
                                scanf("%d",&i);
                                printf("\ny= ");
                                scanf("%d",&j);
                        }
                        printf("\nke numero desea ingresar en (%d,%d): ",i,j);
                        scanf("%d",&matllenar[j]);
                        system("clear");
                        muestrasud(matllenar);
                }
}






En línea
ven0m
Colaborador
*****
Desconectado Desconectado

Mensajes: 782


Christina...Eat me, drink me...

x_0@hotmail.de
Ver Perfil Email
« Respuesta #1 en: Junio 12, 2007, 05:19:52 »

ufff eso lo hiciste tu ?? o es una tarea?

salud0s
En línea

R-E-S-P-E-C-T, find out what it means to me


Christina..Christina..Brak mi ciebie moj EMO-Princesa..BARDZO CIE KOCHAM!!!
velle80
Recien Llegado
*
Desconectado Desconectado

Mensajes: 1


Ver Perfil Email
« Respuesta #2 en: Julio 06, 2007, 02:53:25 »

a simple vista t puedo dcir q tienes q hacer una funcion q te recorra las filas y otra q recorra las columnas elemento a elemento.ls elementos ls almacenas en un vector y compruebas q el numero introducido x el usuario no sta n ese vector.si esta q visualice mensaje o lo q t kieras
En línea
Micki Qwerty
Visitante
« Respuesta #3 en: Julio 06, 2007, 08:09:05 »

« Última modificación: Julio 06, 2007, 08:10:46 por Scofield » En línea
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Carbide C/C#/C++  |  Tema: Codigo del sudoku en c « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC