Hi, Friends!
I am doing my last year term project that needs me to use C and write a sudoku game. However, I don't know how to write the check part, can some of you help me a bit?
Here is my code:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int x,y;
int matrix[9][9], box[9];
char filename[30];
FILE *fp;
void welcome(void);
void rules(void);
void level(void);
void board(char);
void enter(int);
void check(int);
main()
{
welcome();
rules();
}
void welcome()
{
printf("Welcome to Sudoku Game Version 2.0\n\n");
printf("Thanks for playing this game!\n\nHope you enjoy!\n");
}
void rules()
{
printf("\nRules to play:\n");
printf("Enter a numerical digit from 1 through 9 starting with various digits given in some cells.\n");
printf("Each row, column, and cell must contain only one instance of each numeral.\n");
printf("Are you ready for the game? (1 - Yes, 0 - No)\n");
scanf("%d", &x);
if(x==1)
level();
else
exit(1);
}
void level()
{
printf("Which level do you want to play? (1-simple, 2-medium, 3-hard)\n");
scanf("%d", &y);
switch(y)
{
case 1:
printf("Please choose which puzzle you want to play!\n");
printf("Enter a no within 1-10. Add .txt after the no.\n");
printf("Puzzle to play: (Enter no, eg. 1.txt)\n");
scanf("%s", filename);
board(filename);
break;
case 2:
printf("Please choose which puzzle you want to play.\n");
printf("Enter a no within 11-20. Add .txt after the no.\n");
printf("Puzzle to play: (Enter no, eg. 11.txt)\n");
scanf("%s", filename);
board(filename);
break;
case 3:
printf("Please choose which puzzle you want to play.\n");
printf("Enter a no within 21-30. Add .txt after the no.\n");
printf("Puzzle to play: (Enter no, eg. 21.txt)\n");
board(filename);
break;
default:
printf("Wrong Entering! No must be 1,2 or 3!\n");
level();
fclose(fp);
}
}
void board(char filename[30])
{
int i,j,z;
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("Cannot open file!\n");
level();
}
while((z=fgetc(fp))!=EOF){
printf("|-|-|-|-|-|-|-|-|-|\n");
for(i=0;i<9;i++)
{
for(j=0;j<=9;j++)
{
z = fgetc(fp);
printf("|%c",z);
matrix[i][j] = z;
}
}
printf("\n");
printf("|-|-|-|-|-|-|-|-|-|\n");
}
}
void enter(int matrix[9][9])
{
int a,b,c;
printf("Enter the position that you want to enter numbers: (eg. 1,1)\n");
scanf("%d,%d", &a,&b);
if(matrix[a][b]==0)
{
printf("Wrong entering!\n");
printf("Please enter the position again!\n");
enter(matrix);
}
if(matrix[a][b]!=0)
{
printf("Enter the number that you want to put at the position:\n");
scanf("%d", &c);
matrix[a][b] = c;
check();
}
}
Thank you friends!