top button
Flag Notify
    Connect to us
      Site Registration

Site Registration

I have to make a tic tac toe program and I am struggling. Can some one provide me the sample code in C or C++?

+2 votes
328 views

Sorry for hiding my identity :)

posted Apr 24, 2015 by anonymous

Share this question
Facebook Share Button Twitter Share Button LinkedIn Share Button

1 Answer

+3 votes

please refer this sample code:

#include<stdio.h>
#include<conio.h>

void Board();
void PlayerX();
void PlayerO();
void Player_win();
void check();
int win=0,wrong_X=0,wrong_O=0,chk=0;

char name_X[30];
char name_O[30];
int pos_for_X[3][3];
int pos_for_O[3][3];
int pos_marked[3][3];

void main()
{
    int i,ch,j;
    char ans;
/*  clrscr();
    printf("\n\t\t\t\tTIC TAC TOE");
    printf("\n\t\t\t\t");
    for(i=1;i<=11;i++)
    {
        delay(10000);
        printf("*");
    }*/
    do
    {
        clrscr();
        printf("\n\t\t\t\tTIC TAC TOE");
        printf("\n\t\t\t\t");
        for(i=1;i<=11;i++)
        {
            delay(10000);
            printf("*");
        }
        printf("\n1.Start The Game");
        printf("\n2.Quit The Game");
        printf("\nEnter your choice(1-2) : ");
        scanf("%d",&ch);
        switch(ch)
        {
            case 1:
                chk=0;
                win=0;
                for(i=1;i<=3;i++)
                {
                    for(j=1;j<=3;j++)
                    {
                        pos_for_X[i][j]=0;
                        pos_for_O[i][j]=0;
                        pos_marked[i][j]=0;
                    }
                }
                printf("\n\n");
                clrscr();
                printf("\nEnter the name of the player playing for \'X\': ");
                fflush(stdin);
                gets(name_X);
                printf("\nEnter the name of the player playing for \'O\': ");
                fflush(stdin);
                gets(name_O);
                Board();
                for(;;)
                {
                    if(win==1)
                        break;
                    check();
                    if(chk==9)
                    {
                        printf("\n\t\t\tMATCH DRAWS!!");
                        printf("\nPress any key....");
                        break;
                    }
                    else
                        chk=0;
                    printf("\nTURN FOR %s:",name_X);
                    PlayerX();
                    do
                    {
                        if(wrong_X!=1)
                            break;
                        wrong_X=0;
                        printf("\nTURN FOR %s:",name_X);
                        PlayerX();
                    }while(wrong_X==1);
                    check();
                    if(chk==9)
                    {
                        printf("\n\t\t\tMATCH DRAWS");
                        printf("\nPress any key....");
                        break;
                    }
                    else
                        chk=0;
                    printf("\nTURN FOR %s:",name_O);
                    PlayerO();
                    do
                    {
                        if(wrong_O!=1)
                            break;
                        wrong_O=0;
                        printf("\nTURN FOR %s:",name_O);
                        PlayerO();
                    }while(wrong_O==1);

                    }
                Board();
                if(win!=1)
                {
                    printf("\n\t\t\tMATCH DRAWS!!");
                    printf("\nPress any key.......");
                }
                getch();
                break;
            case 2:
                printf("\n\n\n\t\t\tThank You For Playing The Game.");
                printf("\n\t\t\t###############################");
                getch();
                exit(1);
                break;
        }
        printf("\nWant To Play(Y/N) ? ");
        fflush(stdin);
        scanf("%c",&ans);
    }while(ans=='y' || ans=='Y');
}


void Board()
{
    int i,j;
    clrscr();
    printf("\n\t\t\t\tTIC TAC TOE BOARD");
    printf("\n\t\t\t\t*****************");
    printf("\n\n\n");
    printf("\n\t\t\t    1\t      2\t        3");
    for(i=1;i<=3;i++)
    {
        printf("\n \t\t\t _____________________________");
        printf("\n \t\t\t¦\t  ¦\t   ¦\t     ¦");
        printf("\n\t\t%d\t",i);
        for(j=1;j<=3;j++)
        {

            if(pos_for_X[i][j]==1)
            {
                printf("    X");
                printf("     ");
            }
            else if(pos_for_O[i][j]==1)
            {
                printf("    O");
                printf("     ");
            }
            else
            {
                printf("          ");
                continue;
            }
        }
        printf("\n\t\t\t¦\t  ¦\t   ¦\t     ¦");
    }
    printf("\n\t\t\t------------------------------");
    Player_win();
}


void PlayerX()
{
    int row,col;
    if(win==1)
        return;
    printf("\nEnter the row no. : ");
    fflush(stdin);
    scanf("%d",&row);
    printf("Enter the column no. : ");
    fflush(stdin);
    scanf("%d",&col);
    if(pos_marked[row][col]==1 || row<1 || row>3 || col<1 || col>3)
    {
        printf("\nWRONG POSITION!! Press any key.....");
        wrong_X=1;
        getch();
        Board();
    }
    else
    {
        pos_for_X[row][col]=1;
        pos_marked[row][col]=1;
        Board();
    }
}
void PlayerO()
{
    int row,col;
    if(win==1)
        return;
    printf("\nEnter the row no. : ");
    scanf("%d",&row);
    printf("Enter the column no. : ");
    scanf("%d",&col);
    if(pos_marked[row][col]==1 || row<1 || row>3 || col<1 || col>3)
    {
        printf("\nWRONG POSITION!! Press any key....");
        wrong_O=1;
        getch();
        Board();
    }
    else
    {
        pos_for_O[row][col]=1;
        pos_marked[row][col]=1;
        Board();
    }
}
void Player_win()
{
    int i;
    for(i=1;i<=3;i++)
    {
        if(pos_for_X[i][1]==1 && pos_for_X[i][2]==1 && pos_for_X[i][3]==1)
        {
            win=1;
            printf("\n\nRESULT: %s wins!!",name_X);
            printf("\nPress any key............");
            return;
        }
    }
    for(i=1;i<=3;i++)
    {
        if(pos_for_X[1][i]==1 && pos_for_X[2][i]==1 && pos_for_X[3][i]==1)
        {
            win=1;
            printf("\n\nRESULT: %s wins!!",name_X);
            printf("\nPress any key............");
            return;
        }
    }
    if(pos_for_X[1][1]==1 && pos_for_X[2][2]==1 && pos_for_X[3][3]==1)
    {
        win=1;
        printf("\n\nRESULTL: %s wins!!",name_X);
        printf("\nPress any key......");
        return;
    }
    else if(pos_for_X[1][3]==1 && pos_for_X[2][2]==1 && 
pos_for_X[3][1]==1)
    {
            win=1;
        printf("\n\nRESULT: %s wins!!",name_X);
                printf("\nPress any key.....");
        return;
    }

        for(i=1;i<=3;i++)
    {
        if(pos_for_O[i][1]==1 && pos_for_O[i][2]==1 && pos_for_O[i][3]==1)
        {
            win=1;
            printf("\n\nRESULT: %s wins!!",name_O);
                        printf("\nPress any key.....");
            return;
        }
    }
    for(i=1;i<=3;i++)
    {
        if(pos_for_O[1][i]==1 && pos_for_O[2][i]==1 && pos_for_O[3][i]==1)
        {
            win=1;
            printf("\n\nRESULT: %s wins!!",name_O);
                        printf("\nPress any key.....");
            return;
        }
    }
    if(pos_for_O[1][1]==1 && pos_for_O[2][2]==1 && pos_for_O[3][3]==1)
    {
        win=1;
        printf("\n\nRESULT: %s wins!!",name_O);
        printf("\nPress any key.....");
        return;
    }
    else if(pos_for_O[1][3]==1 && pos_for_O[2][2]==1 && 
pos_for_O[3][1]==1)
    {
            win=1;
        printf("\n\nRESULT: %s wins!!",name_O);
                printf("\nPress any key.....");
        return;
    }
}
void check()
{
    int i,j;
    for(i=1;i<=3;i++)
    {
        for(j=1;j<=3;j++)
        {
            if(pos_marked[i][j]==1)
                chk++;
            else
                continue;
        }
    }
}
answer Apr 27, 2015 by Manikandan J
Similar Questions
+1 vote

I'm beginner to LTE and I wanted to know basics of it. Please suggest me the links so that I can analyze some basics.

+3 votes

I am writing a program for tic-tac-toe, where system will guess the next best move for one player. Any pointer how to solve it?

...