You Want to Bet....You cant make it un-beatable if they go first![]()
You Want to Bet....You cant make it un-beatable if they go first![]()
Tic Tac Toe is a game in which, if both players move perfectly, will always result in a draw.
Lol while I may not be able to beat your bot distort, I'm positive I can draw it in every game, or win, depending on how well you coded it. Tic Tac Toe has a very limited number of outcomes.
around 150k winning possibilities for the person to go first, 38k for the person who goes second.
This is it:
Code:// TickTackToe.cpp : Defines the entry pochar for the console application. // Author: Sean Hunt AKA Pop AKA Distort // Plays Tic Tac Toe against the computer #include "stdafx.h" #include <iostream.h> #include <iomanip.h> #include <stdio.h> #include <stdlib.h> char display(char opt1, char opt2, char opt3, char opt4, char opt5, char opt6, char opt7, char opt8, char opt9, int rounds) { cout<<"|-----------|"<<endl; cout<<"| "<<opt1<<" | "<<opt2<<" | "<<opt3<<" |"<<endl; cout<<"|---+---+---|"<<endl; cout<<"| "<<opt4<<" | "<<opt5<<" | "<<opt6<<" |"<<endl; cout<<"|---+---+---|"<<endl; cout<<"| "<<opt7<<" | "<<opt8<<" | "<<opt9<<" |"<<endl; cout<<"|-----------|"<<endl; rounds = rounds+1; return rounds; } char check(char opt1, char opt2, char opt3, char opt4, char opt5, char opt6, char opt7, char opt8, char opt9, char& trueornot) { if (opt1=='X' && opt2=='X' && opt3=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt4=='X' && opt5=='X' && opt6=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt7=='X' && opt8=='X' && opt9=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt1=='X' && opt4=='X' && opt7=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt2=='X' && opt5=='X' && opt8=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt3=='X' && opt6=='X' && opt9=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt1=='X' && opt5=='X' && opt9=='X') { cout<<"X won"<<endl; trueornot='1'; } if (opt3=='X' && opt5=='X' && opt7=='X') { cout<<"X won"<<endl; trueornot='1'; } // End of X wins // O Wins if (opt1=='O' && opt2=='O' && opt3=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt4=='O' && opt5=='O' && opt6=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt7=='O' && opt8=='O' && opt9=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt1=='O' && opt4=='O' && opt7=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt2=='O' && opt5=='O' && opt8=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt3=='O' && opt6=='O' && opt9=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt1=='O' && opt5=='O' && opt9=='O') { cout<<"O won"<<endl; trueornot='1'; } if (opt3=='O' && opt5=='O' && opt7=='O') { cout<<"O won"<<endl; trueornot='1'; } //End of O Wins return trueornot; } int xturn (char& grid1, char& grid2, char& grid3, char& grid4, char& grid5, char& grid6, char& grid7, char& grid8, char& grid9, int rounder) { char grid, win='1'; cout<<"This turn is for X. Please put in your grid number: "; do { grid = rand() % 9 + 1; //1-5-9 Attack if (grid5=='X' && grid9=='X' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } if (grid5=='X' && grid1=='X' && grid9!='X' && grid9!='O' && win!='2'){ grid9='X'; win='2'; } if (grid9=='X' && grid1=='X' && grid5!='X' && grid5!='O' && win!='2'){ grid5='X'; win='2'; } if (grid9=='X' && grid5=='X' && grid1!='X' && grid1!='O' && win!='2'){ grid1='X'; win='2'; } if (grid1=='X' && grid9=='X' && grid5!='X' && grid5!='O' && win!='2'){ grid5='X'; win='2'; } if (grid1=='X' && grid5=='X' && grid9!='X' && grid9!='O' && win!='2'){ grid9='X'; win='2'; } //7-5-3 Attack if (grid3=='X' && grid7=='X' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid3=='X' && grid5=='X' && grid7!='X' && grid7!='O' && win!='2'){ grid7='X'; win='2'; } if (grid7=='X' && grid3=='X' && grid5!='X' && grid5!='O' && win!='2'){ grid5='X'; win='2'; } if (grid7=='X' && grid5=='X' && grid3!='X' && grid3!='O' && win!='2'){ grid3='X'; win='2'; } if (grid5=='X' && grid7=='X' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid5=='X' && grid3=='X' && grid7!='X' && grid7!='O' && win!='2'){ grid7='X'; win='2'; } //End Corner Play //Begin Offence //2-5-7 Vertical if (grid5=='X' && grid2=='X' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } if (grid5=='X' && grid7=='X' && grid2!='X' && grid2!='O' && win!='2') { grid2='X'; win='2'; } if (grid2=='X' && grid7=='X' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid2=='X' && grid5=='X' && grid7!='X' && grid7!='O' && win!='2') { grid8='X'; win='2'; } if (grid7=='X' && grid2=='X' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid7=='X' && grid5=='X' && grid2!='X' && grid2!='O' && win!='2') { grid5='X'; win='2'; } //4-5-6 Defencive play if (grid4=='X' && grid5=='X' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } if (grid4=='X' && grid6=='X' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid5=='X' && grid4=='X' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } if (grid5=='X' && grid6=='X' && grid4!='X' && grid7!='O' && win!='2') { grid4='X'; win='2'; } if (grid6=='X' && grid4=='X' && grid5!='X' && grid8!='O' && win!='2') { grid5='X'; win='2'; } if (grid6=='X' && grid5=='X' && grid4!='X' && grid7!='O' && win!='2') { grid4='X'; win='2'; } //1-2-3 Defencive play if (grid1=='X' && grid2=='X' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid1=='X' && grid3=='X' && grid2!='X' && grid2!='O' && win!='2') { grid2='X'; win='2'; } if (grid2=='X' && grid1=='X' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid2=='X' && grid3=='X' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } if (grid3=='X' && grid2=='X' && grid1!='X' && grid1!='O' && win!='2') { grid5='X'; win='2'; } if (grid3=='X' && grid1=='X' && grid2!='X' && grid2!='O' && win!='2') { grid2='X'; win='2'; } //7-8-9 Defencive Play if (grid7=='X' && grid8=='X' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid7=='X' && grid9=='X' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid8=='X' && grid7=='X' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid8=='X' && grid9=='X' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } if (grid9=='X' && grid7=='X' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid9=='X' && grid8=='X' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } //1-4-8 Defencive Play if (grid1=='X' && grid4=='X' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid1=='X' && grid8=='X' && grid4!='X' && grid4!='O' && win!='2') { grid4='X'; win='2'; } if (grid4=='X' && grid1=='X' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid4=='X' && grid8=='X' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } if (grid8=='X' && grid1=='X' && grid4!='X' && grid4!='O' && win!='2') { grid4='X'; win='2'; } if (grid8=='X' && grid4=='X' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } //3-6-9 Defencive Play if (grid3=='X' && grid9=='X' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } if (grid3=='X' && grid6=='X' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid6=='X' && grid9=='X' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid6=='X' && grid3=='X' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid9=='X' && grid6=='X' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid9=='X' && grid3=='X' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } //Begin Defencive Fool if (grid5=='X' && grid3=='O' && grid1!='X' && grid1!='O' && win!='2' && rounder==2) { grid1='X'; win='2'; } if (grid5=='X' && grid1=='O' && grid3!='X' && grid3!='O' && win!='2' && rounder==2) { grid3='X'; win='2'; } if (grid5=='X' && grid7=='O' && grid9!='X' && grid9!='O' && win!='2' && rounder==2) { grid9='X'; win='2'; } if (grid5=='X' && grid9=='O' && grid7!='X' && grid7!='O' && win!='2' && rounder==2) { grid7='X'; win='2'; } if (grid5=='X' && grid7=='O' && grid3!='X' && grid3!='O' && win!='2' && rounder==2) { grid3='X'; win='2'; } if (grid5=='X' && grid3=='O' && grid7!='X' && grid7!='O' && win!='2' && rounder==2) { grid7='X'; win='2'; } if (grid5=='X' && grid1=='O' && grid7!='X' && grid7!='O' && win!='2' && rounder==2) { grid7='X'; win='2'; } if (grid5=='X' && grid7=='O' && grid1!='X' && grid1!='O' && win!='2' && rounder==2) { grid1='X'; win='2'; } //Begin Defencive Play Corner //4-5-6 if (grid5=='O' && grid3=='O' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } if (grid5=='O' && grid7=='O' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid5=='O' && grid1=='O' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid5=='O' && grid9=='O' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } if (grid5=='O' && grid2=='O' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } //Defencive Side play //2-5-7 Vertical if (grid5=='O' && grid2=='O' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } if (grid5=='O' && grid8=='O' && grid2!='X' && grid2!='O' && win!='2') { grid2='X'; win='2'; } if (grid2=='O' && grid7=='O' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid2=='O' && grid5=='O' && grid7!='X' && grid7!='O' && win!='2') { grid8='X'; win='2'; } if (grid7=='O' && grid2=='O' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid7=='O' && grid5=='O' && grid2!='X' && grid2!='O' && win!='2') { grid5='X'; win='2'; } //4-5-6 Defencive play if (grid4=='O' && grid5=='O' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } if (grid4=='O' && grid6=='O' && grid5!='X' && grid5!='O' && win!='2') { grid5='X'; win='2'; } if (grid5=='O' && grid4=='O' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } if (grid5=='O' && grid6=='O' && grid4!='X' && grid7!='O' && win!='2') { grid4='X'; win='2'; } if (grid6=='O' && grid4=='O' && grid5!='X' && grid8!='O' && win!='2') { grid5='X'; win='2'; } if (grid6=='O' && grid5=='O' && grid4!='X' && grid7!='O' && win!='2') { grid4='X'; win='2'; } //1-2-3 Defencive play if (grid1=='O' && grid2=='O' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid1=='O' && grid3=='O' && grid2!='X' && grid2!='O' && win!='2') { grid2='X'; win='2'; } if (grid2=='O' && grid1=='O' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid2=='O' && grid3=='O' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } if (grid3=='O' && grid2=='O' && grid1!='X' && grid1!='O' && win!='2') { grid5='X'; win='2'; } if (grid3=='O' && grid1=='O' && grid2!='X' && grid2!='O' && win!='2') { grid2='X'; win='2'; } //7-8-9 Defencive Play if (grid7=='O' && grid8=='O' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid7=='O' && grid9=='O' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid8=='O' && grid7=='O' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid8=='O' && grid9=='O' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } if (grid9=='O' && grid7=='O' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid9=='O' && grid8=='O' && grid7!='X' && grid7!='O' && win!='2') { grid7='X'; win='2'; } //1-4-8 Defencive Play if (grid1=='O' && grid4=='O' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid1=='O' && grid8=='O' && grid4!='X' && grid4!='O' && win!='2') { grid4='X'; win='2'; } if (grid4=='O' && grid1=='O' && grid8!='X' && grid8!='O' && win!='2') { grid8='X'; win='2'; } if (grid4=='O' && grid8=='O' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } if (grid8=='O' && grid1=='O' && grid4!='X' && grid4!='O' && win!='2') { grid4='X'; win='2'; } if (grid8=='O' && grid4=='O' && grid1!='X' && grid1!='O' && win!='2') { grid1='X'; win='2'; } //3-6-9 Defencive Play if (grid3=='O' && grid9=='O' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } if (grid3=='O' && grid6=='O' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid6=='O' && grid9=='O' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid6=='O' && grid3=='O' && grid9!='X' && grid9!='O' && win!='2') { grid9='X'; win='2'; } if (grid9=='O' && grid6=='O' && grid3!='X' && grid3!='O' && win!='2') { grid3='X'; win='2'; } if (grid9=='O' && grid3=='O' && grid6!='X' && grid6!='O' && win!='2') { grid6='X'; win='2'; } //Random Play if (grid==1 && grid1 !='O' && grid1 !='X' && win!='2') { grid1='X'; win='2'; } if (grid==2 && grid2 !='O' && grid2 !='X' && win!='2') { grid2='X'; win='2'; } if (grid==3 && grid3 !='O' && grid3 !='X' && win!='2') { grid3='X'; win='2'; } if (grid==4 && grid4 !='O' && grid4 !='X' && win!='2') { grid4='X'; win='2'; } if (grid==5 && grid5 !='O' && grid5 !='X' && win!='2') { grid5='X'; win='2'; } if (grid==6 && grid6 !='O' && grid6 !='X' && win!='2') { grid6='X'; win='2'; } if (grid==7 && grid7 !='O' && grid7 !='X' && win!='2') { grid7='X'; win='2'; } if (grid==8 && grid8 !='O' && grid8 !='X' && win!='2') { grid8='X'; win='2'; } if (grid==9 && grid9 !='O' && grid9 !='X' && win!='2') { grid9='X'; win='2'; } } while (win=='1'); cout<<endl; return grid; } int oturn (char& grid1, char& grid2, char& grid3, char& grid4, char& grid5, char& grid6, char& grid7, char& grid8, char& grid9) { char grid, win='1'; do { cout<<"This turn is for O. Please put in your grid number: "; cin>>grid; cout<<endl; if (grid==grid1) { grid1='O'; win='2'; } if (grid==grid2) { grid2='O'; win='2'; } if (grid==grid3) { grid3='O'; win='2'; } if (grid==grid4) { grid4='O'; win='2'; } if (grid==grid5) { grid5='O'; win='2'; } if (grid==grid6) { grid6='O'; win='2'; } if (grid==grid7) { grid7='O'; win='2'; } if (grid==grid8) { grid8='O'; win='2'; } if (grid==grid9) { grid9='O'; win='2'; } } while (win=='1'); return grid; } char main(char argc, char* argv[]) { char no1='1',no2='2',no3='3',no4='4',no5='5',no6='6',no7='7',no8='8',no9='9', stop='0'; int round, round2, gridy; round=0; round2=0; gridy = rand() % 9 + 1; while (round <=8 && stop!='1') { display(no1,no2,no3,no4,no5,no6,no7,no8,no9, round2); if(round==1 || round==3 || round==5 || round==7) { oturn(no1,no2,no3,no4,no5,no6,no7,no8,no9); } else { if(round==0) { if (gridy>=7) { no9='X'; } if (gridy>=5 && gridy <7) { no5='X'; } if (gridy<5) { no3='X'; } } else { xturn(no1,no2,no3,no4,no5,no6,no7,no8,no9, round); } } check(no1,no2,no3,no4,no5,no6,no7,no8,no9, stop); round += 1; system("CLS"); } cout<<"Thanks for playing. This is the board at the end of the match: \n\n"; display(no1,no2,no3,no4,no5,no6,no7,no8,no9, round2); check(no1,no2,no3,no4,no5,no6,no7,no8,no9, stop); system("PAUSE"); return 0; }
SCAR Tutorials: The Form Tutorial | Types, Arrays, and Classes
Programming Projects: NotePad | Tetris | Chess
Gah, That Game Was Somthing i just made really Fast i dont care much for it anymore...
I won it five times in a row on hard mode b4 he could beat me.![]()
won 2 times, this means i get 2 computers?![]()
[QUOTE=Santa_Clause;277761]I love you too TSN :p[/QUOTE]
[CENTER][URL="http://www.stats.srl-forums.com/sigs"][IMG]http://www.stats.srl-forums.com/sigs/1324.png[/IMG][/URL][/CENTER]
Off topic, but scar noob, where can you get StressMiner?
awesome game, easy mode is too eays though, and hard mode is too hard lol.
1-2-3
4-5-6
7-8-9
go first. play on 8, then on 6, then on nine and finally on 3.
Good game easy to beat!
This is how I beat it (I'm X's)
Code:__|__|__ __|__| X | | __|__|__ __| O| X | | __|__|__ __| O| X | X| O|__|__ __| O| X | X| O|__|__ __| O| X | X| X O|__|__ __| O| X O| X| X O|__| X __| O| X O| X| X
Unofficial SRL-Forums Hamachi Network:
Username: SRL-Reunion
Password: SCAR
IP: 5.127.176.171
i won 6 times and 8 cats eyes and lost 2 times
There are currently 1 users browsing this thread. (0 members and 1 guests)