i had a problem with this tictactoe c++ program sbe kase sa men ni ser dagdagan namin ung 9 boxes ng 15 pataas eto ung code na dinagdagan ko ng 10-15 bkit 1 ung lumalabas kaza d2
#include <iostream.h>
char square[16] = {'o','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15'};
int checkwin();
void board();
int main()
{
int player = 1,i,choice;
char mark;
do
{
board();
player=(player%2)?1:2;
cout << "Player " << player << ", enter a number: ";
cin >> choice;
mark=(player == 1) ? 'X' : 'O';
if (choice == 1 && square[1] == '1')
square[1] = mark;
else if (choice == 2 && square[2] == '2')
square[2] = mark;
else if (choice == 3 && square[3] == '3')
square[3] = mark;
else if (choice == 4 && square[4] == '4')
square[4] = mark;
else if (choice == 5 && square[5] == '5')
square[5] = mark;
else if (choice == 6 && square[6] == '6')
square[6] = mark;
else if (choice == 7 && square[7] == '7')
square[7] = mark;
else if (choice == 8 && square[8] == '8')
square[8] = mark;
else if (choice == 9 && square[9] == '9')
square[9] = mark;
else if (choice == 10 && square[10] == '10')
square[10] = mark;
else if (choice == 11 && square[11] == '11')
square[11] = mark;
else if (choice == 12 && square[12] == '12')
square[12] = mark;
else if (choice == 13 && square[13] == '13')
square[13] = mark;
else if (choice == 14 && square[14] == '14')
square[14] = mark;
else if (choice == 15 && square[15] == '15')
square[15] = mark;
else
{
cout<<"Invalid move ";
player--;
cin.ignore();
cin.get();
}
i=checkwin();
player++;
}while(i==-1);
board();
if(i==1)
cout<<"==>\aPlayer "<<--player<<" win ";
else
cout<<"==>\aGame draw";
cin.ignore();
cin.get();
return 0;
}
/*********************************************
FUNCTION TO RETURN GAME STATUS
1 FOR GAME IS OVER WITH RESULT
-1 FOR GAME IS IN PROGRESS
O GAME IS OVER AND NO RESULT
**********************************************/
int checkwin()
{
if (square[1] == square[2] && square[2] == square[3])
return 1;
else if (square[4] == square[5] && square[5] == square[6])
return 1;
else if (square[7] == square[8] && square[8] == square[9])
return 1;
else if (square[10] == square[11] && square[11] == square[12])
return 1;
else if (square[13] == square[14] && square[14] == square[15])
return 1;
else if (square[1] == square[4] && square[4] == square[7])
return 1;
else if (square[2] == square[5] && square[5] == square[8])
return 1;
else if (square[3] == square[6] && square[6] == square[9])
return 1;
else if (square[4] == square[7] && square[7] == square[10])
return 1;
else if (square[5] == square[8] && square[8] == square[11])
return 1;
else if (square[6] == square[9] && square[9] == square[12])
return 1;
else if (square[7] == square[10] && square[10] == square[13])
return 1;
else if (square[8] == square[11] && square[11] == square[14])
return 1;
else if (square[9] == square[12] && square[12] == square[15])
return 1;
else if (square[1] == square[5] && square[5] == square[9])
return 1;
else if (square[3] == square[5] && square[5] == square[7])
return 1;
else if (square[4] == square[8] && square[8] == square[12])
return 1;
else if (square[6] == square[8] && square[8] == square[10])
return 1;
else if (square[7] == square[11] && square[11] == square[15])
return 1;
else if (square[9] == square[11] && square[11] == square[13])
return 1;
else if (square[1] != '1' && square[2] != '2' && square[3] != '3'
&& square[4] != '4' && square[5] != '5' && square[6] != '6'
&& square[7] != '7' && square[8] != '8' && square[9] != '9'
&& square[10] != '10' && square[11] != '11' && square[12] != '12'
&& square[13] != '13' && square[14] != '14' && square[15] != '15')
return 0;
else
return -1;
}
/*******************************************************************
FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK
********************************************************************/
void board()
{
("cls");
cout << "\n\n\tTic Tac Toe\n\n";
cout << "Player 1 (X) - Player 2 (O)" << endl << endl;
cout << endl;
cout << " | | " << endl;
cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl;
cout << "_______|_______|_______" << endl;
cout << " | | " << endl;
cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl;
cout << "_______|_______|_______" << endl;
cout << " | | " << endl;
cout << " " << square[7] << " | " << square[8] << " | " << square[9] << endl;
cout << "_______|_______|_______" << endl;
cout << " | | " << endl;
cout << " " << square[10] << " | " << square[11] << " | " << square[12] << endl;
cout << "_______|_______|_______" << endl;
cout << " | | " << endl;
cout << " " << square[13] << " | " << square[14] << " | " << square[15] << endl;
cout << " | | " << endl << endl;
}
/*******************************************************************
END OF PROJECT
********************************************************************/
tnx n advance sana mabasa mo to kgad may + kasi sa final ung unang makakagawa eh heh
/*
Hi! Eto na. . . Eto na. Eto na! Kani-kanina lang ako nag-online pero sana mabasa mo 'to agad.
C pa lang tinuturo sa amin pero almost the same lang naman yung C at C++ kaya inapply ko yung mga natutuhan ko.
Yung pagkakamali mo lang ay ginawa mong character yung 10 - 15(2 characters kasi yun kaya considered as string sya).
So ayun, gumamit ako ng 2 dimensional array(array of strings).
string.h para sa mga ss.
strcmp() para i-compare yung strings(in ASCII. Di kasi pwede yung '==') at
strcpy() para maglagay ng string value sa string(di rin kasi pwede yung '=').
Masyadong masalimuot yung strings noh??? Hahaha. Tinuro naman ata sa inyo yan.
Medyo inayos ko lang ng konti yung program mo. Good luck XD
BTW. I'm using Dev-C++
Thanks nga pala for experience. Hahaha.
*/
#include <iostream>
#include <string.h>
using namespace std;
char square[17] [3] = {"", " 1", " 2", " 3", " 4", " 5", " 6", " 7", " 8", " 9", "10", "11", "12", "13", "14", "15"};
int checkwin();
void board();
int main(){
int player = 1, i, choice;
char mark[3];
do{
board();
(player % 2 == 0)? player = 2 : player = 1;
cout << "\nPlayer " << player << ", enter a number: ";
cin >> choice;
(player == 1) ? strcpy(mark, " X") : strcpy(mark, " O");
if (choice == 1 && strcmp(square[1], " 1") == 0)
strcpy(square[1], mark);
else if (choice == 2 && strcmp(square[2], " 2") == 0)
strcpy(square[2], mark);
else if (choice == 3 && strcmp(square[3], " 3") == 0)
strcpy(square[3], mark);
else if (choice == 4 && strcmp(square[4], " 4") == 0)
strcpy(square[4], mark);
else if (choice == 5 && strcmp(square[5], " 5") == 0)
strcpy(square[5], mark);
else if (choice == 6 && strcmp(square[6], " 6") == 0)
strcpy(square[6], mark);
else if (choice == 7 && strcmp(square[7], " 7") == 0)
strcpy(square[7], mark);
else if (choice == 8 && strcmp(square[8], " 8") == 0)
strcpy(square[8], mark);
else if (choice == 9 && strcmp(square[9], " 9") == 0)
strcpy(square[9], mark);
else if (choice == 10 && strcmp(square[10], "10") == 0)
strcpy(square[10], mark);
else if (choice == 11 && strcmp(square[11], "11") == 0)
strcpy(square[11], mark);
else if (choice == 12 && strcmp(square[12], "12") == 0)
strcpy(square[12], mark);
else if (choice == 13 && strcmp(square[13], "13") == 0)
strcpy(square[13], mark);
else if (choice == 14 && strcmp(square[14], "14") == 0)
strcpy(square[14], mark);
else if (choice == 15 && strcmp(square[15], "15") == 0)
strcpy(square[15], mark);
else{
cout<<"Invalid move ";
player--;
cin.ignore();
cin.get();
}
i=checkwin();
player++;
}
while(i==-1);
board();
if(i==1)
cout<<"==>\aPlayer "<<--player<<" win ";
else
cout<<"==>\aGame draw";
cin.ignore();
cin.get();
return 0;
}
/*********************************
FUNCTION TO RETURN GAME STATUS
1 FOR GAME IS OVER WITH RESULT
-1 FOR GAME IS IN PROGRESS
O GAME IS OVER AND NO RESULT
**********************************/
int checkwin(){
if (strcmp(square[1], square[2]) == 0 && strcmp(square[2], square[3]) == 0)
return 1;
else if (strcmp(square[4], square[5]) == 0 && strcmp(square[5], square[6]) == 0)
return 1;
else if (strcmp(square[7], square[8]) == 0 && strcmp(square[8], square[9]) == 0)
return 1;
else if (strcmp(square[10], square[11]) == 0 && strcmp(square[11], square[12]) == 0)
return 1;
else if (strcmp(square[13], square[14]) == 0 && strcmp(square[14], square[15]) == 0)
return 1;
else if (strcmp(square[1], square[4]) == 0 && strcmp(square[4], square[7]) == 0)
return 1;
else if (strcmp(square[2], square[5]) == 0 && strcmp(square[5], square[8]) == 0)
return 1;
else if (strcmp(square[3], square[6]) == 0 && strcmp(square[6], square[9]) == 0)
return 1;
else if (strcmp(square[4], square[7]) == 0 && strcmp(square[7], square[10]) == 0)
return 1;
else if (strcmp(square[5], square[8]) == 0 && strcmp(square[8], square[11]) == 0)
return 1;
else if (strcmp(square[6], square[9]) == 0 && strcmp(square[9], square[12]) == 0)
return 1;
else if (strcmp(square[7], square[10]) == 0 && strcmp(square[10], square[13]) == 0)
return 1;
else if (strcmp(square[8], square[11]) == 0 && strcmp(square[11], square[14]) == 0)
return 1;
else if (strcmp(square[9], square[12]) == 0 && strcmp(square[12], square[15]) == 0)
return 1;
else if (strcmp(square[1], square[5]) == 0 && strcmp(square[5], square[9]) == 0)
return 1;
else if (strcmp(square[3], square[5]) == 0 && strcmp(square[5], square[7]) == 0)
return 1;
else if (strcmp(square[4], square[8]) == 0 && strcmp(square[8], square[12]) == 0)
return 1;
else if (strcmp(square[6], square[8]) == 0 && strcmp(square[8], square[10]) == 0)
return 1;
else if (strcmp(square[7], square[11] ) == 0 && strcmp(square[11], square[15]) == 0)
return 1;
else if (strcmp(square[9], square[11]) == 0 && strcmp(square[11], square[13]) == 0)
return 1;
else if (strcmp(square[1], " 1") != 0 && strcmp(square[2], " 2") != 0 && strcmp(square[3], " 3") != 0
&& strcmp(square[4], " 4") != 0 && strcmp(square[5], " 5") != 0 && strcmp(square[6], " 6") != 0
&& strcmp(square[7], " 7") != 0 && strcmp(square[8], " 8") != 0 && strcmp(square[9], " 9") != 0
&& strcmp(square[10], "10") != 0 && strcmp(square[11], "11") != 0 && strcmp(square[12], "12") != 0
&& strcmp(square[13], "13") != 0 && strcmp(square[14], "1") != 0 && strcmp(square[15], "15") != 0)
return 0;
else
return -1;
}
/************************************************** *******
FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK
************************************************** ********/
void board(){
system("cls");
cout << "\n\tTic Tac Toe\n\n";
cout << "Player 1 (X) - Player 2 (O)" << endl << endl;
cout << endl;
cout << " _______ _______ _______" << endl;
cout << "| | | |" << endl;
cout << "| " << square[1] << " | " << square[2] << " | " << square[3] << " |" << endl;
cout << "|_______|_______|_______|" << endl;
cout << "| | | |" << endl;
cout << "| " << square[4] << " | " << square[5] << " | " << square[6] << " |" << endl;
cout << "|_______|_______|_______|" << endl;
cout << "| | | |" << endl;
cout << "| " << square[7] << " | " << square[8] << " | " << square[9] << " |" << endl;
cout << "|_______|_______|_______|" << endl;
cout << "| | | |" << endl;
cout << "| " << square[10] << " | " << square[11] << " | " << square[12] << " |" << endl;
cout << "|_______|_______|_______|" << endl;
cout << "| | | |" << endl;
cout << "| " << square[13] << " | " << square[14] << " | " << square[15] << " |" << endl;
cout << "|_______|_______|_______|" << endl;
cout << "" << endl;
}
/*****************
END OF PROJECT
******************/