Vc编写井字游戏分析
时间: 2023-07-11 10:24:15 浏览: 93
好的,下面是一个简单的井字游戏的分析和VC++代码实现:
井字游戏是一个两人玩的游戏,通常在一个3x3的九宫格棋盘上进行。玩家轮流在棋盘上放置自己的棋子,一般是X和O。先在任意一条直线上形成3个自己的棋子的玩家获胜。
以下是一个简单的井字游戏的VC++代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
// 定义棋盘
char board[3][3] = { {' ', ' ', ' '},{' ', ' ', ' '},{' ', ' ', ' '} };
// 显示棋盘
void display_board()
{
cout << " 1 2 3" << endl;
for (int i = 0; i < 3; i++)
{
cout << i + 1 << " ";
for (int j = 0; j < 3; j++)
{
cout << board[i][j];
if (j != 2)
cout << "|";
}
cout << endl;
if (i != 2)
cout << " -----" << endl;
}
}
// 判断游戏是否结束
bool game_over()
{
// 判断行是否有相同棋子
for (int i = 0; i < 3; i++)
{
if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ' ')
return true;
}
// 判断列是否有相同棋子
for (int i = 0; i < 3; i++)
{
if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ' ')
return true;
}
// 判断对角线是否有相同棋子
if ((board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != ' ') ||
(board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[0][2] != ' '))
return true;
// 判断是否平局
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (board[i][j] == ' ')
return false;
}
}
return true;
}
// 主函数
int main()
{
int row, col, player = 1;
string player1, player2;
cout << "请输入玩家1的名字:";
cin >> player1;
cout << "请输入玩家2的名字:";
cin >> player2;
while (!game_over())
{
display_board();
cout << player1 << "(X)请落子,输入行列号:";
cin >> row >> col;
if (board[row - 1][col - 1] != ' ')
{
cout << "该位置已被占用,请重新输入!" << endl;
continue;
}
board[row - 1][col - 1] = 'X';
if (game_over())
{
display_board();
cout << player1 << "获胜!" << endl;
break;
}
display_board();
cout << player2 << "(O)请落子,输入行列号:";
cin >> row >> col;
if (board[row - 1][col - 1] != ' ')
{
cout << "该位置已被占用,请重新输入!" << endl;
continue;
}
board[row - 1][col - 1] = 'O';
if (game_over())
{
display_board();
cout << player2 << "获胜!" << endl;
break;
}
}
return 0;
}
```
该程序中,首先定义了一个3x3的char类型数组来表示棋盘,然后定义了一些函数来显示棋盘和判断游戏是否结束。在主函数中,使用一个while循环来不断交替获取玩家输入并更新棋盘,直到游戏结束。
阅读全文