SUDOKU
#2
Code:
/* SU DOKU */



#include <iostream.h>

void main()

{

    int k[9][9],K[9][9];

    int i,j,i1,j1,i2,j2;

    int error,temp;

    int count=0;



    for(i=0;i<9;i++)

    for(j=0;j<9;j++)

        K[i][j]=0;



    for(i=0;i<9;i++)

    for(j=0;j<9;j++)

    {

        cin>>K[i][j];

        k[i][j]=K[i][j];

    }

    cout<<"O.K.? (Enter 0 if OK, 1 to update): ";

    cin>>error;

    if(error==0)

        goto matrixvalidation;



matrixupdation:

    while(1)

    {

        cout<<"Enter Row, Col, Revised number:(0 to exit) ";

        cin>>i;

        if(i==0)break;

        cin>>j>>temp;

        if(i>0&&j>0&&temp>=0&&i<10&&j<10&&temp<10)

        {

            K[i-1][j-1]=temp;

            k[i-1][j-1]=temp;

        }

        else

            cout<<"Enter row/column 1 to 9 & number 0 to 9 only.

";

    }



matrixvalidation:

    cout<<"

Input matrix:

";

    for(i=0;i<9;i++)

    {

        for(j=0;j<9;j++)

            cout<<k[i][j]<<" ";

        cout<<"

";

    }



    for(i=0;i<9;i++)

    for(j=0;j<9;j++)

        if(k[i][j]<0||k[i][j]>9)

        {

            cout<<"

"<<i+1<<" "<<j+1<<" "<<k[i][j];

            cout<<"

Input matrix error.";

            cout<<"

Numbers should be 1 to 9 only.



";

            goto matrixupdation;

        }



    for(i=0;i<9;i++)

    for(j=0;j<9;j++)

    {

        if(k[i][j]==0)continue;

        error=0;

        for(i1=0;i1<9;i1++)

            if(i!=i1&&k[i][j]==k[i1][j])

            {

                error=1;

                i2=i1;

                j2=j;

            }

        for(j1=0;j1<9;j1++)

            if(j!=j1&&k[i][j]==k[i][j1])

            {

                error=1;

                i2=i;

                j2=j1;

            }

        for(i1=0;i1<9;i1++)

        for(j1=0;j1<9;j1++)

            if((i!=i1||j!=j1)&&i/3==i1/3&&j/3==j1/3&&k[i][j]==k[i1][j1])

            {

                error=1;

                i2=i1;

                j2=j1;

            }

        if(error)

        {

            cout<<"

"<<i+1<<" "<<j+1<<" "<<k[i][j];

            cout<<"

"<<i2+1<<" "<<j2+1<<" "<<k[i2][j2];

            cout<<"

Input matrix error.";

            cout<<"

A number has been repeated in the same row, col or

block.



";

            goto matrixupdation;

        }

    }



/* Logic starts: */

    for(i=0;i<9;i++)

    for(j=0;j<9;j++)

    {

        if(K[i][j]>0) goto chksol;

        for(k[i][j]++;k[i][j]<=9;k[i][j]++)

        {

            error=0;

            for(i1=0;i1<9;i1++)

                if(i!=i1&&k[i][j]==k[i1][j])error=1;

            for(j1=0;j1<9;j1++)

                if(j!=j1&&k[i][j]==k[i][j1])error=1;

            for(i1=0;i1<9;i1++)

            for(j1=0;j1<9;j1++)

                if((i!=i1||j!=j1)&&i/3==i1/3&&j/3==j1/3&&k[i][j]==k[i1][j1])

                    error=1;

            if(error==0)break;

        }

        if(k[i][j]>9)

        {

            k[i][j]=0;

            do

            {

                if(i==0&&j==0)goto nomoresol;

                if(j>0)j--;else{j=8;i--;}

            }while(K[i][j]>0);

            j--;

        }

chksol:    if(i==8&&j==8)

        {

            cout<<"

Solution: "<<++count<<"

";

            for(i1=0;i1<9;i1++)

            {

                for(j1=0;j1<9;j1++)

                    cout<<k[i1][j1]<<" ";

                cout<<"

";

            }

            if(count==50)

            {

                cout<<"

Too many solutions.

Not checking for more

solutions.



";

                return;

            }



            while(K[i][j]>0)

            {

                if(i==0&&j==0)goto nomoresol;

                if(j>0)j--;else{j=8;i--;}

            }

            k[i][j]=0;

            do

            {

                if(i==0&&j==0)goto nomoresol;

                if(j>0)j--;else{j=8;i--;}

            }while(K[i][j]>0);

            j--;

        }

    }

nomoresol:

    if(count>0)

        cout<<"

No more solutions.



";

    else

        cout<<"No solution.



";

}
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: sudoku puzzles, free sudoku download, free printable sudoku games, sudoku final year project plan, web based sudoku, answers of sudoku in dharitri newspaper, sudoku online,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Messages In This Thread
SUDOKU - by seminar projects crazy - 14-08-2009, 03:26 PM
RE: SUDOKU Source code - by project topics - 31-05-2011, 09:52 AM
RE: SUDOKU - by leynsy25 - 25-06-2011, 08:52 PM

Forum Jump: