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

Игра крестики-нолик - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как написать программу-собеседника http://www.cyberforum.ru/cpp-beginners/thread1498655.html
Мне хотелось бы, чтобы кто-нибудь объяснил мне, как написать себе собеседника.
C++ Нахождение плотности вещества Как должна выглядить структура, в который хранятся , например, название и плотности газов, чтобы при вводе в консоли имени газа, показывалась его плотность.Напишите шаблон, пожалуйста.Язык C++. http://www.cyberforum.ru/cpp-beginners/thread1498635.html
Шифрование строки модифицированным шифром Цезаря C++
помогите пожалуйста написать программу, реализующую шифрования вводимой строки модифицированным шифром Цезаря..
C++ Работа с массивом с через strcpy_s()
Функция addBrackets принимает массив и преобразует его заключая в скобки . т.е. на на вход массив: text после преобразования: Вылетает эксепшен "boffer is too small" на первом strcat. Что не так делаю? #include <iostream> void addBrackets(char* buffer) { char *result = new char; result = NULL;
C++ Как узнать зависимость DLL-ки от других DLL-ек? http://www.cyberforum.ru/cpp-beginners/thread1498567.html
Есть DLL-ка, она в свою очередь подгружает другие DLL-ки, а так же использует соответственно тулфейн свого компилятора и тд. Есть какая - то утилитка, чтоб зависимости посмотреть? ОС: Винда Есть Dependency Walker, но он для PE файлов.
SFML Код инициализации OpenGL в составе библиотеки SFML 2.1 Подскажите пожалуйста код инициализации OpenGL(OpenGL.hpp) в составе библиотеки SFML 2.1. подробнее

Показать сообщение отдельно
yura_blr
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 3

Игра крестики-нолик - C++

14.07.2015, 13:33. Просмотров 235. Ответов 4
Метки (Все метки)

Пишу игру крестики-нолики с хоть каким-то ИИ. Есть функция bot_attack и функция bot_def
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
bool Game::bot_attack()
{
    this->botAttack=false;
    //gor
    if((player_field[0][0]==player_field[0][1]) && (player_field[0][2]==0))
    {
        if(player_field[0][0]==2)
        {
            return true;
        }
        else
            return false;
    }
    if((player_field[1][0]==player_field[1][1]) && (player_field[1][2]==0))
    {
        if(player_field[1][0]==2)
        {
            return true;
        }
        else
            return false;
    }
    
    if((player_field[2][0]==player_field[2][1]) && (player_field[2][2]==0))
    {
        if(player_field[2][0]==2)
        {
            return true;
        }
        else
            return false;
    }
    //vert
    if((player_field[0][0]==player_field[1][0]) && (player_field[2][0]==0))
    {
        if(player_field[0][0]==2)
        {
            return true;
        }
        else
            return false;
    }
 
    if((player_field[0][1]==player_field[1][1]) && (player_field[2][1]==0))
    {
        if(player_field[0][1]==2)
        {
            return true;
        }
        else
            return false;
    }   
 
    if((player_field[0][2]==player_field[1][2]) && (player_field[2][2]==0))
    {
        if(player_field[0][2]==2)
        {
            return true;
        }
        else
            return false;
    }   
 
    // gl diag
    if((player_field[0][0]==player_field[1][1]) && (player_field[2][2]==0))
    {
        if(player_field[0][0]==2)
        {
            return true;
        }
        else
            return false;
    }   
 
    //pob diag
    if((player_field[2][0]==player_field[1][1]) && (player_field[0][2]==0))
    {
        if(player_field[2][0]==2)
        {
            return true;
        }
        else
            return false;
    }   
 
} 
bool Game::bot_def()
{
    this->botDef=false;
    //gor
    if((player_field[0][0]==player_field[0][1]) && (player_field[0][2]==0))
    {
        if(player_field[0][0]==1)
        {
            return true;
        }
        else
            return false;
    }
    
    if((player_field[1][0]==player_field[1][1]) && (player_field[1][2]==0))
    {
        if(player_field[1][0]==1)
        {
            return true;
        }
        else
            return false;
    }   
    
    if((player_field[2][0]==player_field[2][1]) && (player_field[2][2]==0))
    {
        if(player_field[2][0]==1)
        {
            return true;
        }
        else
            return false;
    }
 
    //vert
    if((player_field[0][0]==player_field[1][0]) && (player_field[2][0]==0))
    {
        if(player_field[0][0]==1)
        {
            return true;
        }
        else
            return false;
    }
 
    if((player_field[0][1]==player_field[1][1]) && (player_field[2][1]==0))
    {
        if(player_field[0][1]==1)
        {
            return true;
        }
        else
            return false;
    }   
    
    if((player_field[0][2]==player_field[1][2]) && (player_field[2][2]==0))
    {
        if(player_field[0][2]==1)
        {
            return true;
        }
        else
            return false;
    }   
 
    // gl diag
    if((player_field[0][0]==player_field[1][1]) && (player_field[2][2]==0))
    {
        if(player_field[0][0]==1)
        {
            return true;
        }
        else
            return false;
    }   
    
    //pob diag
    if((player_field[2][0]==player_field[1][1]) && (player_field[0][2]==0))
    {
        if(player_field[2][0]==1)
        {
            return true;
        }
        else
            return false;
    }   
    
}
Если значения однй из этих функций возвращают истину, то запускаются функции атаки или защиты соответственно, иначе бот ходит в рандомную клетку. Вопрос следующий: Правильно ли я оформляю функцию хода бота или нужно по другому. Просто если как у меня, то бот делает первый ход, а потом ходить отказывается.
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
void Game::bot_step()
{
    
    if(bot_attack())
    {
        bot_at();
    }
    else
    {
        if(bot_def())
        {
            bot_d();
        }
        else
        {
            srand(time(0));
            int x=rand()%this->size1;
            int y=rand()%this->size2;
            while(!check_coords(x,y))
            {
               srand(time(0));
               x=rand()%this->size1;
               y=rand()%this->size2;
               this->check_coords(x,y);
            }
            player_field[x][y] = 2;
        }
    }   
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru