▶ 実 行
▶ 実行
クリア
ArrowRobotその2改(共通テスト2021年第2日程情報関係基礎)
by Hanako.S
全描画クリア。 px0=20。py0=76。 npx=8。npy=8。 mx=0。my=0。 lpx=48。lpy=48。 x=0。y=0。 spx=0。spy=0。 rpx=spx。rpy=spy。 rx=0。ry=0。 pa=0。muki=0。 cpx=0。cpy=0。 gpx=0。gpy=0。 arrow=0。moves=0。 Tairu=[" ","→","↑","←","↓","G"] Panel=[[0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0]] plyflg=0。 stpflg=0。 もし、「ARFLG」が存在するならば、 「ARFLG」を開いてstpflgに代入。 ここまで。 もし、「パネル」が存在するならば、 「パネル」を開いてPanelに代入。 ここまで。 もし、(stpflg<2)ならば、 パネル生成。 ここまで。 stpflg=0。 「ARFLG」をローカルストレージキー削除。 画面初期化。 2秒待つ。 描画中キャンバスの「click」に「ゲーム実行」をDOMイベント追加。 ●ゲーム実行とは 描画中キャンバスの「click」から「ゲーム実行」をDOMイベント削除。 描画中キャンバスをマウス押した時には mx=マウスX。my=マウスY。 もし、(mx>px0)かつ(mx<px0+lpx*npx)かつ(my>py0)かつ(my<py0+lpy*npy)ならば、 cpx=INT((mx-px0)/lpx) cpy=INT((my-py0)/lpy) 矢印処理。 ここまで。 ここまで。 「メイン処理」を画面更新時実行。 ここまで。 ●メイン処理とは (stpflg=0)の間 パネル表示。 枠表示。 ロボ表示。 0.4秒待つ。 ロボ移動。 情報表示。 0.3秒待つ。 moves=moves+1。 ここまで。 もし、(stpflg=0)ならば、 「メイン処理」を画面更新時実行。 ここまで。 「ARFLG」にstpflgを保存。 ここまで。 ●画面初期化とは 「#006666」に線色設定。「#006666」に塗り色設定。0に線太さ設定。 [0,0,640,480]へ四角描画。 「40px sans-serif」に描画フォント設定。 0に線太設定。灰色に線色設定。白色に塗色設定。 [37,48]へ「■ Arrow Robot ■」を文字描画。 「28px sans-serif」に描画フォント設定。 [461,328]へ「移動回数」を文字描画。 rx=500。ry=20。 ロボ表示。 パネル表示。 枠表示。 「16px sans-serif」に描画フォント設定。 [440,45]へ「ロボットを矢印でゴール」を文字描画。 [440,70]へ「まで導きましょう。」を文字描画。 [440,105]へ「矢印をクリックすると、」を文字描画。 [440,130]へ「反時計回りに90度回転し」を文字描画。 [440,155]へ「ます。」を文字描画。 [440,190]へ「ロボットは左上の黄色の」を文字描画。 [440,215]へ「枠からスタートします。」を文字描画。 [440,250]へ「この画面をクリックする」を文字描画。 [440,275]へ「と、ゲームスタートです。」を文字描画。 ここまで。 ●パネル生成とは i=0。j=0。 iを0からnpx-1まで繰り返す jを0からnpy-1まで繰り返す arrow=(10の乱数) もし、(arrow>4)ならば、arrow=0。 Panel[j][i]=arrow ここまで。 ここまで。 Panel[0][0]=1 gpx=npx-4+(4の乱数) gpy=npy-4+(4の乱数) Panel[gpy][gpx]=5 Panelを「パネル」に保存。 ここまで。 ●パネル表示とは 0に線太さ設定。「#aaaaaa」に線色設定。「#aaaaaa」に塗り色設定。 [px0-8,py0-8,lpx*npx+16,lpy*npy+16]へ四角描画。 i=0。j=0。 iを0からnpx-1まで繰り返す jを0からnpy-1まで繰り返す x=px0+i*lpx。 y=py0+j*lpy。 a=Panel[j][i] aのパネル描画。 #0.05秒待つ。 ここまで。 ここまで。 ここまで。 ●ロボ移動とは pa=Panel[rpy][rpx] もし、(pa<>0)ならば、muki=pa。 もし、(muki=1)ならば、rpx=rpx+1。 もし、(muki=2)ならば、rpy=rpy-1。 もし、(muki=3)ならば、rpx=rpx-1。 もし、(muki=4)ならば、rpy=rpy+1。 もし、(muki=5)ならば、stpflg=1。 もし、(rpx<0)または(rpx>npx-1)または(rpy<0)または(rpy>npy-1)ならば、stpflg=2。 ここまで。 ●(aの)パネル描画とは 「#aaaaaa」に線色設定。「#3333ff」に塗り色設定。2に線太さ設定。 [x,y,lpx,lpy]へ四角描画。 「32px sans-serif」に描画フォント設定。 0に線太設定。灰色に線色設定。白色に塗色設定。 [x+8,y+36]へTairu[a]を文字描画。 ここまで。 ●枠表示とは 「#ffff00」に線色設定。2に線太さ設定。 swx=px0+lpx*spx。swy=py0+lpy*spy。 [swx,swy]から[swx+lpx,swy]まで線描画 [swx+lpx,swy]から[swx+lpx,swy+lpy]まで線描画 [swx+lpx,swy+lpy]から[swx,swy+lpy]まで線描画 [swx,swy+lpy]から[swx,swy]まで線描画 ここまで。 ●ロボ表示とは 「32px sans-serif」に描画フォント設定。 0に線太設定。灰色に線色設定。赤色に塗色設定。 rx=px0+lpx*rpx。ry=py0+lpy*rpy。 [rx+3,ry+36]へ「🤖」を文字描画。 ここまで。 ●矢印処理とは arrow=Panel[cpy][cpx] もし、(arrow>0)かつ(arrow<5)ならば、 arrow=arrow+1 もし、(arrow=5)ならば、arrow=1 Panel[cpy][cpx]=arrow ここまで。 ここまで。 ●情報表示とは 回数はRIGHT(「00{moves}」,3) 「#006666」に線色設定。「#006666」に塗り色設定。0に線太さ設定。 [456,336,120,64]へ四角描画。 「60px sans-serif」に描画フォント設定。 0に線太設定。灰色に線色設定。白色に塗色設定。 [462,392]へ回数を文字描画。 もし、(stpflg>0)ならば、 もし、(stpflg=1)ならば、結果=「ゴーール!」。 もし、(stpflg=2)ならば、結果=「壁に衝突!」。 「40px sans-serif」に描画フォント設定。 0に線太設定。灰色に線色設定。黄色に塗色設定。 [432,450]へ結果を文字描画。 ここまで。 ここまで。
807fc0eecd18ef15b4e7d9f3c2b68cac
2849