matlab五子棋程序
时间: 2023-07-30 20:07:11 浏览: 108
matlab五子棋程序(人机对战)
5星 · 资源好评率100%
以下是一个简单的 MATLAB 五子棋程序示例:
```matlab
% 创建棋盘,1 表示黑子,2 表示白子,0 表示空位
board = zeros(15, 15);
% 初始化当前落子为黑子
current_player = 1;
% 游戏主循环
while true
% 打印当前棋盘状态
disp(board);
% 判断当前玩家是否胜利
if check_win(board, current_player)
fprintf('玩家 %d 获胜!\n', current_player);
break;
end
% 获取当前玩家落子的位置
if current_player == 1
prompt = '请输入黑子要落子的位置 [row, col]:';
else
prompt = '请输入白子要落子的位置 [row, col]:';
end
pos = input(prompt);
% 判断落子是否合法
if board(pos(1), pos(2)) ~= 0
fprintf('该位置已经有棋子了,请重新输入!\n');
continue;
end
% 在棋盘上落子
board(pos(1), pos(2)) = current_player;
% 切换到下一个玩家
if current_player == 1
current_player = 2;
else
current_player = 1;
end
end
% 判断当前玩家是否胜利
function is_win = check_win(board, player)
% 检查行是否连成五子
for i = 1:15
for j = 1:11
if all(board(i, j:j+4) == player)
is_win = true;
return;
end
end
end
% 检查列是否连成五子
for i = 1:11
for j = 1:15
if all(board(i:i+4, j) == player)
is_win = true;
return;
end
end
end
% 检查主对角线是否连成五子
for i = 1:11
for j = 1:11
if all(diag(board(i:i+4, j:j+4)) == player)
is_win = true;
return;
end
end
end
% 检查副对角线是否连成五子
for i = 1:11
for j = 5:15
if all(diag(board(i:i+4, j:-1:j-4)) == player)
is_win = true;
return;
end
end
end
% 如果没有连成五子,返回 false
is_win = false;
end
```
这个程序实现了一个简单的五子棋游戏,玩家可以通过键盘输入坐标来落子,程序会自动判断胜负。注意,这个程序没有实现任何人工智能算法,只是一个简单的交互式游戏。如果你想要实现更高级的 AI 算法,可以参考一些其他的五子棋程序实现。
阅读全文