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

Как оптимизировать данный код игры крестики нолики? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как правильно можно узнать количество хранимых в строке символов? http://www.cyberforum.ru/cpp-beginners/thread1238240.html
Есть строка с юникод символами. Как правильно можно узнать количество хранимых в строке символов?int main() { std::wifstream wifs("file.txt"); std::wstring wstr; wifs >> wstr; // 5 юникод символов std::cout << "Size: " << wstr.size() << "\n"; //выводит 15 return 0; }
C++ DevCpp не вводятся спец символы (масти карт) Для программы необходимо использование спец символов обозначающих масти карт: ♥ ♦ ♣ ♠ . Но при копировании этих символов в редактор или попытки ввести через альткод выводятся(в самом редакторе при наборе кода) либо знаки вопросов либо "¦". http://www.cyberforum.ru/cpp-beginners/thread1238234.html
Как сделать, чтобы цикл продолжался только после нажатия кнопки? C++
for (int i=0; i<n;i++) pl=dieroll (); нужно чтобы пользователь перед каждой иттерацией жал любую (можно заданную, можно нет) кнопку, подскажите пожалуйста как это сделать
C++ Error C2601: main: недопустимые локальные определения функций
#include <iostream> #include <ctime> using namespace std; int dieroll (){ int chance=0; srand (time(NULL)); chance=rand()%1000; chance%=7; return chance;
C++ Нахождение обратной матрицы http://www.cyberforum.ru/cpp-beginners/thread1238196.html
Помогите,пожалуйста доделать или переделать нужно найти обратную матрицу тут маленько наброски есть методом гаусса но не могу доделать или вообще сделать код формирование матрицы и попытки того что пытался. #include <iostream> #include <iomanip> using namespace std; //Функция ввода элементов матрицы void matr( double **mat, int n,int m) { for (int i=0; i<n; i++) for (int j=0; j<m;...
C++ Создать такое меню как в Far Cry 3 Только Windows 7+ Вот все игры и не тоько имеют необычный интерфейс и особенно стиль окон и кнопок вот допустим игра far cry 3 имеет синий фон с интересными кнопками.Поэтому пожалуйста ответьте что отвечает за такой интерфейс. такое создается с помощью н-р wxWidgets,...? нет? тогда Ваш вариант))) подробнее

Показать сообщение отдельно
Oleg98
9 / 9 / 4
Регистрация: 05.12.2013
Сообщений: 41
04.08.2014, 15:49     Как оптимизировать данный код игры крестики нолики?
Привет всем! Я написал консольную игру "Крестики нолики". Хочу посоветоваться как можно оптимизировать игру.
Вот исходный код:
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <locale>
 
using namespace std;
 
void fieldConstruction (char gf[3][3]) 
{
    cout << "--1---2---3--\n";
    cout << "1 " << gf[0][0] << " | " << gf[0][1] << " | " << gf[0][2] << " |\n";
    cout << "-------------\n";
    cout << "2 " << gf[1][0] << " | " << gf[1][1] << " | " << gf[1][2] << " |\n";
    cout << "-------------\n";
    cout << "3 " << gf[2][0] << " | " << gf[2][1] << " | " << gf[2][2] << " |\n";
    cout << "-------------\n";
}
 
char testWinner (char gf[3][3])
{
    if ((gf[0][0] != ' ')&&(gf[0][0] == gf[1][1])&&(gf[1][1]==gf[2][2])) return gf[0][0]; else
    if ((gf[2][0] != ' ')&&(gf[2][0] == gf[1][1])&&(gf[1][1]==gf[0][2])) return gf[2][0]; else 
    if ((gf[0][0] != ' ')&&(gf[0][0] == gf[0][1])&&(gf[0][1]==gf[0][2])) return gf[0][0]; else 
    if ((gf[1][0] != ' ')&&(gf[1][0] == gf[1][1])&&(gf[1][1]==gf[1][2])) return gf[1][0]; else 
    if ((gf[2][0] != ' ')&&(gf[2][0] == gf[2][1])&&(gf[2][1]==gf[2][2])) return gf[2][0]; else
    if ((gf[0][0] != ' ')&&(gf[0][0] == gf[1][0])&&(gf[1][0]==gf[2][0])) return gf[0][0]; else 
    if ((gf[0][1] != ' ')&&(gf[0][1] == gf[1][1])&&(gf[1][1]==gf[2][1])) return gf[0][1]; else 
    if ((gf[0][2] != ' ')&&(gf[0][2] == gf[1][2])&&(gf[1][2]==gf[2][2])) return gf[0][2]; else
    return 'n';
}
 
int main()
{
    setlocale (LC_ALL, "Russian");
 
    cout << "Добро пожаловать!!! \nДанная игра называется \"Крестики нолики\"\n";
    cout << "Поле игры: \n";
    char gameField[3][3] = {{' ', ' ', ' '},
                            {' ', ' ', ' '}, 
                            {' ', ' ', ' '}};
    int x, y;
    int player = 1;
    int freeCell = 9;
    bool winner = false; 
    char whoWinner;
 
    while (freeCell != 0 && !winner)
    {
        fieldConstruction(gameField);
        bool error = false;
        cout << player << " игрок введите координаты (X, Y): ";
        do
        {
            cin >> x >> y;
            if ((x > 3 || y > 3) || (gameField[y-1][x-1] != ' '))
            {
                cout << "Данная ячейка занята или не существует.\nВведите другие координаты: ";
                error = true;
            }
            else
            {
                error = false;
            }
        } while (error);
 
        if (player == 1){
            gameField[y-1][x-1] = 'X';
            player = 2;
        }
        else
        {
            gameField[y-1][x-1] = '0';
            player = 1;
        }
        freeCell--;
        system("cls");
        whoWinner = testWinner(gameField);
        if (whoWinner != 'n')
        {
            winner = true;
        }
        else
        {
            winner = false;
        }
    }
 
    fieldConstruction(gameField);
    
    if (whoWinner == 'X') cout << "Победил 1 игрок!!!\n"; else
    if (whoWinner == '0') cout << "Победил 2 игрок!!!\n"; else
    cout << "Ничья!!! \n";
 
    system ("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru