Thread: Sudoku in c

  1. #1
    Registered User
    Join Date
    Jun 2012
    Posts
    3

    Exclamation Sudoku in c

    Hello,
    I'm Taking my first course in c programming and we were given a project to create a sudoku game. I;m very sure that most are familiar with the game. The problem is that I'm getting errors that i don't know how to resolve plus I'm not really sure of the program it self. I really would appreciate and I know my code is not fully formatted i really apologize for that.


    Code:
    #include <stdio.h>#include <stdlib.h>
    #include <time.h>
    #define size
    
    
    //function 1
    int obeysSudokuRules(int a[][size])
    {
    	int count[10];
    	int i; int r; int c; //r: row, c: column
    	for ( r=0; r<size; r++) //start from 1st row checking colums
    	{
    		for( c=0; c<size; c++)
    		{
    			count[a[r][c]]++;
    		if ( (count[a[r][c]]) > 1)
    		 return 0; 
    		}
    		for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    		 }//end row loop
    	
    	for (i=0; i<size; i++)
    	{ count[i]=0; } // to clear
    
    
    //start from 1st col checking rows
    	for ( c=0; c<size; c++) 
    	{
    		for( r=0; r<size; r++)
    		{
    			count[a[r][c]]++;
    		if ( (count[a[r][c]]) > 1)
    			return 0;
    		}
    			for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    		 }//end col loop
    	
    		for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    //z is No. of grids
    	r=0; c=0;
    	for ( z=0; z<size; z++) 
    	{
    		int k=0; //No. of rows in a grid
    		int j=0; // No. of columns in a grid
    		while (k<3)
    		{
    			while(j<3)
    			{
    				count[a[r][c]]++;
    				
    				if ( (count[a[r][c]]) > 1)
    					return 0;
    				c++; j++;
    			} //end of j loop
    			r++; k++;
    		} // end of k loop
    		if(z<2)
    		{ r=0; }
    		if(z==2)
    		{ c=0; r=3; }
    		if((z>2)&&(z<5))
    		{ r=3; }
    		if(z==5)
    		{ c=0; r=6; }
    		if(z>5)
    		{ r=6; }
    
    
    		for (i=0; i<size; i++)
    			{ count[i]=0; } // to clear & end z loop
    	return 1;
    	} // end grid loop
    
    
    //function 2
    void printGrid(int a[][size])
    {
    	int r, c;
    
    
    	for(r=0; r<size; r++)
    	{
    		for(c=0; c<size; c++)
    		{
    			if ((a[r][c])== 0)
    			{
    				printf("  ");
    			}
    			else
    			{
    				printf("%d",a[r][c]);
    			}
    			printf("\n");
    		}
    	}
    }
    //function 5 &4
    void getRowNum(void)
    {
    	int row;
    	printf(" please enter the row number that you want to enter the value\n");
    	scanf("%d",row);
    
    
    	while ((row <0) || (row>8))
    	{
    		printf(" please enter the row number that you want to enter the value");
    		scanf("%d",&row);
    	}
    }
    
    
    int getCloumnNum(void)
    {
    	int column;
    	printf(" please enter the column number that you want to enter the value");
    	scanf("%d",&column);
    
    
    	while ((column<0) || (column>8))
    	{
    		printf(" please enter the row number that you want to enter the value");
    		scanf("%d",column);
    	}
    	return column;
    }
    
    
    void fillZeros (int a[][size])
    {
    	int counter=0;
    	int r,rand;
    
    
    	for(r=0; r<size; r++)
    	{
    		while (counter<=4)
    		{
    			rand=rand()%8;
    			a[r][rand]=0;
    			counter++;
    		}
    	}
    }
    
    
    int getValue(void)
    {
    int value;
    printf("\nPlease Enter the value: ");
    scanf("%d",&value);
    return value;
    }
    
    
    
    
    int compSolve(int a[][size])
       {
    	   int r = 0;
    	   int c = 0;
    	   int checkZero;
    	   while(r<9)
    	   {
    		   while(c<9)
    		   {
    			   if((a[r][c])==0)
    				   checkZero = 0;
    			   else checkZero = 1;
    			   c++;
    		   }
    	   r++;
    	   }
    	   return checkZero;
       }
    
    
    void genPartialGrid(int a[][size])
    {	 
    	int obeysRules;
        
       do
       {
    	   for(r=0;r<size;r++)
    	   {
    		   for(c=0;c<size;c++)
    		   {
    			   a[r][c]={0};
    			}//Fill array a with all zeros
    	   }
    		obeysRules = genGrid(a, 0, 0);
    	 
       } while (obyesRules == 0);
    
    
       fillZeros(a);
    }
    	                           
    int genGrid(int a[][size], int row, int column)
    { 
    	int i, r;
    	if (row == size)
    	return 1;
       
       int currentRow[size]={1,2,3,4,5,6,7,8,9};
       for(i=0;i<size-1;i++)
       {
    	r=i+rand()%8;
    	swap=currentRow[i];
    	currentRow[i]=currentRow[r];
    	currentRow[r]=swap;
       }
       
       for(i=0;i<size;i++)
       {
    	a[row][column] = currentRow[i];
    	if (obeysSudokuRules==1)
    	{
    		if (column == size -1)
    		    obyesRules = genGrid(a, row + 1, 0);
    		else
    		    obyesRules = genGrid(a, row, column + 1)
    		if(obyesRules)
    			return 1 ;
    	} // close inner if statement
        } // close for loop
       
       a[row][column] = 0;
       
       return 0 ;
    }
    
    
    int main(void)
    {
    int a[9][9];
    int r,c, value, obey, solve;
    
    
    
    
    printf("This a sudoku Game.All numbers in rows and columns must not be repeated");
    
    
    srand(time(NULL)); //to randomize random number generation
    
    
    genPartialGrid(a);     //call function genPartialGrid to generate a partially filled grid that does not violate Sudoku rules
    
    
    printGrid(a);          //call function printGrid
    
    
    do
    {
    r = getRowNum();              //call function getRowNum to determine the row number
    c = getColumnNum();           //call function getColumnNum to determine the column number
    value = getValue();           //call function to get the value (between 1 and 9) 
    a[r][c] = value;              //enter the value in the grid at the row and column positions entered
    printGrid(a);                 //call function printGrid
    obey = obeysSudokuRules;
    solve = compSolve;
    
    
    } while ((obey ==1) && (solve == 0));
    
    
    if ((solve == 1) && (obey == 1))
    {
    	printf("congratulation,you have solve the puzzle");
    	printGrid(a);
    }
    else                                   /* it means Sudoku rules are not all obeyed */
    {
    	printf(" Sorry, the Solution is incorrect");
    }
    print(" thank you, good bye");
    
    
    return 0;
    }

  2. #2
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    What kind of errors are you getting? Are they compiler errors? If so, cut and paste them in here exactly as they appear, including the line number. If they are run time errors, like a seg fault, please provide sample input so we can recreate the problem.

    You should get in the habit of planning and testing your solution on paper first. Once your paper design is solid, begin coding little by little. Write 5 lines, compile it, test it, and fix all errors before writing more code. Write 5 more lines, compile, test, fix all errors. When I say compile it, compile with warnings turned all the way up. For example, if you use gcc, add the -Wall flag to your compile command.

    EDIT: Also, your indentation could use a little work. It's mostly decent, but not very consistent, and feels cramped. you should avoid squishing multiple statements on a single line. Try picking one of the first 3 styles mentioned here: Indent style - Wikipedia, the free encyclopedia, and stick to it religiously.
    Last edited by anduril462; 06-14-2012 at 05:54 PM.

  3. #3
    Registered User
    Join Date
    Jun 2012
    Posts
    3
    Quote Originally Posted by anduril462 View Post
    What kind of errors are you getting? Are they compiler errors? If so, cut and paste them in here exactly as they appear, including the line number. If they are run time errors, like a seg fault, please provide sample input so we can recreate the problem.

    You should get in the habit of planning and testing your solution on paper first. Once your paper design is solid, begin coding little by little. Write 5 lines, compile it, test it, and fix all errors before writing more code. Write 5 more lines, compile, test, fix all errors. When I say compile it, compile with warnings turned all the way up. For example, if you use gcc, add the -Wall flag to your compile command.

    EDIT: Also, your indentation could use a little work. It's mostly decent, but not very consistent, and feels cramped. you should avoid squishing multiple statements on a single line. Try picking one of the first 3 styles mentioned here: Indent style - Wikipedia, the free encyclopedia, and stick to it religiously.
    I corrected all errors except 1 please help me.

    Code:
     include <stdio.h>#include <stdlib.h>
    #include <time.h>
    #define size 9
    
    
    //function 1
    int obeysSudokuRules(int a[][size])
    {
    	int count[10];
    	int i,r,c,z;//r: row, c: column
    	int k=0; //No. of rows in a grid
    	int j=0; // No. of columns in a grid
    	for ( r=0; r<size; r++) //start from 1st row checking colums
    	{
    		for( c=0; c<size; c++)
    		{
    			count[a[r][c]]++;
    		if ( (count[a[r][c]]) > 1)
    		 return 0; 
    		}
    		for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    		 }//end row loop
    	
    	for (i=0; i<size; i++)
    	{ count[i]=0; } // to clear
    
    
    //start from 1st col checking rows
    	for ( c=0; c<size; c++) 
    	{
    		for( r=0; r<size; r++)
    		{
    			count[a[r][c]]++;
    		if ( (count[a[r][c]]) > 1)
    			return 0;
    		}
    			for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    		 }//end col loop
    	
    		for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    //z is No. of grids
    	r=0; c=0;
    	for ( z=0; z<size; z++) 
    	{
    		//int k=0; //No. of rows in a grid
    		//int j=0; // No. of columns in a grid
    		while (k<3)
    		{
    			while(j<3)
    			{
    				count[a[r][c]]++;
    				
    				if ( (count[a[r][c]]) > 1)
    					return 0;
    				c++; j++;
    			} //end of j loop
    			r++; k++;
    		} // end of k loop
    		if(z<2)
    		{ r=0; }
    		if(z==2)
    		{ c=0; r=3; }
    		if((z>2)&&(z<5))
    		{ r=3; }
    		if(z==5)
    		{ c=0; r=6; }
    		if(z>5)
    		{ r=6; }
    
    
    		for (i=0; i<size; i++)
    			{ count[i]=0; } // to clear & end z loop
    	return 1;
    	} }// end grid loop
    
    
    //function 2
    void printGrid(int a[][size])
    {
    	int r, c;
    
    
    	for(r=0; r<size; r++)
    	{
    		for(c=0; c<size; c++)
    		{
    			if ((a[r][c])== 0)
    			{
    				printf("  ");
    			}
    			else
    			{
    				printf("%d",a[r][c]);
    			}
    			printf("\n");
    		}
    	}
    }
    //function 3 calls this	 (a)                          
    int genGrid(int a[][size], int row, int column)
    { 
    	int i, r; int swap;
    	int currentRow[size]={1,2,3,4,5,6,7,8,9};
    	int obyesRules;
    
    
    	if (row == size)
    	return 1;
      
       for(i=0;i<size-1;i++)
       {
    	r= i+ (rand()%8);
    	swap=currentRow[i];
    	currentRow[i]=currentRow[r];
    	currentRow[r]=swap;
       }
       
       for(i=0;i<size;i++)
       {
    	a[row][column] = currentRow[i];
    	if (obeysSudokuRules==1)
    	{
    		if (column == size -1)
    		    obyesRules = genGrid(a, row + 1, 0);
    		else
    		    obyesRules = genGrid(a, row, column + 1);
    		if(obyesRules)
    			return 1 ;
    	} // close inner if statement
        } // close for loop
       
       a[row][column] = 0;
       
       return 0 ;
    }
    // function 3 call this (b)
    void fillZeros (int a[][size])
    {
    	int counter=0;
    	int r,random;
    
    
    	for(r=0; r<size; r++)
    	{
    		while (counter<=4)
    		{
    			random= (rand()%8);
    			a[r][random]=0;
    			counter++;
    		}
    	}
    }
    
    
    //function 3
    void genPartialGrid(int a[][size])
    {	 
    	int obeysRules; int r, c;
        
       do{
    	   for(r=0; r<size; r++)
    	   {
    		   for(c=0; c<size ;c++)
    			   a[r][c]= {0};  //Fill array a with all zeros
    	   }
    		obeysRules = genGrid(a, 0, 0);
    	 
       } while (obeysRules == 0);
    
    
       fillZeros(a);
    }
    
    
    //function 5 &4
    int getRowNum(void)
    {
    	int row;
    	printf(" please enter the row number that you want to enter the value\n");
    	scanf("%d",row);
    
    
    	while ((row <0) || (row>8))
    	{
    		printf(" please enter the row number that you want to enter the value");
    		scanf("%d",&row);
    	}
    	return row;
    }
    
    
    int getCloumnNum(void)
    {
    	int column;
    	printf(" please enter the column number that you want to enter the value");
    	scanf("%d",&column);
    
    
    	while ((column<0) || (column>8))
    	{
    		printf(" please enter the row number that you want to enter the value");
    		scanf("%d",column);
    	}
    	return column;
    }
    //function 6
    int getValue(void)
    {
    int value;
    printf("\nPlease Enter the value: ");
    scanf("%d",&value);
    return value;
    }
    
    
    
    
    int compSolve(int a[][size])
       {
    	   int r = 0; int c = 0;
    	   int checkZero;
    	   while(r<9)
    	   {
    		   while(c<9)
    		   {
    			   if((a[r][c])==0)
    				   checkZero = 0;
    			   else checkZero = 1;
    			   c++;
    		   }
    	   r++;
    	   }
    	   return checkZero;
       }
    
    
    
    
    int main(void)
    {
    int a[size][size];
    int r,c, value, obey, solve;
    srand(time(NULL)); //to randomize random number generation
    
    
    printf("This a sudoku Game.All numbers in rows and columns must not be repeated");
    
    
    genPartialGrid(a);     //call function genPartialGrid to generate a partially filled grid that does not violate Sudoku rules
    
    
    printGrid(a);          //call function printGrid
    
    
    do
    {
    
    
    r = getRowNum();              //call function getRowNum to determine the row number
    c = getColumnNum();           //call function getColumnNum to determine the column number
    value = getValue();
    printGrid(a);	//call function to get the value (between 1 and 9) 
    a[r][c] = value;              //enter the value in the grid at the row and column positions entered
                                  //call function printGrid
    obey = obeysSudokuRules;
    solve = compSolve;
    
    
    } while ((obey ==1) && (solve == 0));
    
    
    if ((solve == 1) && (obey == 1))
    {
    	printf("congratulation,you have solve the puzzle");
    	printGrid(a);
    }
    else                                   /* it means Sudoku rules are not all obeyed */
    {
    	printf(" Sorry, the Solution is incorrect");
    }
    printf(" thank you, good bye");
    
    
    return 0;
    }

  4. #4
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    You have to tell me what the errors are if you want them fixed!

    I don't know if this is a copy-paste error or not, but it's as far as I'm willing to go through your nearly 300 lines of code without a clue as to what your problem is. Line 1:
    Code:
    include <stdio.h>#include <stdlib.h>
    That is wrong, those statements need to be on two lines, and they each need a # in front.

    Now, tell me exactly what error you are getting. I want the error message word-for-word, and a line number. Really, it's not that much to ask. Read this: How To Ask Questions The Smart Way for some tips on getting better help/results from forums.

    By the way, you are not compiling with the warnings turned all the way up. You have other code that is problematic. Figure out how to turn the warnings up on your compiler.

  5. #5
    Registered User
    Join Date
    Jun 2012
    Posts
    3
    Code:
    #include <stdio.h>#include <stdlib.h>
    #include <time.h>
    #define size 9
    
    
    //function 1
    int obeysSudokuRules(int a[][size])
    {
    	int count[10];
    	int i,r,c,z;//r: row, c: column
    	int k=0; //No. of rows in a grid
    	int j=0; // No. of columns in a grid
    	for ( r=0; r<size; r++) //start from 1st row checking colums
    	{
    		for( c=0; c<size; c++)
    		{
    			count[a[r][c]]++;
    		if ( (count[a[r][c]]) > 1)
    		 return 0; 
    		}
    		for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    		 }//end row loop
    	
    	for (i=0; i<size; i++)
    	{ count[i]=0; } // to clear
    
    
    //start from 1st col checking rows
    	for ( c=0; c<size; c++) 
    	{
    		for( r=0; r<size; r++)
    		{
    			count[a[r][c]]++;
    		if ( (count[a[r][c]]) > 1)
    			return 0;
    		}
    			for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    		 }//end col loop
    	
    		for (i=0; i<size; i++)
    		{ count[i]=0; } // to clear
    //z is No. of grids
    	r=0; c=0;
    	for ( z=0; z<size; z++) 
    	{
    		//int k=0; //No. of rows in a grid
    		//int j=0; // No. of columns in a grid
    		while (k<3)
    		{
    			while(j<3)
    			{
    				count[a[r][c]]++;
    				
    				if ( (count[a[r][c]]) > 1)
    					return 0;
    				c++; j++;
    			} //end of j loop
    			r++; k++;
    		} // end of k loop
    		if(z<2)
    		{ r=0; }
    		if(z==2)
    		{ c=0; r=3; }
    		if((z>2)&&(z<5))
    		{ r=3; }
    		if(z==5)
    		{ c=0; r=6; }
    		if(z>5)
    		{ r=6; }
    
    
    		for (i=0; i<size; i++)
    			{ count[i]=0; } // to clear & end z loop
    	return 1;
    	} }// end grid loop
    
    
    //function 2
    void printGrid(int a[][size])
    {
    	int r, c;
    
    
    	for(r=0; r<size; r++)
    	{
    		for(c=0; c<size; c++)
    		{
    			if ((a[r][c])== 0)
    			{
    				printf("  ");
    			}
    			else
    			{
    				printf("%d",a[r][c]);
    			}
    			printf("\n");
    		}
    	}
    }
    //function 3 calls this	 (a)                          
    int genGrid(int a[][size], int row, int column)
    { 
    	int i, r; int swap;
    	int currentRow[size]={1,2,3,4,5,6,7,8,9};
    	int obyesRules;
    
    
    	if (row == size)
    	return 1;
      
       for(i=0;i<size-1;i++)
       {
    	r= i+ (rand()%8);
    	swap=currentRow[i];
    	currentRow[i]=currentRow[r];
    	currentRow[r]=swap;
       }
       
       for(i=0;i<size;i++)
       {
    	a[row][column] = currentRow[i];
    	if (obeysSudokuRules==1)
    	{
    		if (column == size -1)
    		    obyesRules = genGrid(a, row + 1, 0);
    		else
    		    obyesRules = genGrid(a, row, column + 1);
    		if(obyesRules)
    			return 1 ;
    	} // close inner if statement
        } // close for loop
       
       a[row][column] = 0;
       
       return 0 ;
    }
    // function 3 call this (b)
    void fillZeros (int a[][size])
    {
    	int counter=0;
    	int r,random;
    
    
    	for(r=0; r<size; r++)
    	{
    		while (counter<=4)
    		{
    			random= (rand()%8);
    			a[r][random]=0;
    			counter++;
    		}
    	}
    }
    
    
    //function 3
    void genPartialGrid(int a[][size])
    {	 
    	int obeysRules; int r, c;
        
       do{
    	   for(r=0; r<size; r++)
    	   {
    		   for(c=0; c<size ;c++)
    			   a[r][c]= 0;  //Fill array a with all zeros
    	   }
    		obeysRules = genGrid(a, 0, 0);
    	 
       } while (obeysRules == 0);
    
    
       fillZeros(a);
    }
    
    
    //function 5 &4
    int getRowNum(void)
    {
    	int row;
    	printf(" please enter the row number that you want to enter the value\n");
    	scanf("%d",row);
    
    
    	while ((row <0) || (row>8))
    	{
    		printf(" please enter the row number that you want to enter the value");
    		scanf("%d",&row);
    	}
    	return row;
    }
    
    
    int getCloumnNum(void)
    {
    	int column;
    	printf(" please enter the column number that you want to enter the value");
    	scanf("%d",&column);
    
    
    	while ((column<0) || (column>8))
    	{
    		printf(" please enter the row number that you want to enter the value");
    		scanf("%d",column);
    	}
    	return column;
    }
    //function 6
    int getValue(void)
    {
    int value;
    printf("\nPlease Enter the value: ");
    scanf("%d",&value);
    return value;
    }
    
    
    
    
    int compSolve(int a[][size])
       {
    	   int r = 0; int c = 0;
    	   int checkZero;
    	   while(r<9)
    	   {
    		   while(c<9)
    		   {
    			   if((a[r][c])==0)
    				   checkZero = 0;
    			   else checkZero = 1;
    			   c++;
    		   }
    	   r++;
    	   }
    	   return checkZero;
       }
    
    
    
    
    int main(void)
    {
    int a[size][size];
    int r,c, value, obey, solve;
    srand(time(NULL)); //to randomize random number generation
    
    
    printf("This a sudoku Game.All numbers in rows and columns must not be repeated");
    
    
    genPartialGrid(a);     //call function genPartialGrid to generate a partially filled grid that does not violate Sudoku rules
    
    
    printGrid(a);          //call function printGrid
    
    
    do
    {
    
    
    r = getRowNum();              //call function getRowNum to determine the row number
    c = getColumnNum();           //call function getColumnNum to determine the column number
    value = getValue();
    printGrid(a);	//call function to get the value (between 1 and 9) 
    a[r][c] = value;              //enter the value in the grid at the row and column positions entered
                                  //call function printGrid
    obey = obeysSudokuRules;
    solve = compSolve;
    
    
    } while ((obey ==1) && (solve == 0));
    
    
    if ((solve == 1) && (obey == 1))
    {
    	printf("congratulation,you have solve the puzzle");
    	printGrid(a);
    }
    else                                   /* it means Sudoku rules are not all obeyed */
    {
    	printf(" Sorry, the Solution is incorrect");
    }
    printf(" thank you, good bye");
    
    
    return 0;
    }

    the error

    1>sudoku (1).obj : error LNK2019: unresolved external symbol _getColumnNum referenced in function _main

  6. #6
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    That means it can't find the function you are trying to call. Either you aren't linking a library, you forgot to write the function, or there's a typo.

    Your function definition:
    Code:
    int getCloumnNum(void)
    Your function call in main:
    Code:
    c = getColumnNum();
    See the problem?

    Also, below are all the warnings and errors I get when compiling. For the last bloody time, if you don't get a very similar list of other problems when you compile, then you need to turn the warnings up. If you don't know how to do this, look it up in the documentation, Google it online or ask here. I'm being an a-hole about this because it is important. The warnings your compiler gives you are generally a sign you're doing something risky/stupid/problematic, and you should fix them.
    Code:
    $ gcc -Wall -g -std=c99  -lssl -lm -lpthread -lcurses -lefence  foo.c   -o foo
    foo.c: In function ‘genGrid’:
    foo.c:125: warning: comparison between pointer and integer
    foo.c: In function ‘genPartialGrid’:
    foo.c:168: error: expected expression before ‘{’ token
    foo.c: In function ‘getRowNum’:
    foo.c:184: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
    foo.c: In function ‘getCloumnNum’:
    foo.c:206: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
    foo.c: In function ‘main’:
    foo.c:264: warning: implicit declaration of function ‘getColumnNum’
    foo.c:269: warning: assignment makes integer from pointer without a cast
    foo.c:270: warning: assignment makes integer from pointer without a cast
    make: *** [foo] Error 1
    Last edited by anduril462; 06-14-2012 at 06:57 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Sudoku
    By menos75ds in forum C Programming
    Replies: 6
    Last Post: 11-29-2011, 02:25 PM
  2. Sudoku
    By code_lover in forum C Programming
    Replies: 9
    Last Post: 09-16-2011, 11:19 AM
  3. Like Sudoku, but not.
    By quzah in forum Game Programming
    Replies: 4
    Last Post: 08-27-2011, 05:33 AM
  4. sudoku
    By ElemenT.usha in forum C++ Programming
    Replies: 22
    Last Post: 02-14-2011, 10:46 PM
  5. Sudoku
    By mrusnak in forum C Programming
    Replies: 10
    Last Post: 03-20-2009, 06:31 AM