Wednesday, 9 November 2011

Simple tic tac toe game

After open a folder in my Dynabook laptop, I found some file that were saved in my lost laptop ( Acer ) two years ago because of stolen. Yeah, it is a simple program that I was learn it in fisrt year of college.

I write it here so we can refresh our mind after learning about Android (wow!! sound's amazing! lol )
Before learning more about Android, is better you read this one first..hehehe ^^

check it out guys!



#include <stdio.h>

#include <>

#include 
#include 

struct list
{
int no;
char matrix[1];
struct list *next;
struct list *prev;
} *head, *tail, *temp;

int random()
srand((unsigned) time(0));
return(rand()%10);
}


void main()
{
int i,j=50,acak=5,jawab;
char strjawab[1];

printf(" Welcome to Tic Tac Toe Game\t\t\t by: Ridwan\n");
printf(" Your opponent is computer\n");
printf(" Good Luck and enjoy\n\n");
//buat head
head=(struct list*)malloc(sizeof(struct list));
head->no=1;
head->matrix[0]=NULL;
head->next=NULL;
head->prev=NULL;
temp=head;
//buat tail dan temporary
for (i=2;i<=9;i++)
{
tail=(struct list*)malloc(sizeof(struct list));
tail->no=i;
tail->matrix[0]=NULL;
temp->next=tail;
temp->prev=temp;
tail->next=NULL;
temp=tail;
j++;
}
//data awal
temp=head;
i=1;

while(temp!=NULL)
{
if(temp->matrix[0]==NULL)
printf("\t|"/*,temp->no*/);
else 
printf("\t%c",temp->matrix[0]);
if(i==3||i==6)
printf("\n");
temp=temp->next;
i++;
}
//printf("\n\n Player\t= O");
//printf("\n Computer\t= X");
printf("\n Do you wanna play now?=");
gets(strjawab);

while(1)
if (strcmp(strjawab,"y")==0)
start: system("cls");
puts("");
temp=head;
i=1;

while(temp!=NULL)
{
if(temp->matrix[0]==NULL)
printf("\t|"/*,temp->no*/);
else 
printf("\t%c",temp->matrix[0]);
if(i==3||i==6)
printf("\n");
temp=temp->next;
i++;
}
player:
printf("\n\n where do you wanna go?");
gets(strjawab);
jawab=atoi(strjawab);
temp=head;

while(temp!=NULL)
if(jawab>=1&&jawab<=9)
{
if(temp->no==jawab)
{
if(temp->matrix[0]==NULL)
strcpy(temp->matrix,"O");
else 
{
printf(" Number %d is not empty",temp->no);
goto player;
}
}
temp=temp->next;
}
else
{
printf(" Insert number 1 until 9");
goto player;
}

}

system("cls");
puts("");
temp=head;
i=1;

while(temp!=NULL)
{
if(temp->matrix[0]==NULL)
printf("\t|"/*,temp->no*/);
else 
printf("\t%c",temp->matrix[0]);
if(i==3||i==6)
printf("\n");
temp=temp->next;
i++;
}

printf("\n\n Player go to number\t=%d",jawab);
printf("\n Loading...");
getche();


//membentuk baris horizontal
temp=head;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next->next->next->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n\n");break;
}

//membentuk baris vertikal
temp=head;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

//membentuk diagonal
temp=head;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}


temp=head;
while(temp!=NULL)
{
if(temp->no==acak)
{
if(temp->matrix[0]==NULL)
strcpy(temp->matrix,"X");
else 
goto computer;
}
temp=temp->next;
}
goto shortcut1;




computer: 
acak=random(); 
temp=head;

while(temp!=NULL)
if(acak==0)
goto computer;
else
{
if(temp->no==acak)
{
if(temp->matrix[0]==NULL)
strcpy(temp->matrix,"X");
else 
goto computer;
}
}
temp=temp->next;
}

shortcut1: 
system("cls");
puts("");
temp=head;
i=1;


while(temp!=NULL)
{
if(temp->matrix[0]==NULL)
printf("\t|"/*,temp->no*/);
else 
printf("\t%c",temp->matrix[0]);
if(i==3||i==6)
printf("\n");
temp=temp->next;
i++;
}

printf("\n\n Player go to number\t=%d",jawab);
printf("\n Computer go to number\t=%d",acak);
printf("\n Loading...");
getche();

//membentuk baris horizontal
temp=head;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0)
{
printf("\n\n You win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next->next->next->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n\n");break;
}

//membentuk baris vertikal
temp=head;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

//membentuk diagonal
temp=head;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
else if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

temp=head->next->next;
if(strcmp(temp->matrix,"O")==0&&strcmp(temp->next->next->matrix,"O")==0&&strcmp(temp->next->next->next->next->matrix,"O")==0)
{
printf("\n\n Player win...\n");break;
}
if(strcmp(temp->matrix,"X")==0&&strcmp(temp->next->next->matrix,"X")==0&&strcmp(temp->next->next->next->next->matrix,"X")==0)
{
printf("\n\n Computer win...\n");break;
}

goto start;
}
}
printf(" Thanks for play the game ^^\n");
getche();
}





It's so confusing is not it?? 
I'm confusing too...lol ^^v

No comments:

Post a Comment