#include <iostream>
#include <stdlib.h>
using namespace std;
char board[3][3] = { {'1','2','3'},{'4','5','6'},{'7','8','9'} };
int vyber;
int radek, sloupec;
char turn = 'X';
bool draw = false;
void showBoard()
{
cout << "hrac cislo 1 [X]\t hrac cislo 2 [O]\n\n";
cout << "\t\t | | \n";
cout << "\t\t " << board[0][0] << " | " << board[0][1] << " | " << board[0][2] << " \n";
cout << "\t\t_____|_____|_____\n";
cout << "\t\t | | \n";
cout << "\t\t " << board[1][0] << " | " << board[1][1] << " | " << board[1][2] << " \n";
cout << "\t\t_____|_____|_____\n";
cout << "\t\t | | \n";
cout << "\t\t " << board[2][0] << " | " << board[2][1] << " | " << board[2][2] << " \n";
cout << "\t\t | | \n";
}
void playerTurn()
{
if (turn == 'X')
{
cout << "\n\tje na rade hrac cislo - 1 [X]: ";
}
else if (turn == 'O')
{
cout << "\n\tje na rade hrac cislo - 2 [O]: ";
}
cin >> vyber;
switch (vyber)
{
case 1: radek = 0; sloupec = 0; break;
case 2: radek = 0; sloupec = 1; break;
case 3: radek = 0; sloupec = 2; break;
case 4: radek = 1; sloupec = 0; break;
case 5: radek = 1; sloupec = 1; break;
case 6: radek = 1; sloupec = 2; break;
case 7: radek = 2; sloupec = 0; break;
case 8: radek = 2; sloupec = 1; break;
case 9: radek = 2; sloupec = 2; break;
default:
cout << "neplatny krok";
}
if (turn == 'X' && board[radek][sloupec] != 'X' && board[radek][sloupec] != 'O')
{
board[radek][sloupec] = 'X';
turn = 'O';
}
else if (turn == 'O' && board[radek][sloupec] != 'X' && board[radek][sloupec] != 'O')
{
board[radek][sloupec] = 'O';
turn = 'X';
}
else
{
cout << "\ttoto pole uz je plne, vyberte jine pole\n\n";
playerTurn();
}
system("cls");
}
bool konec()
{
for (int i = 0; i < 3; i++)
{
if (board[i][0] == board[i][1] && board[i][0] == board[i][2] || board[0][i] == board[1][i] && board[0][i] == board[2][i])
{
return false;
}
}
if (board[0][0] == board[1][1] && board[0][0] == board[2][2] || board[0][2] == board[1][1] && board[0][2] == board[2][0])
{
return false;
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (board[i][j] != 'X' && board[i][j] != 'O')
{
return true;
}
}
}
draw = true;
return false;
}
int main()
{
while (konec())
{
showBoard();
playerTurn();
konec();
}
if (turn == 'X' && draw == false)
{
cout << "\n\nhrac se symbolem 'X' vyhral";
}
else if (turn == 'O' && draw == false)
{
cout << "\n\nhrac se symbolem 'O' vyhral";
}
else
{
cout << "nerozhodne\n\n";
}
}
Fórum › C / C++
Piškvorky - výsledek ukazuje opačného výherce, např.: vyhrál 'x', ale program vypíše že vyhál 'o'
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 79 hostů
Podobná vlákna
Teoreticky asi vypíše, ale nezobrazí. — založil kodisek
Jak napsat program, kterému zadám z klávesnice 3 čísla a on mi je se… — založil FreddieR
Program,jednoduchy,ale proc nefunguje? — založil Luke15
Program, ktorý funguje v DevC++ ale nie vo VisualStudiu — založil Kent
Moderátoři diskuze