matlab五子棋代码
时间: 2023-09-15 07:23:17 浏览: 169
以下是一个简单的 MATLAB 五子棋游戏代码,供参考:
```
% 游戏开始
fprintf('五子棋游戏开始!\n');
% 初始化棋盘
board = zeros(15,15);
% 设置黑棋先行
player = 1;
% 游戏主循环
while true
% 打印当前棋盘
disp(board);
% 判断胜负
winner = checkWin(board);
if winner ~= 0
dispWinner(winner);
break;
end
% 当前玩家下棋
if player == 1
fprintf('黑棋落子:\n');
else
fprintf('白棋落子:\n');
end
[x, y] = getPlayerMove(board);
% 更新棋盘
board(x, y) = player;
% 切换玩家
player = 3 - player;
end
% 检查胜负
function winner = checkWin(board)
winner = 0;
[rows,cols] = size(board);
for i = 1:rows
for j = 1:cols
if board(i,j) == 0
continue;
end
% 检查行
if j <= cols-4 && board(i,j) == board(i,j+1) && board(i,j) == board(i,j+2) && board(i,j) == board(i,j+3) && board(i,j) == board(i,j+4)
winner = board(i,j);
return;
end
% 检查列
if i <= rows-4 && board(i,j) == board(i+1,j) && board(i,j) == board(i+2,j) && board(i,j) == board(i+3,j) && board(i,j) == board(i+4,j)
winner = board(i,j);
return;
end
% 检查对角线
if i <= rows-4 && j <= cols-4 && board(i,j) == board(i+1,j+1) && board(i,j) == board(i+2,j+2) && board(i,j) == board(i+3,j+3) && board(i,j) == board(i+4,j+4)
winner = board(i,j);
return;
end
% 检查反对角线
if i >= 5 && j <= cols-4 && board(i,j) == board(i-1,j+1) && board(i,j) == board(i-2,j+2) && board(i,j) == board(i-3,j+3) && board(i,j) == board(i-4,j+4)
winner = board(i,j);
return;
end
end
end
end
% 打印胜者信息
function dispWinner(winner)
if winner == 1
fprintf('黑棋获胜!\n');
else
fprintf('白棋获胜!\n');
end
end
% 玩家输入落子位置
function [x, y] = getPlayerMove(board)
while true
prompt = '请输入落子坐标(例如:3,4):';
str = input(prompt, 's');
[x, y] = str2num(str);
if x < 1 || x > 15 || y < 1 || y > 15
fprintf('请输入有效的坐标!\n');
continue;
end
if board(x, y) ~= 0
fprintf('该位置已经有棋子了!\n');
continue;
end
break;
end
end
```
这段代码实现了一个简单的五子棋游戏,包括棋盘的初始化、玩家输入落子位置、胜负判断等功能。需要注意的是,这只是一个简单的实现,仍有许多可以改进的地方。
阅读全文