#include "stdafx.h"
#include
using namespace std;
char field[3][3] = { {'-', '-', '-'},{ '-', '-', '-' },{ '-', '-', '-' } };
int a, b;
bool CP = true;
int isEnd = 0;
int main()
{
do
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
cout << field[i][j] << " ";
}
cout << endl;
}
cin >> a >> b;
if (CP == true)
{
field[a][b] = 'X';
}
if (CP == false)
{
field[a][b] = 'O';
}
CP = !CP;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (field[i][j] == '-')
{
isEnd++;
}
}
}
if (isEnd == 0)
{
break;
}
else
{
isEnd = 0;
}
}
while (true);
system("Pause");
return 0;
}
Другие языки программирования и технологии
Докончите программу, Реализуйте проверку на победу одного из игроков, минимум две комбинации для одного и для другого.
перед CP = !CP;
определите - выиграл игрок или нет
а перед запросом координат, вывести текст, кто ходит: Х или О, для удобства
определите - выиграл игрок или нет
а перед запросом координат, вывести текст, кто ходит: Х или О, для удобства
Sergey Solodkov
спасибоо
Серик Мукашев
Мальвина, пишу только для того, что бы вы выбрали ответ лучшим! (не мой)
#include "stdafx.h"
#include
using namespace std;
#define SIZE 3
char Field[SIZE + 1][SIZE + 1];
bool Starter = false;
struct position
{
int h;
int v;
};
void PrepareField(void)
{
for (int i = 0; i <= SIZE; i++)
{
for (int j = 0; j <= SIZE; j++)
{
if (i > 0 && j > 0)
{
Field[i][j] = '-';
}
else if (i > 0)
{
Field[i][j] = '0' + i;
}
else if (j > 0)
{
Field[i][j] = '0' + j;
}
}
}
}
void DrawField(void)
{
system("cls");
for (int i = 0; i <= SIZE; i++)
{
for (int j = 0; j <= SIZE; j++)
{
cout << Field[i][j] << " ";
}
cout << endl;
}
}
position EnterPosition(void)
{
position p;
cout << endl << "Enter a position of ";
Starter? cout << "X." : cout << "O.";
cout << endl << "horizontal: ";
do cin >> p.h; while (p.h < 1 || SIZE < p.h);
cout << "vertical: ";
do cin >> p.v; while (p.v < 1 || SIZE < p.v);
return p;
}
bool IsFilled(position p)
{
return Field[p.h][p.v] != '-';
}
void PlaceSymbol(position p)
{
if (Starter)
{
Field[p.h][p.v] = 'X';
}
else
{
Field[p.h][p.v] = 'O';
}
}
bool Win(position p)
{
bool MD = true;
bool D = true;
bool H = true;
bool V = true;
char C;
Starter? C = 'X' : C = 'O';
for (int i = 1; i <= SIZE; i++)
{
(Field[p.h][i] == C) ? H &= true : H = false;
(Field[i][p.v] == C) ? V &= true : V = false;
(Field[i][i] == C) ? MD &= true : MD = false;
(Field[(SIZE + 1) - 1][i] == C) ? D &= true : D = false;
}
return H || V || D || MD;
}
int main(void)
{
position p;
PrepareField();
DrawField();
do
{
Starter = !Starter;
do p = EnterPosition(); while (IsFilled(p));
PlaceSymbol(p);
DrawField();
} while (!Win(p));
cout << endl << "GAME OVER!" << endl;
system("Pause");
return 0;
}
#include
using namespace std;
#define SIZE 3
char Field[SIZE + 1][SIZE + 1];
bool Starter = false;
struct position
{
int h;
int v;
};
void PrepareField(void)
{
for (int i = 0; i <= SIZE; i++)
{
for (int j = 0; j <= SIZE; j++)
{
if (i > 0 && j > 0)
{
Field[i][j] = '-';
}
else if (i > 0)
{
Field[i][j] = '0' + i;
}
else if (j > 0)
{
Field[i][j] = '0' + j;
}
}
}
}
void DrawField(void)
{
system("cls");
for (int i = 0; i <= SIZE; i++)
{
for (int j = 0; j <= SIZE; j++)
{
cout << Field[i][j] << " ";
}
cout << endl;
}
}
position EnterPosition(void)
{
position p;
cout << endl << "Enter a position of ";
Starter? cout << "X." : cout << "O.";
cout << endl << "horizontal: ";
do cin >> p.h; while (p.h < 1 || SIZE < p.h);
cout << "vertical: ";
do cin >> p.v; while (p.v < 1 || SIZE < p.v);
return p;
}
bool IsFilled(position p)
{
return Field[p.h][p.v] != '-';
}
void PlaceSymbol(position p)
{
if (Starter)
{
Field[p.h][p.v] = 'X';
}
else
{
Field[p.h][p.v] = 'O';
}
}
bool Win(position p)
{
bool MD = true;
bool D = true;
bool H = true;
bool V = true;
char C;
Starter? C = 'X' : C = 'O';
for (int i = 1; i <= SIZE; i++)
{
(Field[p.h][i] == C) ? H &= true : H = false;
(Field[i][p.v] == C) ? V &= true : V = false;
(Field[i][i] == C) ? MD &= true : MD = false;
(Field[(SIZE + 1) - 1][i] == C) ? D &= true : D = false;
}
return H || V || D || MD;
}
int main(void)
{
position p;
PrepareField();
DrawField();
do
{
Starter = !Starter;
do p = EnterPosition(); while (IsFilled(p));
PlaceSymbol(p);
DrawField();
} while (!Win(p));
cout << endl << "GAME OVER!" << endl;
system("Pause");
return 0;
}
Владимир И
Вот и помогай после этого людям! Выложишь им на блюдечке с голубой каёмочкой решение, где не только ответ на вопрос "И как проверить кто выиграл....", но и проверка корректности введённых данных и прочие удобства, а они тебе даже спасибо не скажут. :(
Мальвина, пишу только для того, что бы вы выбрали ответ лучшим! (не мой)
Похожие вопросы
- Как реализовать проверку ввода данных на C++?
- Что делать, я не могу зайти на официальные сайты антивирусников. Может программу для проверки на вирус посоветуете?
- какие существуют комбинации горячих клавиш??? дайте список всех комбинаций горячих клавиш по офисным программам
- Чтобы написать программу нужно минимум 1000 строк?
- Сколько кодовых комбинаций?
- Какая программа , при даче ей комбинации(пример ALT+Z)напишет\введёт заданное мной заранее и нажмёт Enter ?
- Нужен очень хороший программист для проверки собственной программы
- c# (отловить комбинацию клавиш в системе)
- С++ сумма комбинаций
- Кто сможет написать понятную программу на Pascal ABC? нужно реализовать шифр Плейфера Буду вам очень признателен