初心者向けプログラミング体験ワークショップ#12

(0)

(1) ストーリー & ルール


(2-1) HLX-BASICでのプログラム(42行)

CANVAS 47,32,"MAZE";                               ← ゲーム画面を作ります。よこ47マス、たて32マスの大きさです。
INT DX[4]={ 1, -1, 0, 0 };
INT DY[4]={ 0, 0, 1, -1 };
INT DA[4];
HI=99999;
FOR;
  CHARBOX@ 47,31,0,0,1,2,0;    ← ここから迷路をかく処理
  CHAR@ 1,1,0,0,0;
  LOOP 1000000;
    X=RND(23)*2+1;
    Y=RND(15)*2+1;
    IF GETCH@(X,Y)==0 THEN
      FOR;
        FOR I=0,4;
          DA[I]=0;
          TX=X+DX[I];
          TY=Y+DY[I];
          IF 0<TX AND TX<46 AND 0<TY AND TY<30 THEN
            DA[I]=GETCH@(TX,TY)*GETCH@(TX+DX[I],TY+DY[I]);
          FI;
        NEXT;
        I=ARGMAXRND(DA,0,4);
        IF DA[I]==0 BREAK;
        LOOP 2; X+=DX[I]; Y+=DY[I]; CHAR@ X,Y,0,0,0; NEXT;
      NEXT;
    FI;
  NEXT;
  X=1; Y=1; T=0;    ← ここから迷路の中を歩く処理
  FOR;
    PRINT@ 0,31,7,0,"TIME:%5d    HIGH:%5d  ",T,HI;
    CHAR@ X,Y,6,6,0;
    IF X==45 AND Y==29 BREAK;
    I=INKEY@WRC(100);
    CHAR@ X,Y,0,0,0;
    TX=X+XMOVE(I);  ← とりあえキー入力に合わせて動いた座標を計算する。
    TY=Y+YMOVE(I);
    IF GETCH@(TX,TY)==0 THEN X=TX; Y=TY; FI;  ← もし移動先に壁がなければ移動する。
    T++;    ← 時間を1増やす。
  NEXT;
  HI=MIN(HI,T);
  WAITKEY@ 10;
NEXT;

(2-2) HLX-BASICのプログラムを実行するための方法(大人の方へ)

(2-3) 改造のポイント

(3-1) C言語でのプログラム(aclライブラリ利用)(39行)

(3-2) C言語のプログラムを実行するための方法(大人の方へ)

こめんと欄


コメントお名前NameLink

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