* easy-Cの入門書 [レベル13]
-(by [[K]], 2023.09.25)
--目次はこちら → [[a23_intro00]]
** ノート
キャラクタをつかってしかくをかく → ECHBOX(A,B,C,D,E,F,G);
しかくのおおきさ(よこのながさ)がA
しかくのおおきさ(たてのながさ)がB
しかくのひだりうえのいちがCとD
キャラクタのしゅるいはE
キャラクタのいろはF
キャラクタのはいけいしょくはG
FORめいれいのじっこうをうちきって、つぎのくりかえしにすすむ → CONTINUE;
** もんだい
-[13-1]
いかのプログラムはめいろをかくプログラムです。
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をらんすうできめるくりかえしにもどります。
これをぜんぶやりきると、めいろがかんせいします。
いままでのめいれいをくみあわせるだけで、こんなめいろをかくこともできるのです。
-https://essen.osask.jp/files/pic20230925a.png
--https://essen.osask.jp/files/pic20230925a.png
-[13-2]
(これはすこしむずかしいです。)
このめいろと12-2のプログラムをうまくくみあわせて、たからさがしゲームをつくります。
めいろのなかにおちているのは、100えんだまではなくて「きんか」です!だからきいろのまるにしてください。きんかのかずも、30こにふやしましょう!
ニコニコのいろはしろにしましょう。スタートちてんはA=1;B=2;にします。
じかんも999ではたりないとおもうので、9999にしてください。
ヒントをかいておきます。ニコニコをひだりにうごかすぶぶんはこうなります。
IF (K==4132 && GETECH(A-1,B)!=1) { A=A-1; }
うまくできたら RUN してみましょう。クリアするのはたいへんですが、おもしろいですよ!
--https://essen.osask.jp/files/pic20230925b.png
* こめんと欄
-掲示板をご利用ください。→[[a23_bbs]]