#include <iostream>
#include <string>
#include <cmath>
using namespace std;
void myFonk(string bir,string iki,string uc,string dort,string bes,string alti,string yedi,string sekiz,string dokuz){
cout<<" -------------\n";
cout<<" | "<<bir<<" | "<<iki<<" | "<<uc<<" | \n";
cout<<" -------------\n";
cout<<" | "<<dort<<" | "<<bes<<" | "<<alti<<" | \n";
cout<<" -------------\n";
cout<<" | "<<yedi<<" | "<<sekiz<<" | "<<dokuz<<" | \n";
cout<<" -------------\n\n";
}
void kapan(){
cout<<"Kazandınız!!!\n";
system("pause");
exit(0);
}
void kontrol(bool kazan,string bir,string iki,string uc,string dort,string bes,string alti,string yedi,string sekiz,string dokuz){
if(bir==iki&&bir==uc){
kapan();
}else if(bir==bes&&bes==dokuz){
kapan();
}else if(uc==bes&&bes==yedi){
kapan();
}else if(yedi==sekiz&&sekiz==dokuz){
kapan();
}else if(dort==bes&&bes==alti){
kapan();
}else if(bir==dort&&dort==yedi){
kapan();
}else if(iki==bes&&bes==sekiz){
kapan();
}else if(uc==alti&&alti==dokuz){
kapan();
}
}
void konusma(bool onl1,string kisi1,string kisi2){
if(onl1){
cout<<kisi1<<"\'in Hamlesi:";
}else{
cout<<kisi2<<"\'in Hamlesi:";
}
}
void myFake(bool kazan,string av,bool onl1,string cev,string kisi1,string kisi2,string bir,string iki,string uc,string dort,string bes,string alti,string yedi,string sekiz,string dokuz,string kisim1,string kisim2){
for (int sayim=0;sayim<10;sayim++){
if(kazan){
break;
}
if(sayim % 2 == 0){
konusma(true,kisim1,kisim2);
}else{
konusma(false,kisim1,kisim2);
}
cin>>cev;
if(sayim % 2 == 0){
av=kisi1;
}else{
av=kisi2;
}
if (cev == bir) {
bir = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == iki) {
iki = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == uc) {
uc = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == dort) {
dort = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == bes) {
bes = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == alti) {
alti = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == yedi) {
yedi = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == sekiz) {
sekiz = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else if (cev == dokuz) {
dokuz = av;
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
kontrol(kazan,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
} else {
for(int i=0;i<11112;i++){
cout<<i<<"."<<"Yanlış Girmeyin!!! Bir nasihat,"<<11112-i<<" zorluktan iyidir.\n";
}
}
}
}
int main(){
setlocale(LC_ALL,"Turkish");
string bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz,kisi1,kisi2,karakter1,karakter2,cev,av;
bir="1";iki="2";uc="3";dort="4";bes="5";alti="6";yedi="7";sekiz="8";dokuz="9";
cout<<"\n XOX oyununa hoşgeldiniz.Oyun Türkçe desteklidir.Ve 2 kişilidir.Hatalara cevap verir.\n \n";
myFonk(bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz);
cout<<"Birinci oyuncunun adı:";
cin>>kisi1;
cout<<"İkinci oyuncunun adı:";
cin>>kisi2;
if(kisi1==kisi2){
while(kisi1==kisi2){
cout<<"Lütfen 2.kisiye farklı ad girin!";
cout<<"İkinci oyuncunun adı:";
cin>>kisi2;
if(kisi1!=kisi2){
break;
}
}
}
cout<<kisi1<<", X\'mi O mu? ";
cin>>karakter1;
if(karakter1!="x" && karakter1!="X" && karakter1!="o" && karakter1!="O"){
while(karakter1!="x" && karakter1!="X" && karakter1!="y" && karakter1!="Y"){
cout<<"Lütfen \"X\" \"O\" sayılarından giriniz!";
cout<<kisi1<<", X\'mi O mu? ";
cin>>karakter1;
if(karakter1=="x" || karakter1=="X" || karakter1=="o" || karakter1=="O"){
break;
}
}
}
if(karakter1=="x"||karakter1=="X"){
karakter1 = "X";
}
if(karakter1=="o"||karakter1=="O"){
karakter1 = "O";
}
string sayi=(karakter1=="X"?"O":"X");
karakter2=sayi;
cout<<kisi2<<" zorunlu olarak \""<<karakter2<<"\" oldu.";
cout<<"\n Oyun başladı... \n";
cout<<"\n Şimdi ismi verilen kişiler hamlesini \"1\" gibi belirterek yazacak.Tırnak işareti olmadan! Eğer yanlış girerseniz oyuna baştan baslayın!\n";
myFake(false,av,true,cev,karakter1,karakter2,bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz,kisi1,kisi2);
system("pause");
return 0;
}