Dev - C++ - Sudoku C++

 
Vista:

Sudoku C++

Publicado por Héctor Tello (1 intervención) el 06/11/2013 05:57:31
Alguien me puede decir como puedo comenzar un proyecto que se trata de hacer funcionar un juego de sudoku, el usuario podrá usar el juego.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaac Daniel

Sudoku C++

Publicado por Isaac Daniel (3 intervenciones) el 07/11/2013 23:05:56
Como es...

Quieres hacer tu propio sodoku?

Si es así, entonces lo primero que debes investigar es el algoritmo con el que funciona el juego, despues deberias de diseñar la interfaz hacer un boseto o algo por el estilo para que tengas una idea de como lo quieres.

Por ultimo si ya tienes experiencia en c++ pues comenzar a programar =).

Si no te queda muy claro y lo que quieres es codigo para modificar aqui te dejo uno

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include<iostream>
#include<conio2.h>
#define COLOR1 system("color 8f";
#define SELLO {gotoxy(70,2); cout<<"by Mc Pool"<<endl;}
#define t "t"
using namespace std;
int sudoku[9][9] =
{
{6,0,1,0,0,4,0,8,0},
{0,4,9,7,3,0,0,0,0},
{8,2,3,0,0,0,0,4,9},
{0,0,4,0,0,0,0,9,6},
{0,0,7,0,0,0,2,0,0},
{9,8,0,0,0,0,3,0,0},
{4,1,0,0,0,0,9,6,5},
{0,0,0,0,4,1,8,3,0},
{0,5,0,2,0,0,4,0,7}
};
void Sudoku();
void resSudoku(int,int);
bool buscaCeldaVacia(int&,int&;
bool puedoColocar(int,int,int);
void impSudoku();
 
main()
{
SELLO;
COLOR1;
Sudoku();
resSudoku(0,0);
getch();
}
void Sudoku(void)
{
int i,j;
cout<<t<<" /****************************/"<<endl
<<t<<" SUDOKU "<<endl
<<t<<" /****************************/"<<endl;
for(i=0;i<9;i++)
{
cout<<endl<<t<<t;
for(j=0;j<9;j++)
{
cout<<sudoku[j]<<" ";
if(j==2 || j==5)
cout<<" ";
}
cout<<endl<<t<<t;
if(i==2 || i==5)
cout<<endl;
}
cout<<endl;
}
 
void resSudoku(int x,int y)
{
bool hayVacia = buscaCeldaVacia(x,y);
if(!hayVacia) impSudoku();
else
{
for(int nro=1;nro<=9;nro++)
if(puedoColocar(x,y,nro))
{
sudoku[x][y] = nro;
resSudoku(x,y+1);
sudoku[x][y] = 0;
}
}
}
 
bool buscaCeldaVacia(int& x,int& y)
{
for(;x<9;x++)
{
for(;y<9;y++)
if(sudoku[x][y] == 0)
return true;
y = 0;
}
return false;
}
 
bool puedoColocar(int f,int c, int nro)
{
int i,j;
//chequeo fila 
for(j=0;j<9;j++)
if(sudoku[f][j] == nro)
return false;
//chequeo columna 
for(i=0;i<9;i++)
if(sudoku[c] == nro)
return false;
 
//chequeo subcuadrado 
int iniCol = (c/3)*3;
int finCol = iniCol + 3;
int iniFil = (f/3)*3;
int finFil = iniFil + 3;
 
for(i=iniFil;i<finFil;i++)
for(j=iniCol;j<finCol;j++)
if(sudoku[j] == nro)
return false;
 
return true;
}
 
void impSudoku(void)
{
int i,j;
SELLO;
cout<<t<<" /****************************/"<<endl
<<t<<" SOLUCION "<<endl
<<t<<" /****************************/"<<endl;
for(i=0;i<9;i++)
{
cout<<endl<<t<<t;
for(j=0;j<9;j++)
{
cout<<sudoku[j]<<" ";
if(j==2 || j==5)
cout<<" ";
}
cout<<endl<<t<<t;
if(i==2 || i==5)
cout<<endl;
}
cout<<endl<<t<<t;
}

y esta es la fuente de donde lo saque Sudoku
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar