Piškvorky - výsledek ukazuje opačného výherce, např.: vyhrál 'x', ale program vypíše že vyhál 'o' – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Piškvorky - výsledek ukazuje opačného výherce, např.: vyhrál 'x', ale program vypíše že vyhál 'o' – C / C++ – Fórum – Programujte.comPiškvorky - výsledek ukazuje opačného výherce, např.: vyhrál 'x', ale program vypíše že vyhál 'o' – C / C++ – Fórum – Programujte.com

 

rvojtech0
Duch
18. 10. 2020   #1
-
0
-


#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";
}
}
 

Nahlásit jako SPAM
IP: 81.201.48.–
gna
~ Anonymní uživatel
1849 příspěvků
18. 10. 2020   #2
-
0
-

Po každém tahu se nastavuje, že je na řadě další hráč. Takže ten, který je na řadě, není ten, který udělal konečný tah.

Nahlásit jako SPAM
IP: 213.211.51.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý