HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0526
南山太郎完成しました。0解決


南山太郎

リンク

2023/5/26(Fri) 03:08:15|NO.99502

その他、多少のバグを修正して、完成したものを貼っておきます。

;擬似三次元迷路 ;迷路作成 g = 14 ox=200 oy=120 dim m,16,16 ;三次元迷路の表示のための配列変数 dim wx,8 dim wy,8 dim dx,4 dim dy,4 dim lx,4 dim ly,4 dim rx,4 dim ry,4 dim dd,4 dim dl,4 dim dr,4 wx(0)=200:wy(0)=120 for n,1,7,1 wx(n)=150/(n*2-1) wy(n)=90/(n*2-1) next dx(0) = 0:dy(0) = -1 dx(1) = 0:dy(1) = 1 dx(2) = -1:dy(2) = 0 dx(3) = 1:dy(3) = 0 lx(0) = -1:ly(0) = 0 lx(1) = 1:ly(1) = 0 lx(2) = 0:ly(2) = 1 lx(3) = 0:ly(3) = -1 rx(0) = 1:ry(0) = 0 rx(1) = -1:ry(1) = 0 rx(2) = 0:ry(2) = -1 rx(3) = 0:ry(3) = 1 dd(0) = 1:dd(1) = 0:dd(2) = 3:dd(3) = 2 dl(0) = 2:dl(1) = 3:dl(2) = 1:dl(3) = 0 dr(0) = 3:dr(1) = 2:dr(2) = 0:dr(3) = 1 ;外枠 for i,0,15 m(0,i) = 1 m(i,0) = 1 m(14,i) = 1 m(i,14) = 1 next ;プレイヤーの向きは最初は右 pd = 3 ;迷路を作る for y,2,14,2 for x,2,14,2 m(x,y)=1 *taosu r=rnd(4) if r=0 and y=2:x2=x:y2=y-1 if r=1:x2=x:y2=y+1 if r=2:x2=x-1:y2=y if r=3:x2=x+1:y2=y if m(x2,y2)=1:goto *taosu m(x2,y2)=1 next next ;---プレイヤーを動かす--- px = 1 py = 1 m(px,py)=2 gosub *display1 gosub *display2 repeat repeat getkey k0, 27: getkey k1,37 :getkey k2,38 :getkey k3,39 :getkey k4,40 if k0=1:goto *end_ if k2=1:gosub *up:break if k4=1:gosub *down:break if k1=1:gosub *left:break if k3=1:gosub *right:break await(8) loop gosub *display1 gosub *display2 repeat getkey k1,37 :getkey k2,38 :getkey k3,39 :getkey k4,40 if k1=0 and k2=0 and k3=0 and k4=0:break await(8) loop await(8) loop *end_ end *up nx = px + dx(pd):ny = py + dy(pd) if m(nx,ny)>0:return m(px,py) = 0 px = nx:py = ny m(px,py) = 2 return *down pd = dd(pd) return *left pd = dl(pd) return *right pd = dr(pd) return *display1 cls 0 for y,0,16,1 for x,0,16,1 if m(x,y)=1:pos x*g+400,y*g:mes "■" if m(x,y)=2:pos x*g+400,y*g:mes "@@" next next return *display2 cx = px:cy = py for n,0,6,1 color 0,0,0 x1 = cx + lx(pd):y1 = cy + ly(pd) c1 = m(x1,y1) if c1=0{ gosub *lmichi } else { gosub *lkabe } x2 = cx + rx(pd):y2 = cy + ry(pd) c2 = m(x2,y2) if c2=0{ gosub *rmichi }else{ gosub *rkabe } cx = cx + dx(pd):cy = cy + dy(pd) c3 = m(cx,cy) if c3>0:gosub *ikidomari:n=6 next return *ikidomari color 0,0,0 if c1=0:color 255,255,255 line ox-wx(n+1), oy-wy(n+1), ox-wx(n+1), oy+wy(n+1) color 0,0,0 if c2=0:color 255,255,255 line ox+wx(n+1), oy-wy(n+1), ox+wx(n+1), oy+wy(n+1) color 0,0,0 line ox-wx(n+1), oy-wy(n+1), ox+wx(n+1), oy-wy(n+1) line ox-wx(n+1), oy+wy(n+1), ox+wx(n+1), oy+wy(n+1) return *lmichi color 0,0,0 line ox-wx(n+1), oy-wy(n+1), ox-wx(n+1), oy+wy(n+1) line ox-wx(n), oy-wy(n+1), ox-wx(n+1), oy-wy(n+1) line ox-wx(n), oy+wy(n+1), ox-wx(n+1), oy+wy(n+1) if n=0:return line ox-wx(n), oy-wy(n), ox-wx(n), oy+wy(n) return *lkabe color 0,0,0 line ox-wx(n), oy-wy(n), ox-wx(n+1), oy-wy(n+1) line ox-wx(n), oy+wy(n), ox-wx(n+1), oy+wy(n+1) return *rmichi color 0,0,0 line ox+wx(n+1), oy-wy(n+1), ox+wx(n+1), oy+wy(n+1) line ox+wx(n), oy-wy(n+1), ox+wx(n+1), oy-wy(n+1) line ox+wx(n), oy+wy(n+1), ox+wx(n+1), oy+wy(n+1) if n=0:return line ox+wx(n), oy-wy(n), ox+wx(n), oy+wy(n) return *rkabe color 0,0,0 line ox+wx(n), oy-wy(n), ox+wx(n+1), oy-wy(n+1) line ox+wx(n), oy+wy(n), ox+wx(n+1), oy+wy(n+1) return



この記事に返信する


記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.99502への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.