Search
Search titles only
By:
Search titles only
By:
Log in
Register
Search
Search titles only
By:
Search titles only
By:
Menu
Install the app
Install
Forums
New posts
All threads
Latest threads
New posts
Trending threads
Trending
Search forums
What's new
New posts
New ads
New profile posts
Latest activity
Free Ads
Latest reviews
Search ads
Members
Current visitors
New profile posts
Search profile posts
Contact us
Latest ads
එක පැකේජ් එකයි මාසෙටම Unlimited Internet. තාමත් DATA CARD දාන්න සල්ලි වියදම් කරනවද? අඩුම මිලට අපෙන්.
sayuru bandara
Updated:
Tuesday at 12:30 PM
Ad icon
ඉන්ටර්නෙට් එකෙන් හරියටම සල්ලි හොයන්න සහ Success වෙන්න කැමතිද? 🚀 (E-Money & Success Stories)
siri sumana
Updated:
Saturday at 11:44 PM
Gemini AI PRO 18 months Offer
Hawaka
Updated:
May 27, 2026
Ad icon
koko account
DasunEranga
Updated:
May 27, 2026
Ad icon
koko account
DasunEranga
Updated:
May 27, 2026
Electronics
Vehicles
Property
Search
Reply to thread
Forums
General
Education
C/C++ Coding challenges
Get the App
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="DURApix" data-source="post: 8305083" data-attributes="member: 299227"><p><strong>Tuck Tik Took</strong></p><p></p><p>implementation of the game Tic-tac-toe using C++.</p><p>my own method.using combinations.This method hv some weak points.</p><p>try to improve the code..</p><p></p><p>[CODE]/*</p><p>All Rights Reserved.</p><p>Copyright(c) 2010 June 18</p><p>dURA Solutions.</p><p></p><p>Tuck Tik Took (Version 2.0)</p><p></p><p>Note :</p><p>Updated Version.Thanx Navodth Bhanuka,Dr.PHP and Pera 4 da ideas</p><p>May be the program looks crazy now.(with da effects of timers)</p><p>Now dURA can Offend and Defend :)</p><p>Consist with most of move lists.</p><p></p><p>TTT game have atleast 3!x8=3x2x1x8=48 Combinations in total.may be Even more.</p><p>still im trying to program all da moves lists and powerful da coding..</p><p>*/</p><p></p><p>#include<iostream></p><p>#include <time.h></p><p>#include <stdlib.h></p><p></p><p>using namespace std;</p><p></p><p>int Check(char Ar[3][3]);</p><p>int checkLoss(char Ar[3][3]);</p><p>int checkAggMove(char Ar[3][3]);</p><p>void Wait(int seconds);</p><p>void Progress();</p><p>void ShowBoard(char Ar[3][3]);</p><p>void ComsMove(char Ar[3][3]);</p><p>void PlayerMove(char Ar[3][3]);</p><p>void RandomMove(char Ar[3][3]);</p><p>void AShowBoard(char Ar[3][3]);</p><p></p><p>int main()</p><p>{</p><p>Start:</p><p>cout<<"===================================\n";</p><p>cout<<" << Tuck Tik Took >> \n";</p><p>cout<<" [Version 2.0] \n";</p><p>cout<<"-----------------------------------\n";</p><p>cout<<" dURA(R) Solutions(C) 2010 June \n";</p><p>cout<<"===================================\n\n";</p><p>cout<<" dURA-O | Player-X\n\n";</p><p></p><p>char y;</p><p>char Ar[3][3]={'1','2','3','4','5','6','7','8','9'};</p><p></p><p>ShowBoard(Ar);</p><p></p><p>Begin:</p><p>int x=0;</p><p></p><p>//Players Move Functions</p><p>if (!(Ar[0][0]=='1' || Ar[0][1]=='2' || Ar[0][2]=='3' || Ar[1][0]=='4' || Ar[1][1]=='5' || Ar[1][2]=='6' || Ar[2][0]=='7' || Ar[2][1]=='8' || Ar[2][2]=='9'))</p><p>{cout<<"\nMatch Ends Up in a Draw !!!\n";</p><p>goto Last;}</p><p></p><p>PlayerMove(Ar);</p><p>cout<<"\n\n----- Players Move -------\n\n";</p><p>ShowBoard(Ar);</p><p></p><p>x=Check(Ar);</p><p>if(x==1 || x==2)</p><p>goto Last;</p><p></p><p>if (!(Ar[0][0]=='1' || Ar[0][1]=='2' || Ar[0][2]=='3' || Ar[1][0]=='4' || Ar[1][1]=='5' || Ar[1][2]=='6' || Ar[2][0]=='7' || Ar[2][1]=='8' || Ar[2][2]=='9'))</p><p>{cout<<"\nMatch Ends Up in a Draw !!!\n";</p><p>goto Last;}</p><p></p><p>Progress();</p><p></p><p>//Coms Move Functions</p><p>ComsMove(Ar);</p><p>cout<<"------- dURAs Move -------\n\n";</p><p>AShowBoard(Ar);</p><p>x=Check(Ar);</p><p>if(x==1 || x==2)</p><p>goto Last;</p><p></p><p>goto Begin;</p><p></p><p>Last:</p><p>cout<<"\n\nGame Over !! \n";</p><p>cout<<"\n\nDo Want to Play Again (y/n) : ";</p><p>cin>>y;</p><p>if(y=='y')</p><p>{system("cls");goto Start;}</p><p>else</p><p>return 0;</p><p>}</p><p></p><p>int Check(char Ar[3][3])</p><p>{</p><p>int x=0;</p><p></p><p>if (Ar[0][0]=='X' && Ar[0][1]=='X' && Ar[0][2]=='X') x=1;</p><p>if (Ar[1][0]=='X' && Ar[1][1]=='X' && Ar[1][2]=='X') x=1;</p><p>if (Ar[2][0]=='X' && Ar[2][1]=='X' && Ar[2][2]=='X') x=1;</p><p>if (Ar[0][0]=='X' && Ar[1][0]=='X' && Ar[2][0]=='X') x=1;</p><p>if (Ar[0][1]=='X' && Ar[1][1]=='X' && Ar[2][1]=='X') x=1;</p><p>if (Ar[0][2]=='X' && Ar[1][2]=='X' && Ar[2][2]=='X') x=1;</p><p>if (Ar[0][0]=='X' && Ar[1][1]=='X' && Ar[2][2]=='X') x=1;</p><p>if (Ar[2][0]=='X' && Ar[1][1]=='X' && Ar[0][2]=='X') x=1;</p><p></p><p>if (Ar[0][0]=='O' && Ar[0][1]=='O' && Ar[0][2]=='O') x=2;</p><p>if (Ar[1][0]=='O' && Ar[1][1]=='O' && Ar[1][2]=='O') x=2;</p><p>if (Ar[2][0]=='O' && Ar[2][1]=='O' && Ar[2][2]=='O') x=2;</p><p>if (Ar[0][0]=='O' && Ar[1][0]=='O' && Ar[2][0]=='O') x=2;</p><p>if (Ar[0][1]=='O' && Ar[1][1]=='O' && Ar[2][1]=='O') x=2;</p><p>if (Ar[0][2]=='O' && Ar[1][2]=='O' && Ar[2][2]=='O') x=2;</p><p>if (Ar[0][0]=='O' && Ar[1][1]=='O' && Ar[2][2]=='O') x=2;</p><p>if (Ar[2][0]=='O' && Ar[1][1]=='O' && Ar[0][2]=='O') x=2;</p><p></p><p>if(x==1)</p><p>cout<<"\n\nPlayer Wins the Game!!! \n";</p><p>else if(x==2)</p><p>cout<<"\n\ndURA Wins the Game!!! \n";</p><p></p><p>return x;</p><p>}</p><p></p><p>void RandomMove(char Ar[3][3])</p><p>{int i,j;</p><p></p><p>if(Ar[1][1]=='5')</p><p>{Ar[1][1]='O';</p><p>goto last;}</p><p></p><p>for(i=0;i<3;i++)</p><p>{</p><p>for(j=0;j<3;j++)</p><p>{</p><p>if (Ar[i][j]=='1' || Ar[i][j]=='2' || Ar[i][j]=='3' || Ar[i][j]=='4' || Ar[i][j]=='5' || Ar[i][j]=='6' || Ar[i][j]=='7' || Ar[i][j]=='8' || Ar[i][j]=='9')</p><p>{Ar[i][j]='O';</p><p>goto last;}</p><p>}</p><p>}</p><p>last:</p><p>cout<<"";</p><p>}</p><p></p><p>void Progress()</p><p>{</p><p>cout<<"\n\dURA is Thinking... ";</p><p>for(int i=0;i<5;i++)</p><p>{cout<<">";</p><p>Wait(1);}</p><p>cout<<"\n\nOK!! Friend";</p><p>Wait(1);</p><p>cout<<"\ndURA got the Point..!!\n";</p><p>Wait(2);</p><p>}</p><p></p><p>void ComsMove(char Ar[3][3])</p><p>{</p><p>int Ans;</p><p></p><p>Ans=checkAggMove(Ar);</p><p>if (Ans==1)</p><p>goto skip;</p><p></p><p>Ans=checkLoss(Ar);</p><p>if (Ans==1)</p><p>goto skip;</p><p></p><p>RandomMove(Ar);</p><p></p><p>skip:</p><p>cout<<"\n";</p><p>}</p><p></p><p>void Wait(int seconds)</p><p>{//BTW I dont know WTF Process :(</p><p>clock_t endwait;</p><p>endwait = clock () + seconds * CLK_TCK ;</p><p>while (clock() < endwait) {}</p><p>}</p><p></p><p>int checkAggMove(char Ar[3][3])</p><p>{</p><p>int Flag=0;</p><p></p><p>if (Ar[0][0]=='O' && Ar[1][0]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='O' && Ar[2][0]=='O' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;}</p><p>if (Ar[1][0]=='O' && Ar[2][0]=='O' && Ar[0][0]=='1') {Ar[2][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][1]=='O' && Ar[1][1]=='O' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='O' && Ar[2][1]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[1][1]=='O' && Ar[2][1]=='O' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][2]=='O' && Ar[1][2]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][2]=='O' && Ar[2][2]=='O' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;}</p><p>if (Ar[1][2]=='O' && Ar[2][2]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p></p><p>//Columns</p><p>if (Ar[0][0]=='O' && Ar[0][1]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='O' && Ar[0][2]=='O' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;}</p><p>if (Ar[0][1]=='O' && Ar[0][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[1][0]=='O' && Ar[1][1]=='O' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;}</p><p>if (Ar[1][0]=='O' && Ar[1][2]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[1][1]=='O' && Ar[1][2]=='O' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[2][0]=='O' && Ar[2][1]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='O' && Ar[2][2]=='O' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;}</p><p>if (Ar[2][1]=='O' && Ar[2][2]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p></p><p>//Axels</p><p>if (Ar[0][0]=='O' && Ar[1][1]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='O' && Ar[2][2]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[1][1]=='O' && Ar[2][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][2]=='O' && Ar[1][1]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][2]=='O' && Ar[2][0]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='O' && Ar[1][1]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p></p><p>last:</p><p>return Flag;</p><p>}</p><p></p><p>int checkLoss(char Ar[3][3])</p><p>{</p><p>int Flag=0;</p><p>//Duras Combinations Of TTT</p><p></p><p>if(Ar[1][1]=='5')</p><p>{Ar[1][1]='O';Flag=1;goto last;}</p><p></p><p>//Rows</p><p>if (Ar[0][0]=='X' && Ar[1][0]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][0]=='X' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;}</p><p>if (Ar[1][0]=='X' && Ar[2][0]=='X' && Ar[0][0]=='1') {Ar[2][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][1]=='X' && Ar[1][1]=='X' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][1]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[1][1]=='X' && Ar[2][1]=='X' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][2]=='X' && Ar[1][2]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][2]=='X' && Ar[2][2]=='X' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;}</p><p>if (Ar[1][2]=='X' && Ar[2][2]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p></p><p>//Columns</p><p>if (Ar[0][0]=='X' && Ar[0][1]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[0][2]=='X' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;}</p><p>if (Ar[0][1]=='X' && Ar[0][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[1][0]=='X' && Ar[1][1]=='X' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;}</p><p>if (Ar[1][0]=='X' && Ar[1][2]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[1][1]=='X' && Ar[1][2]=='X' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[2][0]=='X' && Ar[2][1]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='X' && Ar[2][2]=='X' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;}</p><p>if (Ar[2][1]=='X' && Ar[2][2]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p></p><p>//Axels</p><p>if (Ar[0][0]=='X' && Ar[1][1]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[1][1]=='X' && Ar[2][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][2]=='X' && Ar[1][1]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][2]=='X' && Ar[2][0]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='X' && Ar[1][1]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p></p><p>//checkUpsetMoves</p><p></p><p>//Salutes 4 Navodth Bhanuka.... :)</p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[2][0]=='X' && Ar[0][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='X' && Ar[0][2]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][0]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[2][2]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p>if (Ar[2][2]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[0][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][2]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p></p><p>/////////////////////</p><p></p><p>if (Ar[0][0]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[0][2]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;}</p><p>if (Ar[2][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p></p><p>/*</p><p>00 01 02 | 1 2 3</p><p>10 11 12 | 4 5 6</p><p>20 21 22 | 7 8 9</p><p>*/</p><p></p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;}</p><p>if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[1][2]=='6') {Ar[1][0]='O';Flag=1;goto last;}</p><p></p><p>if (Ar[2][0]=='O' && Ar[0][2]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;}</p><p>if (Ar[2][0]=='O' && Ar[0][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;}</p><p></p><p>// ............</p><p></p><p>last:</p><p>return Flag;</p><p>}</p><p></p><p>void AShowBoard(char Ar[3][3])</p><p>{</p><p>cout<<"-------------\n";Wait(1);</p><p>cout<<"| "<<Ar[0][0]<<" | "<<Ar[0][1]<<" | "<<Ar[0][2]<<" |\n";Wait(1);</p><p>cout<<"-------------\n";Wait(1);</p><p>cout<<"| "<<Ar[1][0]<<" | "<<Ar[1][1]<<" | "<<Ar[1][2]<<" |\n";Wait(1);</p><p>cout<<"-------------\n";Wait(1);</p><p>cout<<"| "<<Ar[2][0]<<" | "<<Ar[2][1]<<" | "<<Ar[2][2]<<" |\n";Wait(1);</p><p>cout<<"-------------\n";Wait(1);</p><p>}</p><p></p><p>void ShowBoard(char Ar[3][3])</p><p>{</p><p>cout<<"-------------\n";</p><p>cout<<"| "<<Ar[0][0]<<" | "<<Ar[0][1]<<" | "<<Ar[0][2]<<" |\n";</p><p>cout<<"-------------\n";</p><p>cout<<"| "<<Ar[1][0]<<" | "<<Ar[1][1]<<" | "<<Ar[1][2]<<" |\n";</p><p>cout<<"-------------\n";</p><p>cout<<"| "<<Ar[2][0]<<" | "<<Ar[2][1]<<" | "<<Ar[2][2]<<" |\n";</p><p>cout<<"-------------\n";</p><p>}</p><p></p><p>void PlayerMove(char Ar[3][3])</p><p>{</p><p>int r,c;</p><p>int move;</p><p></p><p>begin:</p><p>cout<<"\nPlayers Turn,\nEnter the Position : ";</p><p>cin>>move;</p><p></p><p>switch (move)</p><p>{</p><p>case 1 : r=0;c=0;break;</p><p>case 2 : r=0;c=1;break;</p><p>case 3 : r=0;c=2;break;</p><p>case 4 : r=1;c=0;break;</p><p>case 5 : r=1;c=1;break;</p><p>case 6 : r=1;c=2;break;</p><p>case 7 : r=2;c=0;break;</p><p>case 8 : r=2;c=1;break;</p><p>case 9 : r=2;c=2;break;</p><p>default : cout<<"\nIllegal move!!!\n";goto begin;break;</p><p>}</p><p></p><p>if (Ar[r][c]=='O' || Ar[r][c]=='X')</p><p>{cout<<"Illegal move,This Position is Reserved !!!!\n";</p><p>goto begin;}</p><p>else</p><p>Ar[r][c]='X';</p><p></p><p>} [/CODE]</p></blockquote><p></p>
[QUOTE="DURApix, post: 8305083, member: 299227"] [b]Tuck Tik Took[/b] implementation of the game Tic-tac-toe using C++. my own method.using combinations.This method hv some weak points. try to improve the code.. [CODE]/* All Rights Reserved. Copyright(c) 2010 June 18 dURA Solutions. Tuck Tik Took (Version 2.0) Note : Updated Version.Thanx Navodth Bhanuka,Dr.PHP and Pera 4 da ideas May be the program looks crazy now.(with da effects of timers) Now dURA can Offend and Defend :) Consist with most of move lists. TTT game have atleast 3!x8=3x2x1x8=48 Combinations in total.may be Even more. still im trying to program all da moves lists and powerful da coding.. */ #include<iostream> #include <time.h> #include <stdlib.h> using namespace std; int Check(char Ar[3][3]); int checkLoss(char Ar[3][3]); int checkAggMove(char Ar[3][3]); void Wait(int seconds); void Progress(); void ShowBoard(char Ar[3][3]); void ComsMove(char Ar[3][3]); void PlayerMove(char Ar[3][3]); void RandomMove(char Ar[3][3]); void AShowBoard(char Ar[3][3]); int main() { Start: cout<<"===================================\n"; cout<<" << Tuck Tik Took >> \n"; cout<<" [Version 2.0] \n"; cout<<"-----------------------------------\n"; cout<<" dURA(R) Solutions(C) 2010 June \n"; cout<<"===================================\n\n"; cout<<" dURA-O | Player-X\n\n"; char y; char Ar[3][3]={'1','2','3','4','5','6','7','8','9'}; ShowBoard(Ar); Begin: int x=0; //Players Move Functions if (!(Ar[0][0]=='1' || Ar[0][1]=='2' || Ar[0][2]=='3' || Ar[1][0]=='4' || Ar[1][1]=='5' || Ar[1][2]=='6' || Ar[2][0]=='7' || Ar[2][1]=='8' || Ar[2][2]=='9')) {cout<<"\nMatch Ends Up in a Draw !!!\n"; goto Last;} PlayerMove(Ar); cout<<"\n\n----- Players Move -------\n\n"; ShowBoard(Ar); x=Check(Ar); if(x==1 || x==2) goto Last; if (!(Ar[0][0]=='1' || Ar[0][1]=='2' || Ar[0][2]=='3' || Ar[1][0]=='4' || Ar[1][1]=='5' || Ar[1][2]=='6' || Ar[2][0]=='7' || Ar[2][1]=='8' || Ar[2][2]=='9')) {cout<<"\nMatch Ends Up in a Draw !!!\n"; goto Last;} Progress(); //Coms Move Functions ComsMove(Ar); cout<<"------- dURAs Move -------\n\n"; AShowBoard(Ar); x=Check(Ar); if(x==1 || x==2) goto Last; goto Begin; Last: cout<<"\n\nGame Over !! \n"; cout<<"\n\nDo Want to Play Again (y/n) : "; cin>>y; if(y=='y') {system("cls");goto Start;} else return 0; } int Check(char Ar[3][3]) { int x=0; if (Ar[0][0]=='X' && Ar[0][1]=='X' && Ar[0][2]=='X') x=1; if (Ar[1][0]=='X' && Ar[1][1]=='X' && Ar[1][2]=='X') x=1; if (Ar[2][0]=='X' && Ar[2][1]=='X' && Ar[2][2]=='X') x=1; if (Ar[0][0]=='X' && Ar[1][0]=='X' && Ar[2][0]=='X') x=1; if (Ar[0][1]=='X' && Ar[1][1]=='X' && Ar[2][1]=='X') x=1; if (Ar[0][2]=='X' && Ar[1][2]=='X' && Ar[2][2]=='X') x=1; if (Ar[0][0]=='X' && Ar[1][1]=='X' && Ar[2][2]=='X') x=1; if (Ar[2][0]=='X' && Ar[1][1]=='X' && Ar[0][2]=='X') x=1; if (Ar[0][0]=='O' && Ar[0][1]=='O' && Ar[0][2]=='O') x=2; if (Ar[1][0]=='O' && Ar[1][1]=='O' && Ar[1][2]=='O') x=2; if (Ar[2][0]=='O' && Ar[2][1]=='O' && Ar[2][2]=='O') x=2; if (Ar[0][0]=='O' && Ar[1][0]=='O' && Ar[2][0]=='O') x=2; if (Ar[0][1]=='O' && Ar[1][1]=='O' && Ar[2][1]=='O') x=2; if (Ar[0][2]=='O' && Ar[1][2]=='O' && Ar[2][2]=='O') x=2; if (Ar[0][0]=='O' && Ar[1][1]=='O' && Ar[2][2]=='O') x=2; if (Ar[2][0]=='O' && Ar[1][1]=='O' && Ar[0][2]=='O') x=2; if(x==1) cout<<"\n\nPlayer Wins the Game!!! \n"; else if(x==2) cout<<"\n\ndURA Wins the Game!!! \n"; return x; } void RandomMove(char Ar[3][3]) {int i,j; if(Ar[1][1]=='5') {Ar[1][1]='O'; goto last;} for(i=0;i<3;i++) { for(j=0;j<3;j++) { if (Ar[i][j]=='1' || Ar[i][j]=='2' || Ar[i][j]=='3' || Ar[i][j]=='4' || Ar[i][j]=='5' || Ar[i][j]=='6' || Ar[i][j]=='7' || Ar[i][j]=='8' || Ar[i][j]=='9') {Ar[i][j]='O'; goto last;} } } last: cout<<""; } void Progress() { cout<<"\n\dURA is Thinking... "; for(int i=0;i<5;i++) {cout<<">"; Wait(1);} cout<<"\n\nOK!! Friend"; Wait(1); cout<<"\ndURA got the Point..!!\n"; Wait(2); } void ComsMove(char Ar[3][3]) { int Ans; Ans=checkAggMove(Ar); if (Ans==1) goto skip; Ans=checkLoss(Ar); if (Ans==1) goto skip; RandomMove(Ar); skip: cout<<"\n"; } void Wait(int seconds) {//BTW I dont know WTF Process :( clock_t endwait; endwait = clock () + seconds * CLK_TCK ; while (clock() < endwait) {} } int checkAggMove(char Ar[3][3]) { int Flag=0; if (Ar[0][0]=='O' && Ar[1][0]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][0]=='O' && Ar[2][0]=='O' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;} if (Ar[1][0]=='O' && Ar[2][0]=='O' && Ar[0][0]=='1') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][1]=='O' && Ar[1][1]=='O' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;} if (Ar[0][0]=='O' && Ar[2][1]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[1][1]=='O' && Ar[2][1]=='O' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;} if (Ar[0][2]=='O' && Ar[1][2]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[0][2]=='O' && Ar[2][2]=='O' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;} if (Ar[1][2]=='O' && Ar[2][2]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} //Columns if (Ar[0][0]=='O' && Ar[0][1]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} if (Ar[0][0]=='O' && Ar[0][2]=='O' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;} if (Ar[0][1]=='O' && Ar[0][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[1][0]=='O' && Ar[1][1]=='O' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;} if (Ar[1][0]=='O' && Ar[1][2]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[1][1]=='O' && Ar[1][2]=='O' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;} if (Ar[2][0]=='O' && Ar[2][1]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[2][0]=='O' && Ar[2][2]=='O' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;} if (Ar[2][1]=='O' && Ar[2][2]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} //Axels if (Ar[0][0]=='O' && Ar[1][1]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[0][0]=='O' && Ar[2][2]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[1][1]=='O' && Ar[2][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[0][2]=='O' && Ar[1][1]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][2]=='O' && Ar[2][0]=='O' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[2][0]=='O' && Ar[1][1]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} last: return Flag; } int checkLoss(char Ar[3][3]) { int Flag=0; //Duras Combinations Of TTT if(Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} //Rows if (Ar[0][0]=='X' && Ar[1][0]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][0]=='X' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;} if (Ar[1][0]=='X' && Ar[2][0]=='X' && Ar[0][0]=='1') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][1]=='X' && Ar[1][1]=='X' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][1]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[1][1]=='X' && Ar[2][1]=='X' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;} if (Ar[0][2]=='X' && Ar[1][2]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[0][2]=='X' && Ar[2][2]=='X' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;} if (Ar[1][2]=='X' && Ar[2][2]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} //Columns if (Ar[0][0]=='X' && Ar[0][1]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[0][2]=='X' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;} if (Ar[0][1]=='X' && Ar[0][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[1][0]=='X' && Ar[1][1]=='X' && Ar[1][2]=='6') {Ar[1][2]='O';Flag=1;goto last;} if (Ar[1][0]=='X' && Ar[1][2]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[1][1]=='X' && Ar[1][2]=='X' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[2][1]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[2][2]=='X' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;} if (Ar[2][1]=='X' && Ar[2][2]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} //Axels if (Ar[0][0]=='X' && Ar[1][1]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[1][1]=='X' && Ar[2][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[0][2]=='X' && Ar[1][1]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][2]=='X' && Ar[2][0]=='X' && Ar[1][1]=='5') {Ar[1][1]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[1][1]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} //checkUpsetMoves //Salutes 4 Navodth Bhanuka.... :) if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[0][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[0][2]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[2][2]=='X' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} if (Ar[2][2]=='X' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[0][2]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[0][2]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} if (Ar[2][0]=='X' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} ///////////////////// if (Ar[0][0]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[0][2]=='O' && Ar[2][0]=='7') {Ar[2][0]='O';Flag=1;goto last;} if (Ar[2][0]=='O' && Ar[0][2]=='3') {Ar[0][2]='O';Flag=1;goto last;} if (Ar[2][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} /* 00 01 02 | 1 2 3 10 11 12 | 4 5 6 20 21 22 | 7 8 9 */ if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[2][1]=='8') {Ar[2][1]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[0][1]=='2') {Ar[0][1]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[1][0]=='4') {Ar[1][0]='O';Flag=1;goto last;} if (Ar[0][0]=='X' && Ar[2][2]=='X' && Ar[1][2]=='6') {Ar[1][0]='O';Flag=1;goto last;} if (Ar[2][0]=='O' && Ar[0][2]=='O' && Ar[2][2]=='9') {Ar[2][2]='O';Flag=1;goto last;} if (Ar[2][0]=='O' && Ar[0][2]=='O' && Ar[0][0]=='1') {Ar[0][0]='O';Flag=1;goto last;} // ............ last: return Flag; } void AShowBoard(char Ar[3][3]) { cout<<"-------------\n";Wait(1); cout<<"| "<<Ar[0][0]<<" | "<<Ar[0][1]<<" | "<<Ar[0][2]<<" |\n";Wait(1); cout<<"-------------\n";Wait(1); cout<<"| "<<Ar[1][0]<<" | "<<Ar[1][1]<<" | "<<Ar[1][2]<<" |\n";Wait(1); cout<<"-------------\n";Wait(1); cout<<"| "<<Ar[2][0]<<" | "<<Ar[2][1]<<" | "<<Ar[2][2]<<" |\n";Wait(1); cout<<"-------------\n";Wait(1); } void ShowBoard(char Ar[3][3]) { cout<<"-------------\n"; cout<<"| "<<Ar[0][0]<<" | "<<Ar[0][1]<<" | "<<Ar[0][2]<<" |\n"; cout<<"-------------\n"; cout<<"| "<<Ar[1][0]<<" | "<<Ar[1][1]<<" | "<<Ar[1][2]<<" |\n"; cout<<"-------------\n"; cout<<"| "<<Ar[2][0]<<" | "<<Ar[2][1]<<" | "<<Ar[2][2]<<" |\n"; cout<<"-------------\n"; } void PlayerMove(char Ar[3][3]) { int r,c; int move; begin: cout<<"\nPlayers Turn,\nEnter the Position : "; cin>>move; switch (move) { case 1 : r=0;c=0;break; case 2 : r=0;c=1;break; case 3 : r=0;c=2;break; case 4 : r=1;c=0;break; case 5 : r=1;c=1;break; case 6 : r=1;c=2;break; case 7 : r=2;c=0;break; case 8 : r=2;c=1;break; case 9 : r=2;c=2;break; default : cout<<"\nIllegal move!!!\n";goto begin;break; } if (Ar[r][c]=='O' || Ar[r][c]=='X') {cout<<"Illegal move,This Position is Reserved !!!!\n"; goto begin;} else Ar[r][c]='X'; } [/CODE] [/QUOTE]
Insert quotes…
Verification
Nawa warak dahaya keeyada? (Namaya wadi kireema dahaya)
Post reply
Top
Bottom