matlab 猜数字(4位不同数字)

%猜4为数字游戏

a=fix(10000*rand(1));%随机生成一个四位数;

A(1)=fix(a/1000);

A(2)=fix((a-1000*A(1))/100);

A(3)=fix((a-1000*A(1)-100*A(2))/10);

A(4)=a-1000*A(1)-100*A(2)-10*A(3);

%下面保证生成一个各位上各个单独数字不同;

while(A(1)==A(2)||A(1)==A(3)||A(1)==A(4)||A(2)==A(3)||A(2)==A(4)||A(3)==A(4)||(1000*A(1)+100*A(2)+10*A(3)+A(4))<1000)

a=fix(10000*rand(1));

A(1)=fix(a/1000);

A(2)=fix((a-1000*A(1))/100);

A(3)=fix((a-1000*A(1)-100*A(2))/10);

A(4)=a-1000*A(1)-100*A(2)-10*A(3);

end

% disp(a);

k=0;k1=0;k2=0;

while(k<10) %控制猜数次数在10次以内

disp('Input a number:');

n=input('');

N(1)=fix(n/1000);

N(2)=fix((n-1000*N(1))/100);

N(3)=fix((n-1000*N(1)-100*N(2))/10);

N(4)=n-1000*N(1)-100*N(2)-10*N(3);

k1=0;k2=0;

for i=1:4

    for j=1:4

        if(A(i)==N(j))

          if((A(i)==N(j))&&(i==j))

              k1=k1+1; %猜对的数字个数;

          else

          k2=k2+1; %猜错的数字个数

          end

        end

    end

end

if(k1==4) %表示四个数字都猜对,这个四位数猜对成功!

fprintf('%iA\n You got it!\n',k1);

break;

end

fprintf('%iA%iB\n',k1,k2);

disp('Come on !');

k=k+1;

end

fprintf('The number is %i!\n',a); 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,722评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,151评论 0 2
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,143评论 0 13
  • thiele插值算法 1点插值算法 function [C,c]=thiele(X,Y,Z)%X为插值点横坐标,Y...
    00crazy00阅读 6,228评论 0 4
  • 驴,驴车。驴车的驾驶员不是驴,驴只是驴车的发动机,一缸四驱。敢问,驴车的驾驶员没有驾驶证?还是驴车的尾气排放不达标...
    人生智囊阅读 1,742评论 0 0