diff --git a/Tic-Tac-Toe.cpp b/Tic-Tac-Toe.cpp new file mode 100644 index 0000000..1ef3a5b --- /dev/null +++ b/Tic-Tac-Toe.cpp @@ -0,0 +1,172 @@ +#include +#include + + char arr[9] = { ' ',' ',' ',' ',' ',' ',' ',' ',' ' }; + + void print() + { + + std::cout << "井字棋游戏" << std::endl; + std::cout << "+---+---+---+" << std::endl; + std::cout << "| " << arr[0] << " | " << arr[1] << " | " << arr[2] << " |" << std::endl; + std::cout << "+---+---+---+" << std::endl; + std::cout << "| " << arr[3] << " | " << arr[4] << " | " << arr[5] << " |" << std::endl; + std::cout << "+---+---+---+" << std::endl; + std::cout << "| " << arr[6] << " | " << arr[7] << " | " << arr[8] << " |" << std::endl; + std::cout << "+---+---+---+" << std::endl; + + } + + int main() + { + bool n1{ 0 }, n2{ 0 }; + system("cls"); + print(); + int i{ 1 }, k{}; + unsigned long long n;//落棋位置 + int a{ 0 }, b{ 0 };//赢局对比 + int round{}; + + std::cout << "请输入想进行的游戏局数:"; + std::cin >> round; + + + for (k = 1; k <= round; ++k) + { + for (i = 1; i <= 9; i = i + 1) + { + if (i % 2 == 1) + { + std::cout << "请玩家一选择落棋位置:"; + std::cin >> n; + if (arr[n - 1] != ' '||n>9||n<1) + { + std::cout << "落棋位置错误" << std::endl; + std::cout << "请玩家重新选择落棋位置" << std::endl; + i = i - 1; + continue; + } + else + { + arr[n - 1] = 'X'; + } + } + else + { + std::cout << "请玩家二选择落棋位置:"; + std::cin >> n; + if (arr[n - 1] != ' '||n>9||n<1) + { + std::cout << "落棋位置错误" << std::endl; + std::cout << "请玩家重新选择落棋位置" << std::endl; + i = i - 1; + continue; + } + else + { + arr[n - 1] = 'O'; + } + } + system("cls"); + print(); + //横 + if (arr[0] == arr[1] && arr[1] == arr[2] && arr[2] != ' ') + { + if (arr[0] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + else if (arr[3] == arr[4] && arr[4] == arr[5] && arr[5] != ' ') + { + if (arr[3] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + else if (arr[6] == arr[7] && arr[7] == arr[8] && arr[8] != ' ') + { + if (arr[6] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + + else if (arr[0] == arr[3] && arr[3] == arr[6] && arr[6] != ' ') + { + if (arr[0] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + else if (arr[1] == arr[4] && arr[4] == arr[7] && arr[7] != ' ') + { + if (arr[1] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + else if (arr[2] == arr[5] && arr[5] == arr[8] && arr[8] != ' ') + { + if (arr[2] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + //斜 + else if (arr[0] == arr[4] && arr[4] == arr[8] && arr[8] != ' ') + { + if (arr[0] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + else if (arr[6] == arr[4] && arr[4] == arr[2] && arr[2] != ' ') + { + if (arr[6] == 'O') + n2 = 1; + else + n1 = 1; + break; + } + + } + //单局判断 + if (n1 == 1) + ++a; + else if (n2 == 1) + ++b; + std::cout << "比分对比 玩家1:玩家2=" << a << ':' << b << std::endl; + n1 = 0, n2 = 0; + for (i = 0; i < 9; ++i) + arr[i] = ' '; + } + + //最终判断 + + if (a>b) + std::cout << "玩家1 win!!!"; + else if (a