37 lines
1.7 KiB
C++
37 lines
1.7 KiB
C++
#include "Turn.h"
|
||
//
|
||
//
|
||
//Функция хода игрока:
|
||
//алгоритм на вычленение первого и второго значений координат
|
||
//получает строку вида "XY", первый символ кидает через at в строку для Х,
|
||
//второй символ также символ кидает в строку для Y,
|
||
//затем переводит обе строки в числа, с которыми можно вести вычисления.
|
||
void Turn::HumanTurn() {
|
||
cin >> Humancount;
|
||
turnline=Humancount.at(0);
|
||
turncol=Humancount.at(1);
|
||
turnLINEint=stoi(turnline);
|
||
turnCOLint=stoi(turncol);
|
||
}
|
||
//Функция хода бота
|
||
void Turn::BotTurn() {
|
||
//Со случайной вероятностью своим первым ходом может занять центральную клетку, если та свободна.
|
||
//На занятии центральной клетки весь ИИ заканчивается.
|
||
srand((time(0)));
|
||
if ((turnLINEint!=1) and (turnCOLint!=1) and ((rand())%2==1)) {
|
||
turnLINEint=1;
|
||
turnCOLint=1;
|
||
}
|
||
//Рандомит первое значение (строку), засыпает, рандомит второе значение (столбец),
|
||
//присваивает рандомные значения в переменные.
|
||
else {
|
||
srand((time(0)));
|
||
turnLINEint=(rand()%3);
|
||
chrono::milliseconds timespan((rand()/10));
|
||
this_thread::sleep_for(timespan);
|
||
mt19937 rng;
|
||
rng.seed(time(nullptr));
|
||
turnCOLint=(rng()%3);
|
||
}
|
||
//cout << "debugbotturn:" << turnLINEint << turnCOLint << endl;
|
||
} |