井字棋matlab代码
时间: 2024-04-23 21:19:14 浏览: 192
井字棋是一种经典的棋盘游戏,以下是一个简单的井字棋的MATLAB代码示例:
```matlab
% 创建一个3x3的空棋盘
board = zeros(3, 3);
% 定义两个玩家,1代表玩家1,2代表玩家2
player1 = 1;
player2 = 2;
% 游戏循环,直到有玩家获胜或者平局
while true
% 玩家1下棋
disp('玩家1,请输入下棋位置:');
row = input('行:');
col = input('列:');
% 检查位置是否合法
if board(row, col) == 0
board(row, col) = player1;
else
disp('该位置已经有棋子,请重新输入!');
continue;
end
% 检查是否有玩家获胜
if checkWin(board, player1)
disp('玩家1获胜!');
break;
end
% 检查是否平局
if checkDraw(board)
disp('平局!');
break;
end
% 玩家2下棋
disp('玩家2,请输入下棋位置:');
row = input('行:');
col = input('列:');
% 检查位置是否合法
if board(row, col) == 0
board(row, col) = player2;
else
disp('该位置已经有棋子,请重新输入!');
continue;
end
% 检查是否有玩家获胜
if checkWin(board, player2)
disp('玩家2获胜!');
break;
end
% 检查是否平局
if checkDraw(board)
disp('平局!');
break;
end
end
% 检查是否有玩家获胜的函数
function win = checkWin(board, player)
win = false;
% 检查行
for i = 1:3
if all(board(i, :) == player)
win = true;
return;
end
end
% 检查列
for i = 1:3
if all(board(:, i) == player)
win = true;
return;
end
end
% 检查对角线
if all(diag(board) == player) || all(diag(fliplr(board)) == player)
win = true;
return;
end
end
% 检查是否平局的函数
function draw = checkDraw(board)
draw = all(board(:) ~= 0);
end
```
这段代码实现了一个简单的井字棋游戏,玩家1和玩家2轮流下棋,直到有一方获胜或者平局。你可以在MATLAB中运行这段代码来体验井字棋游戏。
阅读全文