用matlab写一个五子棋游戏
时间: 2023-11-11 14:05:51 浏览: 67
好的,下面是一个简单的五子棋游戏的 MATLAB 代码:
```
function wuziqi()
clear all;
close all;
clc;
n=15; %棋盘大小为15*15
p=zeros(n,n); %初始化棋盘,0表示空格,1表示黑子,2表示白子
flag=1; %先手执黑子
while true %循环直到游戏结束
if flag==1
color='黑子';
elseif flag==2
color='白子';
end
imshow(p);
title(['请 ' color ' 落子']);
[x,y]=ginput(1); %获取鼠标点击位置
x=round(x);
y=round(y);
if x>=1 && x<=n && y>=1 && y<=n && p(x,y)==0 %判断位置是否合法
p(x,y)=flag; %落子
if check(p,x,y,flag) %判断是否获胜
imshow(p);
title([color ' 获胜!']);
break;
end
flag=3-flag; %交换执子方
end
end
end
function result=check(p,x,y,flag)
n=length(p);
dx=[-1,0,1,1,1,0,-1,-1]; %八个方向
dy=[-1,-1,-1,0,1,1,1,0];
for i=1:8
k=0;
while x+k*dx(i)>=1 && x+k*dx(i)<=n && y+k*dy(i)>=1 && y+k*dy(i)<=n && p(x+k*dx(i),y+k*dy(i))==flag
k=k+1;
end
if k==4
result=true; %连续五个同色棋子,获胜
return;
end
end
result=false; %未获胜
end
```
运行上述代码后,你可以与计算机下五子棋,互相交替落子,直到某一方获胜。
阅读全文