jt1937 发表于 2006-6-8 17:06

[原创]我今天自己写的一个猜数学游戏的源程序,希望大家多多指点!

今天早上自己开发的一个程序,就是和以前文曲星上面的猜数学游戏一样。系统先给出一个随机四位数,数字不重复,然后你来猜,A表示数学大小与位置都对,B表示你给出的数字大小对,但位置不对,有八次机会猜,完全猜对了系统会显示A4B4
一个挺简单的程序,同大家交流一下。

for h=1:20;
y=floor(rand(1,4)/0.1);
if y(1)~=y(2)&y(1)~=y(3)&y(1)~=y(4)&y(2)~=y(3)&y(2)~=y(4)&y(3)~=y(4)
      break
end
end
y=y(1)*1000+y(2)*100+y(3)*10+y(4);
y=int2str(y);
z='AaBb';
for k=1:8
x=input('input the number>','s');
a=0;b=0;
for i=1:4;
   if x(i)==y(i)
      a=a+1;
   end
end
for i=1:4;
   for j=1:4;
      if x(i)==y(j)
            b=b+1;
      end
   end
end
z(2)=int2str(a);z(4)=int2str(b);
z
if a==4
      congratulation=('You are Win!')
      break
end
if k==8
      Times_over=('You are Lose')
end
end

[ 本帖最后由 suffer 于 2006-10-9 21:03 编辑 ]

huright 发表于 2006-6-8 17:13

<P>运行了一下,一直有点错误。?? Attempted to access x(2); index out of bounds because numel(x)=1.</P>
<P>Error in ==&gt; checknumber at 14<BR>   if x(i)==y(i)<BR></P>

jt1937 发表于 2006-6-8 17:16

我运行了好多次,都没有问题的,不知道你的Matlab版本是多少,我的是6.5<BR>还有,输入的时候一定要输入四位数才行,要不然会出现错误

jt1937 发表于 2006-6-8 17:32

我又看了一下,楼上的之所以会出现那个问题是因为输入的数字不是四位的。

huright 发表于 2006-6-8 17:35

<P>恩,我试了一下。你说的是对的</P>

jt1937 发表于 2007-3-7 10:52

不知道大家能不能把这个程序再改进一下,比如加上一个界面

eight 发表于 2007-3-9 10:25

原帖由 jt1937 于 2007-3-7 10:52 发表
不知道大家能不能把这个程序再改进一下,比如加上一个界面


已修改,参见:[原创]一个猜数字游戏(改良版)

水盈澜 发表于 2007-3-9 15:53

恩!试了一下!很有意思!:lol
页: [1]
查看完整版本: [原创]我今天自己写的一个猜数学游戏的源程序,希望大家多多指点!