나는 C++로 스도쿠 솔버를 만들었다. 그러나 GUI가 필요합니다. VC++에 익숙하지 않기 때문에 GUI를 만들 수는 없으며 C#으로 GUI를 만들려고합니다. 나는 C#의 기본을 지났지 만 시작을 필요로한다. 폼에 Windows Form 응용 프로그램을 만들고 데이터 격자보기를 만드는 경우 격자에서 기능을 구현하는 방법은 무엇입니까? 아래는 C++ 코드입니다. 잘스도쿠 해결사를 C로 구현하기 #
#include<iostream.h>
#include<conio.h>
int a[9][9],b[9][9];
int inputvalue(int x, int y, int value)
{
for(int i = 0; i < 9; i++)
{
if(value == b[x][i] || value == b[i][y])
return 0;
}
for (i = (x/3) * 3; i <= ((x/3) * 3) + 2; i++)
for (int j = (y/3) * 3; j <= ((y/3) * 3) + 2; j++)
if(b[i][j] == value)
return 0;
return value;
}
int solve(int x, int y)
{
int temp;
if(b[x][y] == 0)
{
for(int i = 1;i < 10; i++)
{
temp = inputvalue(x, y, i);
if(temp > 0)
{
b[x][y] = temp;
if (x == 8 && y == 8)
return 1;
else if (x == 8)
{
if (solve(0, y + 1))
return 1;
}
else
{
if (solve(x + 1, y))
return 1;
}
}
}
if (i == 10)
{
if (b[x][y] != a[x][y])
b[x][y] = 0;
return 0;
}
}
if (x == 8 && y == 8)
return 1;
else if (x == 8)
{
if (solve(0, y + 1))
return 1;
}
else
{
if (solve(x + 1, y))
return 1;
}
}
void main()
{
clrscr();
for(int i = 0;i < 9;i++)
for(int j = 0;j < 9;j++)
{
gotoxy(i + 1,j + 1);
cin >> a[i][j];
}
for(i = 0;i < 9;i++)
for(j = 0;j < 9;j++)
b[i][j] = a[i][j];
if(solve(0,0))
{
for(i = 0;i < 9;i++)
for(j = 0;j < 9;j++)
{
gotoxy(i + 1,j + 1);
cout << b[i][j];
}
}
else
cout<<"no solution";
getch();
}
폭 넓은 방법 - 귀하의 질문에 구체적인 것을 제안하는 것이 매우 어렵습니다 ... 당신이 스도쿠 해결사를 필요로한다면 - 주변에는 많은 것들이 있습니다. WinForms/WPF를 배워야하는 경우 - 샘플이 많이 있습니다. –
QT 또는 TCL/TK 또는 GTK를 사용해 보셨습니까? – Ani
먼저 C#에 솔버 코드를 포팅 해보십시오. 그런 다음 C#에서 GUI를 추가하십시오. – doomster