Форум программистов, компьютерный форум CyberForum.ru

Крестики Нолики. Где-то ошибка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ По строкам s2 и s3 восстановить строку s1 http://www.cyberforum.ru/cpp-beginners/thread1215260.html
Заданная строка s1. После удаления одной буквы с s1 образуется строку s2. После удаления из s1 другой буквы образуется строка s3. по строкам s2 и s3 восстановить строку s1.
C++ Как расширить длину строки до определённого значения? Подскажите,как расширить длину строки до определённого значения. http://www.cyberforum.ru/cpp-beginners/thread1215249.html
C++ Давайте создадим библиотеку с литературой для начинающих
Здравствуйте уважаемые админы сайта:) С недавних пор начал изучение языка программирования С++ и естественно встал самый первый и самый важный вопрос -"Где бы надыбать материал для чайников, новичков, начинающих и т.д. и др. Пришлось не мало сайтов облазить для поиска необходимой литературы. Но всё же что то нашёл и радуюсь!))) Заглянув на вашем сайте в раздел для новичков, для поиска какой...
Определить слова, в которых больше гласных букв, чем согласных C++
В программировании пока не силен. Не могу решить 3 интересных задачки. Нужна помощь. 1) В предложении, вводимом пользователем с клавиатуры, определить слова, в которых больше гласных букв, чем согласных. Предусмотреть возможность ввода как строчных, так и прописных букв. Под предложением понимается последовательность символов латинского алфавита, начинающаяся прописной буквой и...
C++ Создайте программу, выводящую сумму элементов последовательности 2, 4, 6, 8,… 98, 100 http://www.cyberforum.ru/cpp-beginners/thread1215208.html
Приветствую друзья! Вообщем мне нужно создать программку выводящую сумму элементов последовательности 2, 4, 6, 8,… 98, 100 int sum = 0; for (int j = 2; j <= 100; j=j+2) { sum = sum + j; } cout << sum;вообщем как то так, но всё равно не получается, почему то не работает и я не могу понять почему. помогите пожалуйста, хотя бы советом.
C++ Почему вывод аргументов не осуществляется для классового шаблона? Заметьте,что параметры классовых шаблонов никогда не выводятся.Причина заключается в том,что гибкость,порождаемая наличием нескольких конструкторов класса,в ряде случаев делает вывод параметров шаблона невозможным,а во многих других случаях - неоднозначным.Вот что говорит по этому поводу Страуструп. А мне хоть учебник на эту тему дай, без примера не могу обойтись... Товарищи знатоки, напишите... подробнее

Показать сообщение отдельно
Psilon
Master of Orion
 Аватар для Psilon
5742 / 4690 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
23.06.2014, 19:37     Крестики Нолики. Где-то ошибка
Вот мое виденье, в плюсах я не очень шарю, так что просьба не бить ногами
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
 
using namespace std;
 
 
const int N = 3;
const char Empty = '-';
char map[N][N];
 
void ClearMap();
void DrawMap();
int Turn(const char*, char);
int Win(int, int, char);
 
int main()
{
    ClearMap(); 
    int i = 0;
    for (; i < 9 && !(Turn("Player 1", 'X') || Turn("Player 2", '0')); i++)
    {
    }
    if (i == 9)
        cout << "DRAW!" << endl;
    return 0;
}
 
void ClearMap()
{
    for (int i = 0; i < N; i++)
        for (int j = 0; j < N; j++)
            map[i][j] = Empty;
}
 
void DrawMap()
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            cout << '|' << map[i][j];
        cout << '|' << endl;
    }
}
 
int Turn(const char* playername, char symbol)
{
    int x, y;
    DrawMap();
    cout << playername << "'s turn. Enter coordinates X and Y" << endl;
    cin >> x >> y;
    while (x < 0 || y < 0 || x > 3 || y > 3 || map[x][y] != Empty)
    {
        cout << "Invalid coordinates. Try again" << endl;
        cin >> x >> y;
    }
    map[x][y] = symbol;
    int win = Win(x, y, symbol);
    if (win)
        cout << playername << " WIN!" << endl;
    return win;
}
 
int Win(int x, int y, char symbol)
{
    //проверяем горизонталь
    int i;
    for (i = 0; i < 3 && map[i][y] == symbol; i++)
    {
    }
    if (i == 3)
        return 1;
    //проверяем вертикаль
    for (i = 0; i < 3 && map[x][i] == symbol; i++)
    {
    }
    if (i == 3)
        return 1;
    //возвращаем диагонали
    return map[0][0] == symbol && map[1][1] == symbol && map[2][2] == symbol
        || map[0][2] == symbol && map[1][1] == symbol && map[2][0] == symbol;
}
 
Текущее время: 12:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru