easy-Cの入門書 [レベル14]

ノート

もんだい

ECHWIN(30,10);
GPRINTF(0,0,7,0,"TIME=%03d",0);
GPRINTF(2,4,7,0,"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z");
FOR (CLRKEY; INKEY(0)==0; ) { WAIT(100); }
K=0;
FOR (T=0; T<=999; T=T+1) {
  GPRINTF(0,0,7,0,"TIME=%03d",T);
  I=INKEY(1);
  IF (I==K+'A') {
    GPRINTF(2+K,5,6,0,"%c",I);
    K=K+1;
    IF (K==26) { BREAK; }
  }
  WAIT(100);
}
ECHWIN(47,32); ECHBOX(47,31,0,1,1,2,0); ECH(1,2,0,0,0);
FOR (I=0; I<1000000; I=I+1) {
  A=RND(23)*2+1; B=RND(15)*2+2; IF (GETECH(A,B)>0) { CONTINUE; }
  FOR (J=0; J<9; J=J+1) {
    K=RND(4);
    IF (K==0 && A> 1 && GETECH(A-2,B)>0) { ECH(A-1,B,0,0,0); A=A-2; ECH(A,B,0,0,0); J=0; }
    IF (K==1 && A<45 && GETECH(A+2,B)>0) { ECH(A+1,B,0,0,0); A=A+2; ECH(A,B,0,0,0); J=0; }
    IF (K==2 && B> 2 && GETECH(A,B-2)>0) { ECH(A,B-1,0,0,0); B=B-2; ECH(A,B,0,0,0); J=0; }
    IF (K==3 && B<30 && GETECH(A,B+2)>0) { ECH(A,B+1,0,0,0); B=B+2; ECH(A,B,0,0,0); J=0; }
  }
}

にゅうりょくしたら RUN してみましょう。

なぜこれでめいろができるのかせつめいします。
さいしょに、キャラクタをかくためのがめんをよういして、うえいちぎょうだけをのこしてみどりのしかくでうめます。
うえいちぎょうをあけておくのは、13-2でここにもじをかきたいからです。そしてひだりうえにいちますだけ、みどりのしかくがないばしょをつくります。
つぎは100まんかいのくりかえしです。・・・なにを100まんかいもくりかえすのかをいまからかきます。
まずらんすうでAとBをきめて、そのばしょがくうはくじゃなければらんすうでえらびなおしです。
つぎに9かいのくりかえしがかいてありますが、そこはまだきにしないで、さきをよみます。
Kをらんすうできめます。これがめいろのあなほりのほうこうになります。
K==0ならあなをひだりにほります。ほっていいのは、あながひだりはしじゃなくて、2マスさきがまだうまっているばあいだけです。
オーケーなら、あなを2マスほってJを0にします。
K==1ならあなをみぎにほります。
K==2ならあなをうえにほります。
K==3ならあなをしたにほります。
ここでへんすうJのいみをせつめいします。Jはあながれんぞくでほれなかったかいすうです。あながほれたらJ=0にしているのはそのためです。
Jが9になったら、たぶんもうこのばしょからほりすすめることはできないので、Jのくりかえしをぬけて、AとBをらんすうできめるくりかえしにもどります。
これをぜんぶやりきると、めいろがかんせいします。

いままでのめいれいをくみあわせるだけで、こんなめいろをかくこともできるのです。

こめんと欄


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS