Existing user? Sign in
Sign up
Games
Servers
Useful
User
Pass
2FA
sudoku
Freakz Forum Index
->
Trash Bin
->
Trash
->
Homework zone
Author
Message
606
ReKing
[Mentally Stable]
Status: Offline
(since 19-06-2013 12:34)
Joined: 22 Apr 2011
Posts: 13
,
Topics: 7
Location:
Romania
Reputation:
79.1
Votes
: 4
Posted: 18-06-2013, 16:27:08
| Translate post to:
... (
Click for more languages
)
Am conceput un programel care ar putea sa rezolve un careu de tip sudoku.
Problema:nu functioneaza cum trebuie, dpdv matematic pare ok.
Some help?
Code:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sudoku.txt");
ofstream g("sudokur.txt");
////////////////////SUDOkU SOLVER////////////////////
int bb[9][9];
int verificare1 ()
{
int i,j,i2,j2,s,k;
k=3;
i=j=1;
while (k)
{
s=0;
for (i2=i;i2<=i+2;i2++)
for (j2=j;j2<=j+2;j2++)
s=s+bb[i2][j2];
if (s!=45) return 0;
k--;
i=i+3;
j=j+3;
}
k=2;
i=4;j=1;
while (k)
{
s=0;
for (i2=i;i2<=i+2;i2++)
for (j2=j;j2<=j+2;j2++)
s=s+bb[i2][j2];
if (s!=45) return 0;
k--;
i=i+3;
j=j+3;
}
k=2;
i=1;j=4;
while (k)
{
s=0;
for (i2=i;i2<=i+2;i2++)
for (j2=j;j2<=j+2;j2++)
s=s+bb[i2][j2];
if (s!=45) return 0;
k--;
i=i+3;
j=j+3;
}
k=1;
i=7;j=1;
while (k)
{
s=0;
for (i2=i;i2<=i+2;i2++)
for (j2=j;j2<=j+2;j2++)
s=s+bb[i2][j2];
if (s!=45) return 0;
k--;
i=i+3;
j=j+3;
}
k=1;
i=1;j=7;
while (k)
{
s=0;
for (i2=i;i2<=i+2;i2++)
for (j2=j;j2<=j+2;j2++)
s=s+bb[i2][j2];
if (s!=45) return 0;
k--;
i=i+3;
j=j+3;
}
return 1;
}
int verificare2 ()
{
int i,j,s1,s2;
s1=s2=0;
for (i=1;i<=9;i++)
{
for (j=1;j<=9;j++)
{
s1=s1+bb[i][j];
s2=s2+bb[j][i];
}
if (s1!=45) return 0;
if (s2!=45) return 0;
s1=0;
s2=0;
}
return 1;
}
void mdf (int v[],int n)
{
int i;
for(i=n;i>=2;i--)
{
if (v[i]>9)
{
v[i]=1;
v[i-1]++;
}
}
}
int main ()
{
int i,j,n=0,x[80]={0},y[80]={0},v[80]={0};
for (i=1;i<=9;i++)
{
for (j=1;j<=9;j++)
{
f>>bb[i][j];
if (bb[i][j]==0)
{
bb[i][j]++;
x[++n]=i;
y[n]=j;
v[n]=1;
}
}
}
while (!(verificare1 && verificare2))
{
mdf(v,n);
for (i=1;i<=n;i++)
bb[x[i]][y[i]]=v[i];
v[n]++;
}
for (i=1;i<=9;i++)
{
for (j=1;j<=9;j++)
{
g<<bb[i][j]<<" ";
}
g<<endl;
}
}
in fisierul sudoku.txt este scrisa matricea resp (in loculb spatilor libere este 0)
0
0
Back to top
Topic locked
Topic is closed, you cannot post any messages in it anymore
Freakz Forum Index
->
Trash Bin
->
Trash
->
Homework zone
The time now is 27-04-2024, 18:45:13
Copyright info
Based on phpBB
ro
/
com
B
Login
I forgot my password
World of Warcraft
Login for more...
Download WoW 7.3.5
Misc
eSports
Achievements
Buy reputation with votes
Reputation trades
Forum rules
Ban list
Members list
User guide (FAQ)
World of Warcraft
View details