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

  • (by K, 2023.09.25)

ノート

キャラクタをつかってしかくをかく → 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
  • [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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-09-25 (月) 09:16:30 (1021d)