User
Pass
2FA
 
 

sudoku

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Freakz Forum Index -> Trash Bin -> Trash -> Homework zone
Author Message606
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

Post 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
View user's profile Send private message

  Topic locked


Topic is closed, you cannot post any messages in it anymore




 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    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

 
 
 







I forgot my password


This message appears only once, so
like us now until it's too late ! :D
x