用matlab 编程
现有21根火柴,两人轮流取,每人每次可取走1- 4根,不可多取,也不能不取,谁取最后一根火柴则谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军” clc;clear;x=21;
fprintf('现有%d根火柴,每次取1-4根,你先取,计算机后取,取最后一根火柴就输\n',x);
while(1)
d=0;
while(d<1 || d>4)
d=input('轮到你,取多少? \n');
if(d<1)
fprintf('不能不取\n');
elseif(d>4)
fprintf('不能多取\n');
elseif(d>x)
fprintf('不能多取\n');d=0;
end
end
x=x-d;
fprintf('现在有%d根火柴\n',x);
if(x==0)
fprintf('你输了\n');break;
end
if(x>=5-d)
fprintf('计算机取了%d个\n',5-d);
x=x-(5-d);
else
fprintf('计算机取了1个\n');%不会执行
x=x-1;
end
fprintf('现在有%d根火柴\n',x);
if(x==0)
fprintf('计算机输了\n');break;%不会执行
end
end 谢谢谢谢谢谢~~
页:
[1]