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 free games, sudoku project java codes report, sudoku books, printable sudoku, online sudoku, java sudoku game source code, sudoku 2x3gth coding in image compression ppt 2012,

[-]
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: